『初めてのRuby』を読んでみました。
をはじめ、いろいろと勉強になりました。
例8-12を使って、
class Duration def initialize(since, till) @since = since @until = till end attr_accessor :since, :until def display(target=$>) super target.write "(#{self.since}-#{self.until})\n" end end duration = Duration.new(Time.now, Time.now + 3600) duration.display require 'stringio' buffer = String.new sio = StringIO.new(buffer) duration.display(sio) puts buffer
のように書いてみたのですが、これはダックタイピングと言ってもいいのでしょうか?
あと、9章において、「9.3 データベース」、「9.4 画像」、「9.5 GUI」でrubygemsを利用したサンプルが説明されていますが、
例9-2
require 'rubygems' gem 'activerecord' require 'active_record' …
例9-3
require 'rubygems' require 'gd2' …
例9-4
require 'rubygems' gem 'wxruby' require 'wx' …
例9-3だけが、gemの行がないのは何故なんだろうと思ってしまいました。ちなみに、
require 'rubygems' gem 'gd2' require 'gd2'
としても、動作しました。