Class: Advanced::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/advanced/definition.rb

Constant Summary collapse

KEY_TYPES =
%i[key keyreq]

Instance Method Summary collapse

Constructor Details

#initializeDefinition

Returns a new instance of Definition.



5
6
7
# File 'lib/advanced/definition.rb', line 5

def initialize
  @names = []
end

Instance Method Details

#add(names = []) ⇒ Object



9
10
11
# File 'lib/advanced/definition.rb', line 9

def add(names = [])
  @names += names
end

#parameter_names_for(klass) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/advanced/definition.rb', line 13

def parameter_names_for(klass)
  values = klass.steps.flat_map do |meth|
    klass.instance_method(meth).parameters.reduce([]) do |acc, (type, name)|
      KEY_TYPES.include?(type) ? (acc + [name]) : acc
    end
  end

  values + @names
end