Sha256: 19991e839f33f0b723fe1668be40e89056a3b319c441b3d99407eaff9bcda1c9

Contents?: true

Size: 577 Bytes

Versions: 1

Compression:

Stored size: 577 Bytes

Contents

# frozen_string_literal: true

module OptionsParser
  def required_options(initializer)
    options_that_are(initializer, :required)
  end

  def optional_options(initializer)
    options_that_are(initializer, :optional)
  end

  private

  def options_that_are(initializer, constraint)
    raise(ArgumentError, 'constraint must be required or optional') unless %i[required optional].include?(constraint)

    method = constraint.eql?(:required) ? :select : :reject
    initializer[2][:current_command].options.send(method) { |_k, v| v.required }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
emasser-3.4.1 lib/emasser/options_parser.rb