Квадратные скобки в вашем синтаксисе выполнения сбивают меня с толку.Это специальный синтаксис граблей (который вы используете неправильно) или вы хотите отправить массив с одним элементом (хеш)?Разве это не так же, как это?
response = Rake::Task["sample"].execute([:match => "HELLO",:freq=>'100'])
Помимо этого, Task#execute
ожидает Rake: TaskArguments.
class TaskArguments
...
# Create a TaskArgument object with a list of named arguments
# (given by :names) and a set of associated values (given by
# :values). :parent is the parent argument object.
def initialize(names, values, parent=nil)
Вы можете использовать:
stuff_args = {:match => "HELLO", :freq => '100' }
Rake::Task["stuff:sample"].execute(Rake::TaskArguments.new(stuff_args.keys, stuff_args.values))
Вы также можете использовать Task # invoke, который будет получать основные аргументы.Убедитесь, что вы Task#reenable
, если вы вызываете его несколько раз.