class Okuyama::Protocol::AbstractProtocol
Public Instance Methods
method_missing(method_id, *args, &block)
click to toggle source
Calls superclass method
# File lib/okuyama/protocol/abstract_protocol.rb, line 4 def method_missing(method_id, *args, &block) method_name = method_id.to_s if method_name =~ /^message_of_/ then next_method_name = $' result = self.capture(:stdout) { self.send(next_method_name, $stdout, *args, &block) } return result else super end end
Protected Instance Methods
capture(*streams) { || ... }
click to toggle source
# File lib/okuyama/protocol/abstract_protocol.rb, line 18 def capture(*streams) streams.map! { |stream| stream.to_s } begin result = StringIO.new streams.each { |stream| eval "$#{stream} = result" } yield ensure streams.each { |stream| eval("$#{stream} = #{stream.upcase}") } end result.string end