world-flags 0.4.8.2 → 0.4.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.8.2
1
+ 0.4.8.3
@@ -7,16 +7,23 @@ module WorldFlags
7
7
  ip ||= request.remote_ip
8
8
  raise WorldFlags::GeoIPError, "IP address #{ip} is a localhost address" if local_ip?(ip)
9
9
 
10
+ puts "find country code for ip: #{ip}" if debug?
11
+
10
12
  @geoip ||= ::GeoIP.new WorldFlags.geo_ip_db_path
11
13
  country = @geoip.country(ip)
12
14
  return country[2] unless country.nil?
13
- raise WorldFlags::GeoIPError, "No country code could be found for IP: #{ip}"
15
+ rescue Exception => e
16
+ raise WorldFlags::GeoIPError, "No country code could be found for IP: #{ip} - #{e}"
14
17
  end
15
18
 
16
19
  def self.local_ip? ip
17
20
  WorldFlags.localhost_list.include?(ip)
18
21
  end
19
22
 
23
+ def self.debug?
24
+ WorldFlags.debug?
25
+ end
26
+
20
27
  def country_code_from_ip ip = nil
21
28
  WorldFlags::Helper::Geo.country_code_from_ip ip
22
29
  end
@@ -35,12 +35,18 @@ module WorldFlags
35
35
  when :browser
36
36
  browser_locale # http://www.metamodpro.com/browser-language-codes
37
37
  when :ip
38
- country_code_from_ip(browser_ip)
38
+ get_country_by_ip
39
39
  when :default
40
40
  I18n.default_locale
41
41
  end
42
42
  end
43
43
 
44
+ def get_country_by_ip
45
+ country_code_from_ip browser_ip
46
+ rescue WorldFlags::GeoIPError
47
+ I18n.default_locale
48
+ end
49
+
44
50
  def browser_ip
45
51
  request.remote_ip
46
52
  end
@@ -1,16 +1,28 @@
1
1
  module WorldFlags
2
2
  module Util
3
3
  module Config
4
- attr_accessor :auto_select, :raise_error
4
+ attr_accessor :auto_select, :raise_error, :debug
5
5
  attr_accessor :default_code, :default_locale
6
6
  attr_writer :locale_source_priority, :geo_ip_db_path, :localhost_list
7
7
 
8
+ def debug?
9
+ @debug
10
+ end
11
+
12
+ def debug_on!
13
+ @debug = true
14
+ end
15
+
16
+ def debug_off!
17
+ @debug = false
18
+ end
19
+
8
20
  def geo_ip_db_path
9
21
  @geo_ip_db_path ||= ::Rails.root.join 'db', 'GeoIP.dat'
10
22
  end
11
23
 
12
24
  def localhost_list
13
- @localhost_list ||= ["127.0.0.1"]
25
+ @localhost_list ||= ["127.0.0.1", "localhost", "0.0.0.0"]
14
26
  end
15
27
 
16
28
  def locale_source_priority
data/world-flags.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "world-flags"
8
- s.version = "0.4.8.2"
8
+ s.version = "0.4.8.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: world-flags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8.2
4
+ version: 0.4.8.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -263,7 +263,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
263
263
  version: '0'
264
264
  segments:
265
265
  - 0
266
- hash: 2155340704912814203
266
+ hash: 3232077924717246299
267
267
  required_rubygems_version: !ruby/object:Gem::Requirement
268
268
  none: false
269
269
  requirements: