lib/ids_please.rb in ids_please-2.2.0 vs lib/ids_please.rb in ids_please-2.2.1

- old
+ new

@@ -24,11 +24,11 @@ @unrecognized = [] original.each { |l| recognize_link(l) } end def recognized - Hash[@recognized.map { |parser, links| [ parser.to_sym, links ] }] + Hash[@recognized.map { |parser, links| [parser.to_sym, links] }] end def parse interact(:parsers) end @@ -37,41 +37,41 @@ interact(:grabbers) end private - def interact(interactors = :parsers) + def interact(interactors_group = :parsers) recognize interacted = Hash.new { |hash, network| hash[network] = [] } @recognized.each do |network, links| - interactor = IdsPlease.send(interactors).by_symbol(network) + interactor = IdsPlease.send(interactors_group).by_symbol(network) interacted[network].concat interactor.interact(links) end - self.instance_variable_set(interacted_var(interactors), interacted) + instance_variable_set(interacted_var(interactors_group), interacted) interacted end - def interacted_var(interactors) - if interactors == :parsers + def interacted_var(interactors_group) + if interactors_group == :parsers :@parsed - elsif interactors == :grabbers + elsif interactors_group == :grabbers :@grabbed else throw 'Wrong interactors type' end end def recognize_link(link) link = "http://#{link}" unless link =~ /\Ahttps?:\/\// parsed_link = URI(URI.encode(link)) - IdsPlease::Parsers.each do |network| - if parsed_link.host =~ network::MASK - @recognized[network.to_sym] ||= [] - @recognized[network.to_sym] << parsed_link - return - end + + network = IdsPlease::Parsers.to_a.find { |n| parsed_link.host =~ n::MASK } + + if network + @recognized[network.to_sym] ||= [] + @recognized[network.to_sym] << parsed_link + else + @unrecognized << link end - unrecognized << link end - end