hitode909の日記

趣味はマリンスポーツですの日記です

Termtterリファクタリング合宿に行ってRuby力が上がった

土日にTermtterリファクタリング合宿に行って,Termtterのテストを書いたり,ビールを飲んだりしてた.テストが増えたのでよかったのだけど,id:Sixeightさんにいろいろ聞いて,ちょっとRubyの知識が増えた.
覚えたことのメモ.

method_missingでsuper

    def method_missing(name, *args)
      if @data.key?(name)
        return @data[name]
      else
        super
      end
    end
  • superしているのは,NoMethodErrorとかの処理を親クラスに任せるため
  • ここで,elseがなければ,何を呼んでもnilが返ってしまう

定数は変更できる

定数は定数であるし,代入すると警告が出るので,変更できないと思っていたら,警告が出るだけで,変更できるらしい.

irb(main):007:0> RUBY_PLATFORM = "mswin"
(irb):7: warning: already initialized constant RUBY_PLATFORM
=> "mswin"
irb(main):008:0> RUBY_PLATFORM
=> "mswin"


他にもいろいろあったけど忘れた.


Rubyはわりと書けたけど,スレッドが絡むテストを書くのが難しかったりして,テストを書く力が足りない感じだった.
第二回リファクタリング合宿を開こうと言ってたので,それまでに勉強したい.