Sha256: ee17c60d003bf3cdf59f4b92e55917004936ce1243723fe131a712374f8bec4a
Contents?: true
Size: 1.4 KB
Versions: 25
Compression:
Stored size: 1.4 KB
Contents
require 'geocoder/results/base' module Geocoder module Result class Geoip2 < Base def coordinates %w[latitude longitude].map do |l| data.fetch('location', {}).fetch(l, 0.0) end end def city fetch_name( data.fetch('city', {}).fetch('names', {}) ) end def state fetch_name( data.fetch('subdivisions', []).fetch(0, {}).fetch('names', {}) ) end def state_code data.fetch('subdivisions', []).fetch(0, {}).fetch('iso_code', '') end def country fetch_name( data.fetch('country', {}).fetch('names', {}) ) end def country_code data.fetch('country', {}).fetch('iso_code', '') end def postal_code data.fetch('postal', {}).fetch('code', '') end def self.response_attributes %w[ip] end response_attributes.each do |a| define_method a do @data[a] end end def language=(l) @language = l.to_s end def language @language ||= default_language end def data @data.to_hash end private def default_language @default_language = Geocoder.config[:language].to_s end def fetch_name(names) names[language] || names[default_language] || '' end end end end
Version data entries
25 entries across 25 versions & 2 rubygems