Class: Accord::SignatureInfo
- Inherits:
-
Object
- Object
- Accord::SignatureInfo
- Defined in:
- lib/accord/signature_info.rb
Instance Method Summary collapse
- #arguments ⇒ Object
- #block(name = nil) ⇒ Object
- #match?(params) ⇒ Boolean
- #param(arg) ⇒ Object
- #splat(name) ⇒ Object
Instance Method Details
#arguments ⇒ Object
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
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 |