module Fingerbank::Lookup
Public Instance Methods
_lookup(info)
click to toggle source
# File lib/fingerbank_client/lookup.rb, line 5 def _lookup(info) user_agent = info[:user_agent] begin device = Device.lookup_in_local(info) return device unless device.nil? rescue Exception => e Fingerbank.logger.warn "Fingerbank : Can't lookup device in local database (#{e.message})" end device = lookup_in_upstream info return device end
lookup(info)
click to toggle source
# File lib/fingerbank_client/lookup.rb, line 18 def lookup(info) user_agent = info[:user_agent] begin if defined?(Rails) Rails.cache.fetch(user_agent, :expires_in => 2.hour) do _lookup(info) end end rescue NameError => e unless e.message == "uninitialized constant RAILS_CACHE" raise e end end return _lookup(info) end
lookup_in_upstream(info)
click to toggle source
# File lib/fingerbank_client/lookup.rb, line 34 def lookup_in_upstream(info) user_agent = info[:user_agent] data = self.interrogate(user_agent) return nil unless data name = data['device']['name'] parents = data['device']['parents'].map{|parent| parent['name']} return Device.new(:name => name, :parents => parents, :version => data['version']) end