class Attentive::Cursor
Constants
- EOF
Attributes
message[R]
pos[R]
tokens[R]
Public Class Methods
new(message, pos=0)
click to toggle source
# File lib/attentive/cursor.rb, line 5 def initialize(message, pos=0) @message = message @tokens = message.respond_to?(:tokens) ? message.tokens : message @pos = pos end
Public Instance Methods
advance(n=1)
click to toggle source
# File lib/attentive/cursor.rb, line 37 def advance(n=1) @pos += n self end
Also aliased as: adv
eof?()
click to toggle source
# File lib/attentive/cursor.rb, line 43 def eof? @pos == @tokens.length end
inspect()
click to toggle source
# File lib/attentive/cursor.rb, line 29 def inspect "<Cursor \"#{(tokens[0...pos] || []).join.inspect[1...-1]}\e[7m#{tokens[pos].to_s.inspect[1...-1]}\e[0m#{(tokens[(pos + 1)..-1] || []).join.inspect[1...-1]}\">" end
new_from_here()
click to toggle source
# File lib/attentive/cursor.rb, line 21 def new_from_here self.class.new(tokens[pos..-1]) end
offset()
click to toggle source
# File lib/attentive/cursor.rb, line 33 def offset peek.begin end
peek()
click to toggle source
# File lib/attentive/cursor.rb, line 11 def peek tokens[pos] || EOF end
pop()
click to toggle source
# File lib/attentive/cursor.rb, line 15 def pop peek.tap do advance end end
to_s()
click to toggle source
# File lib/attentive/cursor.rb, line 25 def to_s tokens[pos..-1].join end