class WebPageParser::ParserFactory
Public Class Methods
add_factory(f)
click to toggle source
# File lib/web-page-parser/parser_factory.rb, line 19 def self.add_factory(f) @@factories << f unless @@factories.include? f end
factories()
click to toggle source
# File lib/web-page-parser/parser_factory.rb, line 23 def self.factories @@factories end
inherited(factory)
click to toggle source
Keep track of any newly defined factories
# File lib/web-page-parser/parser_factory.rb, line 45 def self.inherited(factory) self.add_factory(factory) end
load(dirname)
click to toggle source
Load all the plugins in the given directory
# File lib/web-page-parser/parser_factory.rb, line 37 def self.load(dirname) Dir.open(dirname).each do |fn| next unless fn =~ /page_parser\.rb$/ require File.join(dirname, fn) end end
parser_for(options = {})
click to toggle source
Return a PageParser than can parse the given page. options hash must have a :url key
# File lib/web-page-parser/parser_factory.rb, line 29 def self.parser_for(options = {}) @@factories.each do |factory| return factory.create(options) if factory.can_parse?(options) end nil end
Public Instance Methods
can_parse?(options = {})
click to toggle source
return true if the Parser can handle the given page. options hash must have a :url key
# File lib/web-page-parser/parser_factory.rb, line 7 def can_parse?(options = {}) false end
create(options = {})
click to toggle source
Allocate a new parser. options hash is passed to new method of parser class.
# File lib/web-page-parser/parser_factory.rb, line 13 def create(options = {}) nil end