class Apropos::ExtensionParser
ExtensionParser
manages registered variant parsers and provides a base class which new parsers subclass. Parsers are initialized with a pattern (String or Regexp) and a block that is called to generate ClassList
or MediaQuery
objects from the provided match data.
Attributes
pattern[R]
Public Class Methods
add_parser(extension, &block)
click to toggle source
# File lib/apropos/extension_parser.rb, line 13 def self.add_parser(extension, &block) @parsers[extension] = new(extension, &block) end
each_parser(&block)
click to toggle source
# File lib/apropos/extension_parser.rb, line 17 def self.each_parser(&block) parsers.values.each(&block) end
new(pattern, &block)
click to toggle source
# File lib/apropos/extension_parser.rb, line 23 def initialize(pattern, &block) @pattern = generate_pattern(pattern) @match_block = block end
parsers()
click to toggle source
# File lib/apropos/extension_parser.rb, line 9 def self.parsers @parsers end
Public Instance Methods
match(extension)
click to toggle source
# File lib/apropos/extension_parser.rb, line 28 def match(extension) matchdata = pattern.match(extension) if matchdata @match_block.call(matchdata) end end
Private Instance Methods
generate_pattern(pattern)
click to toggle source
# File lib/apropos/extension_parser.rb, line 37 def generate_pattern(pattern) case pattern when String %r(^#{Regexp.escape(pattern)}$) else pattern end end