Получение / установка значения аргумента по умолчанию динамически - PullRequest
0 голосов
/ 06 октября 2010

Начните со следующего сценария:

class Foo
  def bar(baz={})
    p baz
  end
end

foo = Foo.new
p meth = foo.method(:bar) # => #<Method: Foo#bar>
p meth.parameters # => [[:opt, :baz]]

Итак, я могу понять, что метод bar является необязательным, но как мне найти значение по умолчанию ({}) для метода?1006 *

1 Ответ

2 голосов
/ 06 октября 2010

Просто сделайте это:

foo.bar

Поскольку вы не передаете значение для baz, оно выведет значение по умолчанию.

Хотя, держу пари, вы хотите что-тоэто будет относиться к любому методу.Единственный последовательный способ, который я знаю, это посмотреть на исходный код.

Ответ: Кто-то написал скрипт, который делает это здесь .

Однако, глядя на сценарий, чтобы попытаться понять, как он вытягивает значения по умолчанию, у меня болит голова.

...