Являются ли аргументы задачи rake неизменяемыми?

Я хочу изменить значение аргументов задачи (например, я хочу, чтобы аргумент стал символом). Но кажется, что аргументы задачи rake неизменяемы, это правильно?

  task :my_task,[:some_arg,:another_arg]  do |cmd,args|
    puts args[:some_arg].class
    args[:some_arg]=args[:some_arg].to_sym
    puts args[:some_arg].class
  end

person Paul Verschoor    schedule 11.12.2015    source источник


Ответы (1)


Глядя на исходный код rake здесь https://github.com/ruby/rake/blob/master/lib/rake/task_arguments.rb мы можем проверить, что метод [] переопределен:

# Find an argument value by name or index.
def [](index)
  lookup(index.to_sym)
end

Таким образом, невозможно изменить аргументы таким образом.

person Mareq    schedule 11.12.2015