class Nanoc::Extra::SrcsetParser
@api private
Constants
- REGEX_REST
Public Class Methods
new(value)
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 30 def initialize(value) @value = value end
Public Instance Methods
call()
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 34 def call matches = [] loop do match = {} scan(/\s*/) match[:url] = scan(/[^, ]+/) match[:rest] = scan(REGEX_REST) scan(/\s*/) matches << match next if try_scan(/,/) break if eos? raise(InvalidFormat) end matches rescue InvalidFormat @value end
Private Instance Methods
eos?()
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 70 def eos? scanner.eos? end
scan(pattern)
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 60 def scan(pattern) match = try_scan(pattern) match || raise(InvalidFormat) end
scanner()
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 74 def scanner @_scanner ||= StringScanner.new(@value) end
try_scan(pattern)
click to toggle source
# File lib/nanoc/extra/srcset_parser.rb, line 66 def try_scan(pattern) scanner.scan(pattern) end