タグ

ブックマーク / kwatch.hatenadiary.org (4)

  • RSpec のすごいところ - kなんとかの日記

    (注: 以下の内容は、RSpec ユーザの間で広まっていることでもなく、もちろん RSpec 開発チームの公式な見解でもなく、あくまでワシの個人的な見解です。) RSpec のすごいところは、コードに対してではなく仕様に対してテストを書くことを明確にしたことだと思う。何を今さらと言われそうだけど、今さらになってようやく気づいたニワトリ頭ですまんかった。 ワシも最初は、「assert_equal(expected, actual)」のかわりに「actual.should == expected」と書くかっこよさに目を奪われて、テストコードを自然言語に近い形で記述するのが RSpec のすごいところだと勘違いしてたし、それが「TDD (Test Driven Development)」から「BDD (Behaviour Driven Development)」へという新しい潮流だと勘違いしてた

    RSpec のすごいところ - kなんとかの日記
  • Enumerable#select と #collect を同時に行いたい - kなんとかの日記

    せっかくなので小ネタを。 Python でのリスト内包表記は、for と if を同時に書ける。これはループを1回まわるだけで、選択 (select) と写像 (collect) を一度に行えることを意味する。 >>> L = ['foo', 'bar', 'baz'] >>> [ x.upper() for x in L if x.startswith('ba') ] ['BAR', 'BAZ'] これと同じことを Ruby でやると、Enumerable#collect と #select を使うわけだが、そうするとループを2回まわることになり、アルゴリズム的には動作効率はよくない。 irb> arr = ['foo', 'bar', 'baz'] => ["foo", "bar", "baz"] irb> arr.select {|x| x =~ /\Aba/ }.collect {

    Enumerable#select と #collect を同時に行いたい - kなんとかの日記
    basyura
    basyura 2010/03/30
    効率化
  • 大量のハッシュデータを簡潔に作成する - kなんとかの日記

    スクリプト言語では Hash や dict のリテラルが用意されているので、書きやすい。しかしテストデータなどで大量の記述が必要になると、さすがにちょっと面倒である。 data = [ {:name=>"Haruhi", :gender=>1, :role=>"Leader of SOS Brigade"}, {:name=>"Mikuru", :gender=>1, :role=>"Time Traveler"}, {:name=>"Yuki", :gender=>1, :role=>"Humanoid Interface"}, {:name=>"Itsuki", :gender=>0, :role=>"ESPer Boy"}, {:name=>"Kyon", :gender=>0, :role=>"Story Teller"}, ] 同じキーが繰り返し出てくるのがいやだよね。これなら

    大量のハッシュデータを簡潔に作成する - kなんとかの日記
    basyura
    basyura 2009/07/14
    けっこう良いかも
  • GitHub で gem を自動作成させるときの注意 - kなんとかの日記

    GitHub では、gem パッケージを作成してくれる機能がある。 やり方: GitHubプロジェクト管理ページから「edit」をクリックし、「RubyGem」のチェックボックスにチェックを入れる。 自分のプロジェクト用の *.gemspec ファイルを commit & push する。このとき、バージョン番号をあえて 0.0.0 にしておくことをお勧めする。 *.gemspec ファイルでバージョン番号を更新して commit & push する。← 重要! 成功すると、しばらくしたあとに http://gems.github.com/list.html に Gem 名が現れる。失敗した場合は自分宛にメッセージが届いているはずなので、それを読む。 それ以外にも GitHub での gem 作成はけっこうハマるポイントがある。ローカルでの gem 作成はまったく問題がなくても、Git

    GitHub で gem を自動作成させるときの注意 - kなんとかの日記
  • 1