StringScanner
Currently reading Rebuilding Rails by Noah Gibbs.
At some point, he writes about checking out Active Support for some pointers on metaprogramming. Currently felt into a rabbit hole on the duration part of the lib.
Anyways. Here’s a nifty class in Ruby that facilitates some scanning on strings.
StringScanner provides for lexical scanning operations on a String. source
Usage:
string = StringScanner.new("bob")
=> #<StringScanner 0/3 @ "bob">
[9] pry(main)> string.eos?
=> false
[10] pry(main)> string.pos
=> 0
[12] pry(main)> string.peek(5)
=> "bob"
[14] pry(main)> string.getch
=> "b"
[15] pry(main)> string.pos
=> 1
[16] pry(main)> string.reset
=> #<StringScanner 0/3 @ "bob">
[17] pry(main)> string.pos
=> 0