12. New Features
キーワード引数 Array#bsearch
Module#prepend GC bitmap marking
Refinement Debugger/Profiler
Enumerator::Lazy API
スクリプトエンコーディング
DTrace対応 UTF-8化
TracePoint String#b
13. Keyword Arguments
def tupple(key: a , value: b )
{ key => value }
end
tupple key: k , value: v # =>
{ k => v }
tupple value: 42 # => { a => 42 }
tupple # => { a => b }
14. Module#prepend
obj C M Object
class C; include M; end
Module#include (Mixin) は定義済みのメソッドを上書きできない
obj M C Object
class C; prepend M; end
Module#prepend は C のメソッドを上書きできる
Around Alias (alias_method_chain) のかわりに使える
15. Module#prepend
module Title
def initialize(title, name)
@title = title
super(name)
end
def name
@title + super
end
end
class Person
def initialize(name) @name=name end
def name
@name
end
prepend Title
end
Person.new( Mr. , nagachika ).name #=> Mr.nagachika