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