Ruby標準ライブラリのTest::Unitとgemのtest-unitの違い

Jan 31, 2013  
仕事で Test::Unit を使ってるプロジェクトに guard-test を入れたら挙動が変わった。 原因は guard-test を Gemfile に入れると、gem の Test::Unit が使われるからだった。 Ruby 標準ライブラリの Test::Unit と gem の Test::Unit は挙動が違う。 自分が触った範囲で違うところをまとめる。 assertion メソッドのmessage引数 ここは大きな違い。 Ruby標準ライブラリ to_s に反応するものなら何でもOK gemのtest-unit nil String Proc AssertionMessage だけしか受け付けない 出力系 Test::Unit:::UI::Console::TestRunner 辺り #output 出力の為のメソッド。いろんな所で使われている。 とる引数が違うので、オーバーライドしてると大変。 ``` ruby Ruby 標準ライブラリ def output(something, level=NORMAL) ``` ruby gem 版 test-unit def output(something, color=nil, level=nil) #add_fault ”…F..F.E.” の、FとかEを表示してる箇所(エラーをスタックしてる箇所)。 標準ライブラリ版は進捗を表示するだけ、gem版はデフォルトで同時にエラーのスタックトレースを表示してる(@show_detail_immediatelyの値によって変わる)。 ``` ruby Ruby 標準ライブラリ def add_fault(fault) @faults << fault output_single(fault.single_character_display, PROGRESS_ONLY) @already_outputted = true end ``` ruby gem 版 test-unit def add_fault(fault) @faults << fault output_progress(fault.single_character_display, fault_color(fault)) output_progress_in_detail(fault) if @show_detail_immediately @already_outputted = true if fault.critical? 続きを読む →

uninstall_rvm

Jan 7, 2013  
rvm のアンインストール方法にちょっとはまったのでメモ。 やりたいこと Ruby 環境の構築時に、誤って sudo 付きで rvm を入れてしまったので、消したい。 方法 $ sudo rvm implode したら、何故かrvmコマンドが見つからない!って起こられたので、以下の方法で消した。 $ sudo rm -rf /usr/local/rvm $ suod rm /etc/profile.d/rvm.sh このあと、 ログアウト→ログイン をすること。 その後、 $ \curl -L https://get.rvm.io | bash -s stable --ruby すればおk。 sudo で入れた rvm が残っていると、sudo 無し rvm を入れようとした時に、/usr/local 以下にインストールしにいこうとして失敗する。 参考 ruby on rails - Made a mistake installing RVM with sudo. How to reverse? - Stack Overflow ruby - Howto Uninstall RVM - 続きを読む →

初回時のyumの設定

Jan 7, 2013  
CentOS 導入したら、まず yum を強くするのだ!! yum をはやくする % sudo yum -y install yum-fastestmirror 開発用ツール % sudo yum groupinstall "Development Tools" パッケージ管理のリポジトリ追加 rpmforge, epel, remi の3つを入れておけば、大体なんとかなるらしい。 rpmforge % sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt % sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm epel % sudo rpm --import http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/RPM-GPG-KEY-EPEL-6 % sudo rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm remi % sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi % sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm Development Tools を入れれば一応入るとおもわれるが、以下をやっておくと安心 % sudo yum install -y gcc-c++ gcc-c make patch readline 続きを読む →

postgresql の使い方

Jan 4, 2013  
普段 MySQL ばっかりなので、ポスグレは分からない… SHOW databases; \l SHOW tables; \d 大文字について もし何かの間違いでスキーマ名やテーブル名に大文字を指定していたら、ダブルクオーテーションで囲ってやること。スキーマ名とテーブル名の間のピリオドは囲まない。 select * from "SCHEMA".users; select * from "PREFIX_users"; スキーマを指定 「リレーションがありません」とか言われたら、適切なスキーマを定義してやる。 set search_path="SCHEMA", "SCHEMA2", public 続きを読む →

Setup iTerm2

Jan 4, 2013  
iTerm2 を Emacs 仕様にする Command を Meta にする。ただし、Command + Tab や Command * Space は有効にする。 iTerm -> Preferences… で設定画面を開く Profiles -> Keys の下段の Left Option を +ESC にチェックする Keys タブの Remap Modifier Keys の Left command key と Right command key をLeft Option に変える Keys タブの Global Shortcut Keys の + をクリック、Action から Do Not Remap Modifires を選択、Command + Tab と Command + Space を登録する(必要があれば他のキーも登録する) これで、tmux の Emacs モードも快適に使える:) 続きを読む →