Как сделать так, чтобы две задачи делились друг с другом?

С 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 что это нарушаетпринцип СУХОЙ, Есть ли идиоматический способ справиться с этим?

Ответы на вопрос(5)

Ваш ответ на вопрос