Class: Code::Node::FunctionParameter

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Code::Node

#evaluate, #resolve

Constructor Details

#initialize(parsed) ⇒ FunctionParameter

Returns a new instance of FunctionParameter.



8
9
10
11
12
13
14
15
16
# File 'lib/code/node/function_parameter.rb', line 8

def initialize(parsed)
  return if parsed.blank?

  @name = parsed.delete(:name).presence
  @keyword = parsed.delete(:keyword).present?
  @regular_splat = parsed.delete(:regular_splat).present?
  @keyword_splat = parsed.delete(:keyword_splat).present?
  @default = Code.new(parsed.delete(:default)) if parsed.key?(:default)
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



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

def default
  @default
end

Instance Method Details

#keyword?Boolean

Returns:



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

def keyword?
  !!@keyword
end

#keyword_splat?Boolean

Returns:



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

def keyword_splat?
  !!@keyword_splat
end

#nameObject



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

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

#regular?Boolean

Returns:



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

def regular?
  !@keyword
end

#regular_splat?Boolean

Returns:



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

def regular_splat?
  !!@regular_splat
end

#to_codeObject



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

def to_code
  to_h.to_code
end

#to_hObject



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

def to_h
  {
    name: name,
    regular?: regular?,
    keyword?: keyword?,
    regular_splat?: regular_splat?,
    keyword_splat?: keyword_splat?,
    default: default
  }
end