Class: Opal::Nodes::Args::Parameters

Inherits:
Object
  • Object
show all
Defined in:
opal/lib/opal/nodes/args/parameters.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Parameters

Returns a new instance of Parameters

[View source]

7
8
9
# File 'opal/lib/opal/nodes/args/parameters.rb', line 7

def initialize(args)
  @args = args.children
end

Instance Method Details

#on_arg(arg_name) ⇒ Object

[View source]

19
20
21
# File 'opal/lib/opal/nodes/args/parameters.rb', line 19

def on_arg(arg_name)
  %{['req', '#{arg_name}']}
end

#on_blockarg(arg_name) ⇒ Object

[View source]

55
56
57
# File 'opal/lib/opal/nodes/args/parameters.rb', line 55

def on_blockarg(arg_name)
  %{['block', '#{arg_name}']}
end

#on_kwarg(arg_name) ⇒ Object

[View source]

39
40
41
# File 'opal/lib/opal/nodes/args/parameters.rb', line 39

def on_kwarg(arg_name)
  %{['keyreq', '#{arg_name}']}
end

#on_kwoptarg(arg_name, _default_value) ⇒ Object

[View source]

43
44
45
# File 'opal/lib/opal/nodes/args/parameters.rb', line 43

def on_kwoptarg(arg_name, _default_value)
  %{['key', '#{arg_name}']}
end

#on_kwrestarg(arg_name = nil) ⇒ Object

[View source]

47
48
49
50
51
52
53
# File 'opal/lib/opal/nodes/args/parameters.rb', line 47

def on_kwrestarg(arg_name = nil)
  if arg_name
    %{['keyrest', '#{arg_name}']}
  else
    %{['keyrest']}
  end
end

#on_mlhsObject

[View source]

23
24
25
# File 'opal/lib/opal/nodes/args/parameters.rb', line 23

def on_mlhs(*)
  %{['req']}
end

#on_optarg(arg_name, _default_value) ⇒ Object

[View source]

27
28
29
# File 'opal/lib/opal/nodes/args/parameters.rb', line 27

def on_optarg(arg_name, _default_value)
  %{['opt', '#{arg_name}']}
end

#on_restarg(arg_name = nil) ⇒ Object

[View source]

31
32
33
34
35
36
37
# File 'opal/lib/opal/nodes/args/parameters.rb', line 31

def on_restarg(arg_name = nil)
  if arg_name
    %{['rest', '#{arg_name}']}
  else
    %{['rest']}
  end
end

#on_shadowarg(_arg_name) ⇒ Object

[View source]

59
# File 'opal/lib/opal/nodes/args/parameters.rb', line 59

def on_shadowarg(_arg_name); end

#to_codeObject

[View source]

11
12
13
14
15
16
17
# File 'opal/lib/opal/nodes/args/parameters.rb', line 11

def to_code
  stringified_parameters = @args.map do |arg|
    public_send(:on_#{arg.type}", *arg)
  end

  "[#{stringified_parameters.compact.join(', ')}]"
end