Class: Sus::Output::Buffered
- Inherits:
-
Object
- Object
- Sus::Output::Buffered
- Defined in:
- lib/sus/output/buffered.rb
Constant Summary collapse
- INDENT =
[:indent].freeze
- OUTDENT =
[:outdent].freeze
Instance Attribute Summary collapse
-
#chunks ⇒ Object
readonly
Returns the value of attribute chunks.
-
#tee ⇒ Object
readonly
Returns the value of attribute tee.
Instance Method Summary collapse
- #append(buffer) ⇒ Object
- #assert(*arguments) ⇒ Object
- #buffered ⇒ Object
- #each(&block) ⇒ Object
- #error(*arguments) ⇒ Object
- #indent ⇒ Object
- #indented ⇒ Object
- #inform(*arguments) ⇒ Object
-
#initialize(tee = nil) ⇒ Buffered
constructor
A new instance of Buffered.
- #inspect ⇒ Object
- #outdent ⇒ Object
- #puts(*arguments) ⇒ Object
- #skip(*arguments) ⇒ Object
- #string ⇒ Object
- #write(*arguments) ⇒ Object
Constructor Details
#initialize(tee = nil) ⇒ Buffered
Returns a new instance of Buffered.
13 14 15 16 |
# File 'lib/sus/output/buffered.rb', line 13 def initialize(tee = nil) @chunks = Array.new @tee = tee end |
Instance Attribute Details
#chunks ⇒ Object (readonly)
Returns the value of attribute chunks.
18 19 20 |
# File 'lib/sus/output/buffered.rb', line 18 def chunks @chunks end |
#tee ⇒ Object (readonly)
Returns the value of attribute tee.
19 20 21 |
# File 'lib/sus/output/buffered.rb', line 19 def tee @tee end |
Instance Method Details
#append(buffer) ⇒ Object
37 38 39 40 |
# File 'lib/sus/output/buffered.rb', line 37 def append(buffer) @chunks.concat(buffer.chunks) @tee&.append(buffer) end |
#assert(*arguments) ⇒ Object
79 80 81 82 |
# File 'lib/sus/output/buffered.rb', line 79 def assert(*arguments) @chunks << [:assert, *arguments] @tee&.assert(*arguments) end |
#buffered ⇒ Object
29 30 31 |
# File 'lib/sus/output/buffered.rb', line 29 def buffered self.class.new(self) end |
#each(&block) ⇒ Object
33 34 35 |
# File 'lib/sus/output/buffered.rb', line 33 def each(&block) @chunks.each(&block) end |
#error(*arguments) ⇒ Object
89 90 91 92 |
# File 'lib/sus/output/buffered.rb', line 89 def error(*arguments) @chunks << [:error, *arguments] @tee&.error(*arguments) end |
#indent ⇒ Object
50 51 52 53 |
# File 'lib/sus/output/buffered.rb', line 50 def indent @chunks << INDENT @tee&.indent end |
#indented ⇒ Object
62 63 64 65 66 67 |
# File 'lib/sus/output/buffered.rb', line 62 def indented self.indent yield ensure self.outdent end |
#inform(*arguments) ⇒ Object
94 95 96 97 |
# File 'lib/sus/output/buffered.rb', line 94 def inform(*arguments) @chunks << [:inform, *arguments] @tee&.inform(*arguments) end |
#inspect ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/sus/output/buffered.rb', line 21 def inspect if @tee "\#<#{self.class.name} #{@chunks.size} chunks -> #{@tee.class}>" else "\#<#{self.class.name} #{@chunks.size} chunks>" end end |
#outdent ⇒ Object
57 58 59 60 |
# File 'lib/sus/output/buffered.rb', line 57 def outdent @chunks << OUTDENT @tee&.outdent end |
#puts(*arguments) ⇒ Object
74 75 76 77 |
# File 'lib/sus/output/buffered.rb', line 74 def puts(*arguments) @chunks << [:puts, *arguments] @tee&.puts(*arguments) end |
#skip(*arguments) ⇒ Object
84 85 86 87 |
# File 'lib/sus/output/buffered.rb', line 84 def skip(*arguments) @chunks << [:skip, *arguments] @tee&.skip(*arguments) end |
#string ⇒ Object
42 43 44 45 46 |
# File 'lib/sus/output/buffered.rb', line 42 def string io = StringIO.new Text.new(io).append(@chunks) return io.string end |
#write(*arguments) ⇒ Object
69 70 71 72 |
# File 'lib/sus/output/buffered.rb', line 69 def write(*arguments) @chunks << [:write, *arguments] @tee&.write(*arguments) end |