Class: OptConsumer
Instance Method Summary collapse
- #can_consume?(tokens) ⇒ Boolean
-
#initialize(name:, aliases: []) ⇒ OptConsumer
constructor
A new instance of OptConsumer.
- #long_names ⇒ Object
- #names ⇒ Object
- #satisfied? ⇒ Boolean
Constructor Details
#initialize(name:, aliases: []) ⇒ OptConsumer
Returns a new instance of OptConsumer.
33 34 35 36 |
# File 'lib/nrser/labs/lots/consumer.rb', line 33 def initialize name:, aliases: [] @name = name @aliases = aliases.dup end |
Instance Method Details
#can_consume?(tokens) ⇒ Boolean
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/nrser/labs/lots/consumer.rb', line 46 def can_consume? tokens return 0 unless consumed.empty? first = tokens[0] return 1 if long_names.any? { |name| /\-\-#{ name }\=.*/ =~ first } if tokens.length > 1 && names.any? { |name| if name.length == 1 first == "-#{ name }" else first == "--#{ name }" end } return 2 end return 0 end |
#long_names ⇒ Object
42 43 44 |
# File 'lib/nrser/labs/lots/consumer.rb', line 42 def long_names @long_names ||= @names.select { |name| name.length > 1 } end |
#names ⇒ Object
38 39 40 |
# File 'lib/nrser/labs/lots/consumer.rb', line 38 def names @names ||= [name, *aliases] end |
#satisfied? ⇒ Boolean
69 70 71 72 73 74 75 |
# File 'lib/nrser/labs/lots/consumer.rb', line 69 def satisfied? if consumed.empty? type.test?( nil ) else true end end |