class Janis::Parsing::ParserFactory
Attributes
parser_klasses[R]
Public Class Methods
new()
click to toggle source
# File lib/janis/parser_factory.rb, line 12 def initialize @parser_klasses = Janis::Parsing::SpecificParsers::ProxyWebsiteParser.subclasses end
Public Instance Methods
create_parser(website_name)
click to toggle source
# File lib/janis/parser_factory.rb, line 16 def create_parser(website_name) namespacing_prefix = "Janis::Parsing::SpecificParsers::" @parser_klasses.find { |parser_klass| parser_klass.to_s == namespacing_prefix + parser_klass_name_for(website_name) }.new end
Private Instance Methods
parser_klass_name_for(website_name)
click to toggle source
TODO: This should be probably moved to a name helper module
website_name should be a :symbol_in_snake_lower_case. eg: :hide_my_ass will mean HideMyAssParser
# File lib/janis/parser_factory.rb, line 25 def parser_klass_name_for(website_name) website_name.to_s.split('_').map { |word| word.capitalize}.join + "Parser" end