quattro_4 scribble

scribble 落書き (調べた事をただ落書きする)

RubyTapas #048, #049, #050, #055, #056

048 Memoize

★★★

おおMemoize
今会社のプロジェクトでまさに改善が必要で取り組んでいるトピックだ
ラッキーすぎる
流れが来ている

benchmarkの部分

require 'benchmark'
puts Benchmark.measure {

module Memoizableが思ったよりいろいろやっている

ケースバイケースで @var ||=
みたいなシンプルで良いと思うけど

@memoized_vars.key?(key)

は重要だな

fetchもうまく使えるのかもしれない

049 Utility Function

しばしばクラスメソッドとインスタンスメソッド両方で動くものを作ることがある
includeなどを使うこともできるが

module_function

も使えるらしい
ただ名前は直感的でなくあまりよく知られていないとも言っている

railsの中で見てみたけどactivesupportで少し使われていた程度

050 Include Namespace Module

前回の続き

なんかよくわからないけどinternal moduleにもincludeするにはということで
親のmoduleをnestしてincludeするように書いても問題ないと言うことかな

module ROFLWeb
  module_function

  def unique_id(object)


  module UrlHelpers
    include ROFLWeb
    # ...
  end

  class MemoryRepository
    include ROFLWeb
    # ...
  end

overkill やり過ぎ、行き過ぎ http://eow.alc.co.jp/overkill/utf-8/

055 Runnable Library

__FILE__
$PROGRAM_NAME # = $0

runnerble libraryは通常はファイルの最後で

if $PROGRAM_NAME == __FILE__
  rfc822_to_json($stdin)
end

などと書く

pythonではcommon techniqueらしい

from time to time 時々 http://eow.alc.co.jp/from%20time%20to%20time/utf-8/

056 xmpfilter

★★★

謎が解けた

インラインで結果を出しているのが何かと言うことで

#=>

をスクリプトに入れておいて実行すると結果が => の後に表示されるというもの

$ xmpfilter math.rb

2 + 2 # => 4

rcodetoolsというgemらしい

エディタにもバインディングできる

'The "XMP" in the name is for "example".'

この情報はここだけの秘密secretを強調している

venerable 尊い、立派な、尊敬する http://eow.alc.co.jp/venerable/utf-8/

sublime. textmateでもできるらしい