Class: Slop::Result
- Inherits:
-
Object
- Object
- Slop::Result
- Defined in:
- lib/slop/result.rb
Overview
This class encapsulates a Parser and Options pair. The idea is that the Options class shouldn’t have to deal with what happens when options are parsed, and the Parser shouldn’t have to deal with the state of options once parsing is complete. This keeps the API really simple; A Parser parses, Options handles options, and this class handles the result of those actions. This class contains the important most used methods.
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#parser ⇒ Object
readonly
Returns the value of attribute parser.
Instance Method Summary collapse
-
#[](flag) ⇒ Object
(also: #get)
Returns an options value, nil if the option does not exist.
-
#[]=(flag, value) ⇒ Object
(also: #set)
Set the value for an option.
-
#arguments ⇒ Object
(also: #args)
Example:.
-
#initialize(parser) ⇒ Result
constructor
A new instance of Result.
- #method_missing(name, *args, &block) ⇒ Object
-
#option(flag) ⇒ Object
Returns an Option if it exists.
- #respond_to_missing?(name, include_private = false) ⇒ Boolean
-
#to_hash ⇒ Object
(also: #to_h)
Returns a hash with option key => value.
- #to_s(**opts) ⇒ Object
-
#unused_options ⇒ Object
Returns an Array of Option instances that were not used.
-
#used_options ⇒ Object
Returns an Array of Option instances that were used.
Constructor Details
#initialize(parser) ⇒ Result
Returns a new instance of Result.
12 13 14 15 |
# File 'lib/slop/result.rb', line 12 def initialize(parser) @parser = parser @options = parser. end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/slop/result.rb', line 42 def method_missing(name, *args, &block) if respond_to_missing?(name) (o = option(name.to_s.chomp("?"))) && .include?(o) else super end end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
10 11 12 |
# File 'lib/slop/result.rb', line 10 def @options end |
#parser ⇒ Object (readonly)
Returns the value of attribute parser.
10 11 12 |
# File 'lib/slop/result.rb', line 10 def parser @parser end |
Instance Method Details
#[](flag) ⇒ Object Also known as: get
Returns an options value, nil if the option does not exist.
18 19 20 |
# File 'lib/slop/result.rb', line 18 def [](flag) (o = option(flag)) && o.value end |
#[]=(flag, value) ⇒ Object Also known as: set
Set the value for an option. Raises an ArgumentError if the option does not exist.
25 26 27 28 29 30 31 |
# File 'lib/slop/result.rb', line 25 def []=(flag, value) if o = option(flag) o.value = value else raise ArgumentError, "no option with flag `#{flag}'" end end |
#arguments ⇒ Object Also known as: args
75 76 77 |
# File 'lib/slop/result.rb', line 75 def arguments parser.arguments end |
#option(flag) ⇒ Object
Returns an Option if it exists. Ignores any prefixed hyphens.
35 36 37 38 39 40 |
# File 'lib/slop/result.rb', line 35 def option(flag) cleaned = -> (f) { f.to_s.sub(/\A--?/, '') } .find do |o| o.flags.any? { |f| cleaned.(f) == cleaned.(flag) } end end |
#respond_to_missing?(name, include_private = false) ⇒ Boolean
50 51 52 |
# File 'lib/slop/result.rb', line 50 def respond_to_missing?(name, include_private = false) name.to_s.end_with?("?") || super end |
#to_hash ⇒ Object Also known as: to_h
Returns a hash with option key => value.
81 82 83 |
# File 'lib/slop/result.rb', line 81 def to_hash Hash[.reject(&:null?).map { |o| [o.key, o.value] }] end |
#to_s(**opts) ⇒ Object
86 87 88 |
# File 'lib/slop/result.rb', line 86 def to_s(**opts) .to_s(**opts) end |
#unused_options ⇒ Object
Returns an Array of Option instances that were not used.
60 61 62 |
# File 'lib/slop/result.rb', line 60 def parser. end |
#used_options ⇒ Object
Returns an Array of Option instances that were used.
55 56 57 |
# File 'lib/slop/result.rb', line 55 def parser. end |