Class: Sho::ArgumentValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/sho/argument_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(*mandatory, **optional) ⇒ ArgumentValidator

Returns a new instance of ArgumentValidator.



6
7
8
9
10
11
# File 'lib/sho/argument_validator.rb', line 6

def initialize(*mandatory, **optional)
  mandatory.all? { |m| m.is_a?(Symbol) } or
    fail ArgumentError, 'Mandatory arguments should be send as array of symbols'
  @mandatory = mandatory
  @optional = optional
end

Instance Method Details

#call(**params) ⇒ Object



13
14
15
16
17
# File 'lib/sho/argument_validator.rb', line 13

def call(**params)
  guard_missing!(**params)
  guard_unknown!(**params)
  params.merge(@optional.reject { |key,| params.key?(key) })
end