Class: Marameters::Signatures::Super

Inherits:
Object
  • Object
show all
Defined in:
lib/marameters/signatures/super.rb

Overview

Blends ancestor and descendant method arguments for forwarding to the super keyword.

Instance Method Summary collapse

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