Sha256: f678a18e43a3577c27970ea848219d92f369229ad1ac46d796b53aebcfc28824

Contents?: true

Size: 640 Bytes

Versions: 6

Compression:

Stored size: 640 Bytes

Contents

# frozen_string_literal: true

require "okay/version"
require "optparse"

module Okay
  ##
  # An OptionParser wrapper providing a few convenience functions.
  class SimpleOpts < OptionParser
    def initialize(*args, defaults: nil)
      super(*args)
      @okay_options = defaults || {}
    end

    # simple(..., :a)
    # simple(..., :b)
    #   ==
    # options = {}
    # on(...) { |val| options[:a] = val }
    # on(...) { |val| options[:b] = val }
    def simple(*args)
      key = args.pop
      on(*args) { |*x| @okay_options[key] = x[0] }
    end

    def parse(args)
      parse!(args.dup)
      @okay_options
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
okay-12.0.4 lib/okay/simple_opts.rb
okay-12.0.3 lib/okay/simple_opts.rb
okay-12.0.2 lib/okay/simple_opts.rb
okay-12.0.1 lib/okay/simple_opts.rb
okay-12.0.0 lib/okay/simple_opts.rb
okay-11.0.0 lib/okay/simple_opts.rb