attrbuteに対する||=でハマる。

class some_class
  attr_accessor :hoge

  def some_method
    hoge ||= "value"
  end

この5行目で、hogeのアクセサが呼ばれるのではなく、hogeという新しい変数が定義されてしまう…

@hoge ||= "value"

とするしかない。

bashの関数はwhichコマンドしても出処が分からない

which や whereis でコマンドのパスが出ないんで「なんだろうな?」と思ったが、よく考えたら .bash_profile で定義しているbash関数だった。 関数の定義は以下で確認できる。

declare -f [function name]

ディレクトリのハードリンク恐い…

coreutils入れて ln -F すればディレクトリのハードリンクも作れるのだが、消すには rm -fr するしかなさそう。 そうすると、ディレクトリの中身も消えてしまう… 一旦、中身の場所を移し、ハードリンク消してから戻せば良さそうだが、中身が多いとちょっと大事…

よく分かって無くて rm -fr を消してしまった。 Box Syncでバックアップしてたので戻せたのだが、Box Syncはdotfileをバックアップしてくれないので、難儀した…

githubリポジトリを別名コピーするやり方

リポジトリ hogehoge-cp にコピー。

まず、githubhoge-cpリポジトリを空で作っておく。 それから、どこかの端末で以下を実行。

git clone git@xxx/hoge.git
git remote set-url origin git@xxx/hoge-cp.git
git push