補足情報
特集3「Redis大活用」5章の内容について
(2013年4月1日更新)
記事中の同点問題について、執筆時と現在の状況が変わりました。詳しくは著者のブログを参照してください。
http://blog.nekokak.org/show?guid=iIz4tOKF4hG-rirtGCByNQ
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに、ご迷惑をおかけしたことを深くお詫び申し上げます。
(2013年6月19日更新)
特集1「たのしい開発実況中継」
P.44 図1
誤 |
Rudy/Rails |
正 |
Ruby/Rails |
連載「一歩先ゆくRuby」
P.126 左段3段落2行目
P.126 左段4段落1行目
誤 |
1つ目は、同じInchAvailableモジュールの中で利用する方法です。次のように、module
InchAvailableの内部であれば、メソッドの外でも中でもinch/inchesメソッドを利用できます。
module InchAvailable
p 3.inches
#=> 7.62
# たとえば、1cm あたり10 円の布
def get_price_from_inch(size)
10 * size.inch
end
module_function :get_price_from_inch
end
InchAvailable.get_price_from_inch 10
#=> 254.0
|
こちらの仕様はrc1のものです。Ruby 2.0.0パッチレベル0以降では、refineの宣言をしたモジュール内部での挙動変更は利用できません。筆者のブログもあわせてご覧下さい。
http://blog.udzura.jp/2013/02/21/wrote-to-webdb-press-vol-73-about-ruby-2-0/
記述したサンプルコードは以下であれば動作します。
■main.rb:
module InchAvailable
refine Fixnum do
def inch
self * 2.54
end
alias inches inch
end
end
require './outer'
# defined in outer.rb, but OK
SampleClass.get_price_from_inch(10) #=> 254.0
■outer.rb:
using InchAvailable
class SampleClass
p 3.inches #=> 7.62
def self.get_price_from_inch(size)
10 * size.inch
end
end
SampleClass.get_price_from_inch(10) #=> 254.0
|
P.126 左段11段落1行目
誤 |
2つ目の方法として、別のモジュールやクラスを作り、その内部でInchAvailableを有効にすることもできます。同様にModule#usingを使います。
class Student
using InchAvailable
def height_by_inch
@height_by_cm / 1.inch
end
end
|
正 |
(削除) |
連載「Perl Hackers Hub」
P.133 リスト9の2行目
誤 |
sub func_returns_lvalue : lvavlue { # (1)
|
正 |
sub func_returns_lvalue : lvalue { # (1)
|