Module: Ripper::RubyBuilder::If

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

Instance Method Summary collapse

Instance Method Details

#build_if(klass, type, expression, statements, else_block) ⇒ Object



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

def build_if(klass, type, expression, statements, else_block)
  rdelim = pop_token(:@end)
  ldelim = pop_token(:@then)
  identifier = pop_token(type)
  klass.new(identifier, expression, statements, ldelim, rdelim, else_block)
end

#on_else(statements) ⇒ Object



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

def on_else(statements)
  keyword = pop_token(:@else)
  block = Ruby::Else.new(keyword, statements)
end

#on_elsif(expression, statements, else_block) ⇒ Object



19
20
21
# File 'lib/ripper/ruby_builder/events/if.rb', line 19

def on_elsif(expression, statements, else_block)
  build_if(Ruby::If, :@elsif, expression, statements, else_block)
end

#on_if(expression, statements, else_block) ⇒ Object



11
12
13
# File 'lib/ripper/ruby_builder/events/if.rb', line 11

def on_if(expression, statements, else_block)
  build_if(Ruby::If, :@if, expression, statements, else_block)
end

#on_if_mod(expression, statement) ⇒ Object



28
29
30
# File 'lib/ripper/ruby_builder/events/if.rb', line 28

def on_if_mod(expression, statement)
  Ruby::IfMod.new(pop_token(:@if), expression, statement)
end

#on_unless(expression, statements, else_block) ⇒ Object



15
16
17
# File 'lib/ripper/ruby_builder/events/if.rb', line 15

def on_unless(expression, statements, else_block)
  build_if(Ruby::Unless, :@unless, expression, statements, else_block)
end

#on_unless_mod(expression, statement) ⇒ Object



32
33
34
# File 'lib/ripper/ruby_builder/events/if.rb', line 32

def on_unless_mod(expression, statement)
  Ruby::UnlessMod.new(pop_token(:@unless), expression, statement)
end