Как сделать так, чтобы две задачи делились друг с другом?
С Thor можно использоватьmethod_option
установить параметры для конкретной задачи. Чтобы установить параметры для всех задач в классе, можно использоватьclass_option
, Но как насчет случая, когда кто-то хочет, чтобы некоторые задачи класса, но не все, делились опциями?
В следующихtask1
а такжеtask2
разделяет опции, но они не разделяют все опции и не делятся ни с какимиtask3
.
require 'thor'
class Cli < Thor
desc 'task1', 'Task 1'
method_option :type, :type => :string, :required => true, :default => 'foo'
def task1
end
desc 'task2', 'Task 2'
method_option :type, :type => :string, :required => true, :default => 'foo'
method_option :value, :type => :numeric
def task2
end
desc 'task3', 'Task 3'
method_option :verbose, :type => :boolean, :aliases => '-v'
def task3
end
end
Cli.start(ARGV)
Проблема с заявлениемmethod_option :type, :type => :string, :required => true, :default => 'foo'
для обоихtask1
а такжеtask2
что это нарушаетпринцип СУХОЙ, Есть ли идиоматический способ справиться с этим?