Class: IPLookup
- Inherits:
-
Object
- Object
- IPLookup
- Defined in:
- lib/ip_lookup.rb,
lib/ip_lookup/db.rb,
lib/ip_lookup/errors.rb,
lib/ip_lookup/version.rb,
lib/ip_lookup/defaults.rb
Defined Under Namespace
Classes: DB, DBFileNotFoundError
Constant Summary collapse
- VERSION =
"1.2.3"
- DEFAULT_COUNTRY =
"us"
- DEFAULT_TIMEZONE =
"America/Swift_Current"
- DEFAULT_COORDINATES =
NYC
[40.0, 74.0].freeze
- DEFAULT_SUBDIVISION =
nil
Instance Attribute Summary collapse
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#silent_exceptions ⇒ Object
readonly
Returns the value of attribute silent_exceptions.
Instance Method Summary collapse
- #coordinates ⇒ Object
- #country ⇒ Object
-
#initialize(ip_address, silent_exceptions: false) ⇒ IPLookup
constructor
A new instance of IPLookup.
- #subdivision ⇒ Object
- #timezone ⇒ Object
Constructor Details
#initialize(ip_address, silent_exceptions: false) ⇒ IPLookup
Returns a new instance of IPLookup.
14 15 16 17 18 19 |
# File 'lib/ip_lookup.rb', line 14 def initialize(ip_address, silent_exceptions: false) @silent_exceptions = silent_exceptions @result = DB.new(silent_exceptions).lookup(ip_address) rescue IPAddr::InvalidAddressError, IPAddr::AddressFamilyError => e raise e unless silent_exceptions end |
Instance Attribute Details
#result ⇒ Object (readonly)
Returns the value of attribute result.
11 12 13 |
# File 'lib/ip_lookup.rb', line 11 def result @result end |
#silent_exceptions ⇒ Object (readonly)
Returns the value of attribute silent_exceptions.
12 13 14 |
# File 'lib/ip_lookup.rb', line 12 def silent_exceptions @silent_exceptions end |
Instance Method Details
#coordinates ⇒ Object
37 38 39 40 41 |
# File 'lib/ip_lookup.rb', line 37 def coordinates return DEFAULT_COORDINATES unless result&.found? [result.location.latitude, result.location.longitude] end |
#country ⇒ Object
21 22 23 24 25 26 |
# File 'lib/ip_lookup.rb', line 21 def country return DEFAULT_COUNTRY unless result&.found? iso_code = result.country.iso_code || result.registered_country.iso_code iso_code ? iso_code.downcase : DEFAULT_COUNTRY end |
#subdivision ⇒ Object
43 44 45 46 47 |
# File 'lib/ip_lookup.rb', line 43 def subdivision return DEFAULT_SUBDIVISION unless result&.found? result.subdivisions.any? ? result.subdivisions.first.iso_code.downcase : DEFAULT_SUBDIVISION end |
#timezone ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/ip_lookup.rb', line 28 def timezone return DEFAULT_TIMEZONE unless result&.found? timezone = result.location.time_zone timezone ||= timezone_for result.country.iso_code if result.country.iso_code timezone || DEFAULT_TIMEZONE end |