Class: Hammy::KeywordServiceObject

Inherits:
AbstractServiceObject show all
Defined in:
lib/hammy/keyword_service_object.rb

Instance Method Summary collapse

Methods inherited from AbstractServiceObject

build, #initialize, #klass, #protected_getters, #public_getters, #valid_action?

Constructor Details

This class inherits a constructor from Hammy::AbstractServiceObject

Instance Method Details

#initial_instance_variables(_args, kargs) ⇒ Object



18
19
20
21
22
# File 'lib/hammy/keyword_service_object.rb', line 18

def initial_instance_variables(_args, kargs)
  @args.map do |a|
    ["@#{a}", kargs[a]]
  end
end

#private_gettersObject



24
25
26
# File 'lib/hammy/keyword_service_object.rb', line 24

def private_getters
  @args
end

#validate_args!(args, kargs) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
# File 'lib/hammy/keyword_service_object.rb', line 8

def validate_args!(args, kargs)
  raise ArgumentError.new("wrong number of arguments (given #{args.size}, expected 0; required keywords: #{@args.join(', ')})") unless args.empty?

  missing = @args - kargs.keys
  raise ArgumentError.new("missing keywords: #{missing.join(', ')}") unless missing.empty?

  unknown = kargs.keys - @args
  raise ArgumentError.new("unknown keywords: #{unknown.join(', ')}") unless unknown.empty?
end