Module: RubyScribe::EmitterHelpers
- Included in:
- Emitter
- Defined in:
- lib/ruby_scribe/emitter_helpers.rb
Instance Method Summary collapse
- #indent(level = nil) ⇒ Object
- #indent_level ⇒ Object
- #indents ⇒ Object
- #literalize_strings(sexps) ⇒ Object
- #nl(text = "") ⇒ Object
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_level ⇒ Object
7 8 9 |
# File 'lib/ruby_scribe/emitter_helpers.rb', line 7 def indent_level indents.inject(0) {|b,i| b + i } || 0 end |
#indents ⇒ Object
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 |