Class: Guileless::InputStream
- Inherits:
-
Object
- Object
- Guileless::InputStream
- Defined in:
- lib/guileless/input_stream.rb
Instance Method Summary collapse
- #discard(count = 1) ⇒ Object
- #empty? ⇒ Boolean
- #fetch ⇒ Object
-
#initialize(input) ⇒ InputStream
constructor
A new instance of InputStream.
- #peek?(patterns) ⇒ Boolean
- #reinject(char) ⇒ Object
- #strip_whitespace ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(input) ⇒ InputStream
Returns a new instance of InputStream.
3 4 5 |
# File 'lib/guileless/input_stream.rb', line 3 def initialize(input) @buffer = input.chars.to_a end |
Instance Method Details
#discard(count = 1) ⇒ Object
19 20 21 |
# File 'lib/guileless/input_stream.rb', line 19 def discard(count=1) count.times { @buffer.shift } end |
#empty? ⇒ Boolean
11 12 13 |
# File 'lib/guileless/input_stream.rb', line 11 def empty? @buffer.length == 0 end |
#fetch ⇒ Object
15 16 17 |
# File 'lib/guileless/input_stream.rb', line 15 def fetch @buffer.shift end |
#peek?(patterns) ⇒ Boolean
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/guileless/input_stream.rb', line 27 def peek?(patterns) match = false Array(patterns).each do |pattern| if pattern.kind_of?(Regexp) match = true if self.to_s =~ pattern elsif pattern.kind_of?(String) match = true if self.to_s[0...(pattern.length)] == pattern end end match end |
#reinject(char) ⇒ Object
7 8 9 |
# File 'lib/guileless/input_stream.rb', line 7 def reinject(char) @buffer.unshift(char) end |
#strip_whitespace ⇒ Object
23 24 25 |
# File 'lib/guileless/input_stream.rb', line 23 def strip_whitespace @buffer.shift while @buffer.first == "\n" end |
#to_s ⇒ Object
39 40 41 |
# File 'lib/guileless/input_stream.rb', line 39 def to_s @buffer.join end |