Class: Marameters::Signatures::Super
- Inherits:
-
Object
- Object
- Marameters::Signatures::Super
- Defined in:
- lib/marameters/signatures/super.rb
Overview
Blends ancestor and descendant method arguments for forwarding to the super keyword.
Instance Method Summary collapse
- #call(ancestor, descendant) ⇒ Object
-
#initialize(key_length: 1, kinds: KINDS, forwarder: Signatures::Forwarder) ⇒ Super
constructor
A new instance of Super.
Constructor Details
#initialize(key_length: 1, kinds: KINDS, forwarder: Signatures::Forwarder) ⇒ Super
Returns a new instance of Super.
7 8 9 10 11 12 |
# File 'lib/marameters/signatures/super.rb', line 7 def initialize key_length: 1, kinds: KINDS, forwarder: Signatures::Forwarder @key_length = key_length @kinds = kinds @forwarder = forwarder freeze end |
Instance Method Details
#call(ancestor, descendant) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/marameters/signatures/super.rb', line 14 def call ancestor, descendant return "" if ancestor.empty? merge(ancestor, descendant).values .sort_by! { |(kind, *)| kinds.index kind } .then { |parameters| build parameters } end |