Hi,
I am beginner in Ruby.
I wonder why the following doesn't work.
class << Float
public
def format(args)
puts "self=#{self}"
puts "args=#{args}"
Kernel.format(args, self)
end
end
puts 45.5678.format("%.02f")
Gives private method `format' called for 45.5678:Float (NoMethodError)
I don't see any reason why you would define the method you are trying to define. If you insist, you should do
irb(main):001:0> class Float
irb(main):002:1> def format(s) s % self end
irb(main):003:1> end
=> nil
irb(main):004:0> 1.234.format "%.02f"
=> "1.23"
irb(main):005:0> 1.0.format "%.02f"
=> "1.00"
Kind regards
robert
···
On 21.04.2007 12:52, yc wrote:
Hi,
I am beginner in Ruby.
I wonder why the following doesn't work.
class << Float
public
def format(args)
puts "self=#{self}"
puts "args=#{args}"
Kernel.format(args, self)
end
end
puts 45.5678.format("%.02f")
Gives private method `format' called for 45.5678:Float (NoMethodError)