Module: Lino::Builders::Mixins::Arguments

Includes:
Validation
Included in:
CommandLine
Defined in:
lib/lino/builders/mixins/arguments.rb

Instance Method Summary collapse

Methods included from Validation

#empty?, #nil_or_empty?

Instance Method Details

#initialize(state) ⇒ Object



12
13
14
15
# File 'lib/lino/builders/mixins/arguments.rb', line 12

def initialize(state)
  @arguments = Hamster::Vector.new(state[:arguments] || [])
  super
end

#with_argument(argument) ⇒ Object



17
18
19
20
21
22
# File 'lib/lino/builders/mixins/arguments.rb', line 17

def with_argument(argument)
  return self if argument.nil?
  return self if empty?(argument.to_s)

  with(arguments: @arguments.add(Model::Argument.new(argument)))
end

#with_arguments(arguments) ⇒ Object



24
25
26
27
28
# File 'lib/lino/builders/mixins/arguments.rb', line 24

def with_arguments(arguments)
  return self if nil_or_empty?(arguments)

  arguments.inject(self) { |s, argument| s.with_argument(argument) }
end