class Raabro::Input
def at(i)
def at(i) @string[i, 1] end
def initialize(string, offset=0, options={})
def initialize(string, offset=0, options={}) @string = string @offset = offset.is_a?(Hash) ? 0 : offset @options = offset.is_a?(Hash) ? offset : options end
def match(str_or_regex)
def match(str_or_regex) if str_or_regex.is_a?(Regexp) m = @string[@offset..-1].match(str_or_regex) m && (m.offset(0).first == 0) ? m[0].length : false else # String or whatever responds to #to_s s = str_or_regex.to_s l = s.length @string[@offset, l] == s ? l : false end end
def tring(l=-1)
def tring(l=-1) l < 0 ? @string[@offset..l] : @string[@offset, l] end