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