Sha256: 78fc2b56a994e0e27cc37fb1718a9c22b6cdcf8cb45fc0758453bfbab5b79946

Contents?: true

Size: 1.17 KB

Versions: 14

Compression:

Stored size: 1.17 KB

Contents

class RakeCommander::Custom::ChainerPlus < RakeCommander::Custom::Chainer
  TARGET_TASK = 'examples:chained_plus'.freeze

  desc "Uses rake (or raked) to invoke #{TARGET_TASK}"
  task :chainer_plus

  # Disable using defaults when options are not invoked.
  options_with_defaults false

  # Update option description
  option_reopen :chain, desc: "Calls: '< rake|raked > #{TARGET_TASK} task'"
  # Extend with new options
  option :e, '--exit-on-error', TrueClass, \
         desc: "Whether #{TARGET_TASK} should just exit on 'missing argument' error (or raise an exception)"
  option :o, '--hello NAME', String, desc: 'It greets.'

  # Make it default to `exit 1` when there are errors
  error_on_options false
  # Let it trigger/raise the error when an unknown option is used!
  error_on_options true, error: RakeCommander::Options::Error::InvalidArgument

  def task(*_args)
    puts "Hello #{options[:o]}!!" if options[:o]
    options[:m] = :system unless options[:m]
    super
  end

  # We add the extended arguments at the beginning
  def subcommand_arguments
    [].tap do |args|
      args << '--exit-on-error' if options[:e]
    end.concat(super)
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rake-commander-0.4.0 examples/03_a_chainer_plus_example.rb
rake-commander-0.3.6 examples/03_a_chainer_plus_example.rb
rake-commander-0.3.5 examples/03_a_chainer_plus_example.rb
rake-commander-0.3.3 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.12 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.11 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.10 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.7 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.6 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.5 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.4 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.3 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.2 examples/03_a_chainer_plus_example.rb
rake-commander-0.2.0 examples/03_a_chainer_plus_example.rb