lib/ids_please.rb in ids_please-0.0.3 vs lib/ids_please.rb in ids_please-1.0.0

- old
+ new

@@ -1,30 +1,40 @@ require 'uri' require 'cgi' +require_relative 'ids_please/base_parser' +require_relative 'ids_please/facebook' +require_relative 'ids_please/google_plus' +require_relative 'ids_please/instagram' +require_relative 'ids_please/twitter' +require_relative 'ids_please/tumblr' +require_relative 'ids_please/vimeo' +require_relative 'ids_please/youtube' +require_relative 'ids_please/soundcloud' +require_relative 'ids_please/vkontakte' +require_relative 'ids_please/odnoklassniki' class IdsPlease - VERSION = '0.0.3' + VERSION = '1.0.0' - attr_accessor :original, :recognized, :unrecognized, :options, :parsed + attr_accessor :original, :recognized, :unrecognized, :parsed - SOCIAL_NETWORKS = %w( - GooglePlus - Vkontakte - Twitter - Facebook - Instagram - Soundcloud - Vimeo - Youtube - Odnoklassniki - Tumblr - ) + SOCIAL_NETWORKS = [ + IdsPlease::GooglePlus, + IdsPlease::Vkontakte, + IdsPlease::Twitter, + IdsPlease::Facebook, + IdsPlease::Instagram, + IdsPlease::Soundcloud, + IdsPlease::Vimeo, + IdsPlease::Youtube, + IdsPlease::Odnoklassniki, + IdsPlease::Tumblr + ] def initialize(*args) duped_args = args.dup - @options = duped_args.pop if duped_args.last.is_a?(Hash) @original = duped_args end def recognize @recognized = {} @@ -33,40 +43,29 @@ end def parse recognize @parsed = {} - recognized.each do |klass_name, links| - @parsed[klass_name] ||= [] - @parsed[klass_name] += parser(klass_name).parse(links) + recognized.each do |network_sym, links| + parser = SOCIAL_NETWORKS.find { |sn| sn.to_sym == network_sym } + + @parsed[network_sym] ||= [] + @parsed[network_sym] += parser.parse(links) end end private def recognize_link(link) - network, handle = nil link = "http://#{link}" unless link =~ /\Ahttps?:\/\// parsed_link = URI(URI.encode(link)) SOCIAL_NETWORKS.each do |network| - if parsed_link.host =~ parser(network)::MASK - recognized[network] ||= [] - recognized[network] << parsed_link + if parsed_link.host =~ network::MASK + recognized[network.to_sym] ||= [] + recognized[network.to_sym] << parsed_link return end end unrecognized << link end - def parser(name) - "IdsPlease::#{name}".split('::').inject(Module) do |acc, val| - acc.const_get(val) - end - end - -end - -require_relative 'ids_please/base_parser' -Dir[File.dirname(__FILE__) + '/ids_please/*.rb'].each do |file| - next if file =~ /base_parser/ - require file end