iso3166_ru 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5c459dbc4c712b2d6c92d9927f0b1f9f83fee19
4
- data.tar.gz: 039c3fc12fcdebc36efadf6f4426582ba03e2d80
3
+ metadata.gz: a8fe43ebdc3f7044480975473a8492dc8cdb9a51
4
+ data.tar.gz: 7c340d166f4bcd3450c580e570848f3a5a64b1fb
5
5
  SHA512:
6
- metadata.gz: 379e98949ac90374a99fd2f131c59fa65049549637585709eabd2da0a28602d4e99168b088e61b255428f5363d1089e69b3b9eef6d0cc48f92c684595a922000
7
- data.tar.gz: b05d415327164e74149960cf4f3d7d70391d9321a9ec70643705ca37569545b3b9b606cb8d3ada49e07276cb93d7a2f6b8286dd3b6ff4561a85469db335fbb57
6
+ metadata.gz: 004572b9ddbe5dd03dde5471370146934a788176a6c42982c6ab328c78d1d698ecd5856f25748f65dbfa02855c12da7a310ded1895da2246df9273ec3c1aae47
7
+ data.tar.gz: f34633d7bfc9e5f368d9ad2bda4e9b340d64e8392aed2a6e845eb61156f60a021ea8c5759f2b4da4dc1a4332c1442750f95663f3c15d87941d39740e46a43143
data/README.md CHANGED
@@ -39,6 +39,8 @@ If you don't want to load country data for each request, you can initialize `Iso
39
39
  country_list.find_by(full_name: "Российская Федерация")
40
40
  country_list.find_by(english: "Russian Federation")
41
41
  country_list.find_by(iso: "643")
42
+
43
+ This chops away ~99.8% of execution time.
42
44
 
43
45
  All finders return an `Iso3166Ru::Country` struct.
44
46
 
@@ -14,9 +14,18 @@ module Iso3166Ru
14
14
  end
15
15
 
16
16
  def find_by(query)
17
- k = query.keys[0]
18
- q = query[k]
19
- countries[indexes[k][q]]
17
+ k, q = prepare_query(query)
18
+ countries[indexes[k][q]] rescue nil
19
+ end
20
+
21
+
22
+ private
23
+
24
+ def prepare_query(query)
25
+ key = query.keys.first
26
+ value = key == :iso ? "%03d" % query[key].to_i : query[key]
27
+
28
+ [key, value]
20
29
  end
21
30
  end
22
31
  end
@@ -1,3 +1,3 @@
1
1
  module Iso3166Ru
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -7,6 +7,8 @@ class Iso3166RuTest < MiniTest::Unit::TestCase
7
7
  RUSSIA = Iso3166Ru::Country.new("Россия", "Российская Федерация",
8
8
  "Russian Federation", "RU", "RUS", "643", "Европа", "Восточная Европа")
9
9
 
10
+ ANTARCTICA = Iso3166Ru::Country.new("Антарктида", "", "Antarctica", "AQ", "ATA", "010", "Антарктика", " ")
11
+
10
12
  def test_find_by_alpha2
11
13
  assert_equal RUSSIA, Iso3166Ru.find_by(alpha2: "RU")
12
14
  end
@@ -29,5 +31,7 @@ class Iso3166RuTest < MiniTest::Unit::TestCase
29
31
 
30
32
  def test_find_by_iso
31
33
  assert_equal RUSSIA, Iso3166Ru.find_by(iso: "643")
34
+ assert_equal ANTARCTICA, Iso3166Ru.find_by(iso: "010")
35
+ assert_equal ANTARCTICA, Iso3166Ru.find_by(iso: 10)
32
36
  end
33
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iso3166_ru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Shitov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-03 00:00:00.000000000 Z
11
+ date: 2013-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler