Class: Marameters::Signatures::Inheritor

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

Overview

Blends ancestor and descendant method parameters together while allowing default overrides.

Instance Method Summary collapse

Constructor Details

#initialize(key_length: 1, kinds: KINDS) ⇒ Inheritor

Returns a new instance of Inheritor.



7
8
9
10
11
# File 'lib/marameters/signatures/inheritor.rb', line 7

def initialize key_length: 1, kinds: KINDS
  @key_length = key_length
  @kinds = kinds
  freeze
end

Instance Method Details

#call(ancestor, descendant) ⇒ Object



13
14
15
# File 'lib/marameters/signatures/inheritor.rb', line 13

def call ancestor, descendant
  merge(ancestor, descendant).values.sort_by! { |(kind, *)| kinds.index kind }
end