Class: Accord::SignatureInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/accord/signature_info.rb

Instance Method Summary collapse

Instance Method Details

#argumentsObject



7
8
9
# File 'lib/accord/signature_info.rb', line 7

def arguments
  @arguments ||= []
end

#block(name = nil) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/accord/signature_info.rb', line 26

def block(name=nil)
  if name
    @block = name.to_sym
  else
    @block
  end
end

#match?(params) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
38
# File 'lib/accord/signature_info.rb', line 34

def match?(params)
  args = normalized_arguments
  match_without_all_required_args(args, params) ||
    match_without_all_required_args(args, without_last_defaults(params))
end

#param(arg) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/accord/signature_info.rb', line 11

def param(arg)
  if arg.is_a?(Symbol) || arg.is_a?(String)
    arg = { name: arg.to_sym }
  elsif arg.is_a?(Hash) && arg.size == 1
    arg = { name: arg.keys.first, default: arg.values.first }
  else
    raise ArgumentError, "bad argument: #{arg.inspect}."
  end
  arguments << arg
end

#splat(name) ⇒ Object



22
23
24
# File 'lib/accord/signature_info.rb', line 22

def splat(name)
  arguments << { name: name.to_sym, splat: true }
end