メソッドを動的に追加し、複数のパラメーターを許可できるクラスを作成したいと考えています。
例えば:
r = Robot.new
r.learn_maneuvering('turn') { |degree| puts "turning #{degree} degrees" }
r.turn 50 # => turning 50 degrees
r.turn 50, 60 # => turning 50 degrees # => turning 60 degrees
私の最初の試みはこれでした:
def learn_maneuvering(name, &block)
define_singleton_method(name, &block)
end
ただし、1 つのパラメーターのみを考慮します。
私はそれから始めました:
def learn_maneuvering(name, &block)
define_singleton_method(name) do |*args|
# to do
end
end
すべての引数が正しく使用されるまで、これはループすると思いますか? とにかく、これらの引数を指定されたブロックに渡す方法がわかりません。