Module: RubyScribe::EmitterHelpers

Included in:
Emitter
Defined in:
lib/ruby_scribe/emitter_helpers.rb

Instance Method Summary collapse

Instance Method Details

#indent(level = nil) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/ruby_scribe/emitter_helpers.rb', line 11

def indent(level = nil)
  level = default_indent if level.nil?
  
  indents.push(level)
  output = yield
  indents.pop
  output
end

#indent_levelObject



7
8
9
# File 'lib/ruby_scribe/emitter_helpers.rb', line 7

def indent_level
  indents.inject(0) {|b,i| b + i } || 0
end

#indentsObject



3
4
5
# File 'lib/ruby_scribe/emitter_helpers.rb', line 3

def indents
  @indents ||= []
end

#literalize_strings(sexps) ⇒ Object



24
25
26
27
28
# File 'lib/ruby_scribe/emitter_helpers.rb', line 24

def literalize_strings(sexps)
  sexps.map do |sexp|
    sexp.is_a?(Sexp) && sexp.kind == :str ? sexp.body[0] : sexp
  end
end

#nl(text = "") ⇒ Object



20
21
22
# File 'lib/ruby_scribe/emitter_helpers.rb', line 20

def nl(text = "")
  "\n" + (" " * indent_level) + text
end