Class: Marameters::Signatures::Builder

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

Overview

Builds a single parameter for a method’s signature.

Instance Method Summary collapse

Constructor Details

#initialize(defaulter: Defaulter) ⇒ Builder

Returns a new instance of Builder.



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

def initialize defaulter: Defaulter
  @defaulter = defaulter
  freeze
end

Instance Method Details

#call(kind, name = nil, default: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/marameters/signatures/builder.rb', line 12

def call kind, name = nil, default: nil
  case kind
    when :req then name
    when :opt then "#{name} = #{defaulter.call default}"
    when :rest then "*#{name}"
    when :nokey then "**nil"
    when :keyreq then "#{name}:"
    when :key then "#{name}: #{defaulter.call default}"
    when :keyrest then "**#{name}"
    when :block then "&#{name}"
    else fail ArgumentError, "Wrong kind (#{kind}), name (#{name}), or default (#{default})."
  end
end