Module: Ripper::RubyBuilder::Block
- Included in:
- Ripper::RubyBuilder
- Defined in:
- lib/ripper/ruby_builder/events/block.rb
Instance Method Summary collapse
- #on_begin(body) ⇒ Object
- #on_block_var(params, something) ⇒ Object
- #on_brace_block(params, statements) ⇒ Object
- #on_do_block(params, statements) ⇒ Object
- #on_ensure(statements) ⇒ Object
- #on_method_add_block(call, block) ⇒ Object
- #on_params(params, optionals, rest, something, block) ⇒ Object
- #on_rescue(types, var, statements, block) ⇒ Object
- #on_rescue_mod(expression, statements) ⇒ Object
- #on_rest_param(param) ⇒ Object
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 |