Class: Code::Node::FunctionParameter

Inherits:
Code::Node show all
Defined in:
lib/code/node/function_parameter.rb

Instance Method Summary collapse

Methods inherited from Code::Node

#evaluate, #resolve

Constructor Details

#initialize(parsed) ⇒ FunctionParameter

Returns a new instance of FunctionParameter.



6
7
8
9
10
11
# File 'lib/code/node/function_parameter.rb', line 6

def initialize(parsed)
  return if parsed.blank?

  @name = parsed.delete(:name).presence
  @keyword = parsed.delete(:keyword).present?
end

Instance Method Details

#defaultObject



33
34
35
# File 'lib/code/node/function_parameter.rb', line 33

def default
  nil
end

#keyword?Boolean

Returns:



21
22
23
# File 'lib/code/node/function_parameter.rb', line 21

def keyword?
  !!@keyword
end

#keyword_splat?Boolean

Returns:



29
30
31
# File 'lib/code/node/function_parameter.rb', line 29

def keyword_splat?
  false
end

#nameObject



13
14
15
# File 'lib/code/node/function_parameter.rb', line 13

def name
  Object::String.new(@name)
end

#regular?Boolean

Returns:



17
18
19
# File 'lib/code/node/function_parameter.rb', line 17

def regular?
  !@keyword
end

#regular_splat?Boolean

Returns:



25
26
27
# File 'lib/code/node/function_parameter.rb', line 25

def regular_splat?
  false
end

#to_codeObject



48
49
50
# File 'lib/code/node/function_parameter.rb', line 48

def to_code
  to_h.to_code
end

#to_hObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/code/node/function_parameter.rb', line 37

def to_h
  {
    name:,
    regular?: regular?,
    keyword?: keyword?,
    regular_splat?: regular_splat?,
    keyword_splat?: keyword_splat?,
    default: Object::Code.new(default)
  }
end