Sha256: 9f3e7c3ba797893142b81b6d0ce0f675cf4f24999f64bf3d95d924010c3ae14f
Contents?: true
Size: 1.92 KB
Versions: 4
Compression:
Stored size: 1.92 KB
Contents
# encoding: utf-8 module Unparser # Buffer used to emit into class Buffer NL = "\n".freeze # Initialize object # # @return [undefined] # # @api private # def initialize @content = '' @indent = 0 end # Append string # # @param [String] string # # @return [self] # # @api private # def append(string) if @content[-1] == NL prefix end @content << string self end # Append a string without an indentation prefix # # @param [String] string # # @return [self] # # @api private # def append_without_prefix(string) @content << string self end # Increase indent # # @return [self] # # @api private # def indent @indent += 1 self end # Decrease indent # # @return [self] # # @api private # def unindent @indent -= 1 self end # Write newline # # @return [self] # # @api private # def nl @content << NL self end # Test for a fresh line # # @return [true] # if the buffer content ends with a fresh line # # @return [false] # otherwise # # @api private # def fresh_line? @content.empty? || @content[-1] == NL end # Return content of buffer # # @return [String] # # @api private # def content @content.dup.freeze end # Capture the content written to the buffer within the block # # @return [String] # # @api private # def capture_content size_before = @content.size yield @content[size_before..-1] end private INDENT_SPACE = ' '.freeze # Write prefix # # @return [String] # # @api private # def prefix @content << INDENT_SPACE * @indent end end # Buffer end # Unparser
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
unparser-0.1.9 | lib/unparser/buffer.rb |
unparser-0.1.8 | lib/unparser/buffer.rb |
unparser-0.1.7 | lib/unparser/buffer.rb |
unparser-0.1.6 | lib/unparser/buffer.rb |