Module: Ripper::RubyBuilder::Block

Included in:
Ripper::RubyBuilder
Defined in:
lib/ripper/ruby_builder/events/block.rb

Instance Method Summary collapse

Instance Method Details

#on_begin(body) ⇒ Object



21
22
23
24
25
26
# File 'lib/ripper/ruby_builder/events/block.rb', line 21

def on_begin(body)
  body = body.to_chained_block unless body.is_a?(Ruby::ChainedBlock)
  body.rdelim = pop_token(:@end)
  body.identifier = pop_token(:@begin)
  body
end

#on_block_var(params, something) ⇒ Object



48
49
50
51
52
53
# File 'lib/ripper/ruby_builder/events/block.rb', line 48

def on_block_var(params, something)
  params.rdelim = pop_token(:'@|')
  params.ldelim = pop_token(:'@|')
  params.ldelim, params.rdelim = empty_block_params_delimiters(params) if stack.last.type == :'@||'
  params
end

#on_brace_block(params, statements) ⇒ Object



15
16
17
18
19
# File 'lib/ripper/ruby_builder/events/block.rb', line 15

def on_brace_block(params, statements)
  rdelim = pop_token(:@rbrace)
  ldelim = pop_token(:@lbrace)
  statements.to_block(params, ldelim, rdelim)
end

#on_do_block(params, statements) ⇒ Object



9
10
11
12
13
# File 'lib/ripper/ruby_builder/events/block.rb', line 9

def on_do_block(params, statements)
  rdelim = pop_token(:@end)
  ldelim = pop_token(:@do)
  statements.to_block(params, ldelim, rdelim)
end

#on_ensure(statements) ⇒ Object



36
37
38
39
# File 'lib/ripper/ruby_builder/events/block.rb', line 36

def on_ensure(statements)
  identifier = pop_token(:@ensure)
  Ruby::NamedBlock.new(identifier, statements)
end

#on_method_add_block(call, block) ⇒ Object



4
5
6
7
# File 'lib/ripper/ruby_builder/events/block.rb', line 4

def on_method_add_block(call, block)
  call.block = block
  call
end

#on_params(params, optionals, rest, something, block) ⇒ Object



55
56
57
58
59
# File 'lib/ripper/ruby_builder/events/block.rb', line 55

def on_params(params, optionals, rest, something, block)
  optionals = to_assignments(optionals) if optionals
  params = (Array(params) + Array(optionals) << rest << block).flatten.compact
  Ruby::Params.new(params)
end

#on_rescue(types, var, statements, block) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/ripper/ruby_builder/events/block.rb', line 28

def on_rescue(types, var, statements, block)
  identifier = pop_token(:@rescue)
  ldelim = pop_token(:@then)
  operator = pop_token(:'@=>', :left => identifier)
  params = Ruby::RescueParams.new(types, var, operator)
  statements.to_chained_block(identifier, block, params, ldelim)
end

#on_rescue_mod(expression, statements) ⇒ Object



41
42
43
44
45
46
# File 'lib/ripper/ruby_builder/events/block.rb', line 41

def on_rescue_mod(expression, statements)
  args = Ruby::ArgsList.new(args) unless args.is_a?(Ruby::List)
  statements, expression = *[statements, expression].sort
  identifier = pop_token(:@rescue)
  Ruby::RescueMod.new(identifier, expression, statements)
end

#on_rest_param(param) ⇒ Object



61
62
63
# File 'lib/ripper/ruby_builder/events/block.rb', line 61

def on_rest_param(param)
  Ruby::Param.new(param, pop_token(:'@*'))
end