class NRSER::Labs::LOTS::OptConsumer
Public Class Methods
new(name:, aliases: [])
click to toggle source
# File lib/nrser/labs/lots/consumer.rb, line 45 def initialize name:, aliases: [] @name = name @aliases = aliases.dup end
Public Instance Methods
can_consume?(tokens)
click to toggle source
# File lib/nrser/labs/lots/consumer.rb, line 58 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()
click to toggle source
# File lib/nrser/labs/lots/consumer.rb, line 54 def long_names @long_names ||= @names.select { |name| name.length > 1 } end
names()
click to toggle source
# File lib/nrser/labs/lots/consumer.rb, line 50 def names @names ||= [name, *aliases] end
satisfied?()
click to toggle source
# File lib/nrser/labs/lots/consumer.rb, line 81 def satisfied? if consumed.empty? type.test?( nil ) else true end end