un_locode 0.0.2 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +11 -3
- data/lib/un_locode/locode.rb +7 -1
- data/lib/un_locode/version.rb +1 -1
- data/spec/un_locode_spec.rb +13 -0
- data/un_locode.gemspec +3 -3
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b06f8f05e17efdeda5e901a32f34d708f84ab9e
|
4
|
+
data.tar.gz: a700f46dc345bc712b7c088a7afb58e30bb32794
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f665092d6646483001e569b5bb699ccdd4b61d38e0fdaa68c9204cd91731c499ccf43ed0719ba445e8cd9d01c5e1bbea01710dfee0e71f55927d138ab7de5213
|
7
|
+
data.tar.gz: 4c8d8faf20e6534a93032e287b34a782b347fc439f9d76ddfa4604ae4dc1168c0270c27ae1723b7926239a15045398b03c00812eb43022a12fbd4b0f8221816d
|
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Locode
|
2
2
|
|
3
|
+
[](https://travis-ci.org/kabisaict/un_locode)
|
4
|
+
[](http://badge.fury.io/rb/un_locode)
|
5
|
+
|
3
6
|
The un_locode gem gives you the ability to lookup UN/LOCODE codes. You can read more about the UN/LOCODE specifications here: [wiki](http://en.wikipedia.org/wiki/UN/LOCODE) and [UNECE](http://www.unece.org/fileadmin/DAM/cefact/locode/Service/LocodeColumn.htm).
|
4
7
|
|
5
8
|
All data used by this gem has been taken from the *UN Centre for Trade Facilitation and E-business* official website. **No guarantees for the accuracy or up-to-dateness are given.**
|
@@ -37,6 +40,11 @@ Like above you can limit the query result.
|
|
37
40
|
UnLocode::Locode.find_by_name_and_function('US', :port)
|
38
41
|
#=> ActiveRecord::Relation [#<UnLocode::Locode name: "Abu Musa", ... >, #<UnLocode::Locode name: "Mussafah",...>, ...
|
39
42
|
|
43
|
+
- **find_by_locode**: Return Locode object based on locode string. String needs to be in format `NL VEN`. You can access country code using `#country.code`.
|
44
|
+
|
45
|
+
UnLocode::Locode.find_by_locode('NL VEN')
|
46
|
+
=> #<UnLocode::Locode id: 65419, country_id: 165, city_code: "VEN", name: "Venlo">
|
47
|
+
|
40
48
|
- **find_by_function**: Find all locations for a certain function.You can find a list of possible functions @ UnLocode::FUNCTIONS. Like all find methods, the default limit is 10 but can be specified to your own needs.
|
41
49
|
|
42
50
|
UnLocode::Locode.find_by_function(:port, 2)
|
@@ -54,11 +62,11 @@ Like above you can limit the query result.
|
|
54
62
|
|
55
63
|
You can find more explaination of the functions over [here](http://www.unece.org/fileadmin/DAM/cefact/locode/Service/LocodeColumn.htm)
|
56
64
|
|
57
|
-
## TODO
|
65
|
+
## TODO's
|
58
66
|
- add locode method to location (also export with as_json)
|
59
67
|
- add tests for limit's
|
60
|
-
- add find_by_locode method
|
61
68
|
- use connectionpool for connection management
|
69
|
+
- make logging configurable option
|
62
70
|
|
63
71
|
## Contributing
|
64
72
|
|
@@ -66,4 +74,4 @@ Like above you can limit the query result.
|
|
66
74
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
67
75
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
68
76
|
4. Push to the branch (`git push origin my-new-feature`)
|
69
|
-
5. Create new Pull Request
|
77
|
+
5. Create new Pull Request
|
data/lib/un_locode/locode.rb
CHANGED
@@ -28,8 +28,14 @@ module UnLocode
|
|
28
28
|
find_by_fuzzy_name(name).find_by_function(function, limit)
|
29
29
|
end
|
30
30
|
|
31
|
+
def self.find_by_locode(locode)
|
32
|
+
locode = locode.split(' ')
|
33
|
+
includes(:country).where(city_code: locode.last)
|
34
|
+
.where(countries: { code: locode.first }).first
|
35
|
+
end
|
36
|
+
|
31
37
|
def as_json options = {}
|
32
38
|
super(options.merge!(except: [:id, :country_id])).merge('country' => country.as_json)
|
33
39
|
end
|
34
40
|
end
|
35
|
-
end
|
41
|
+
end
|
data/lib/un_locode/version.rb
CHANGED
data/spec/un_locode_spec.rb
CHANGED
@@ -89,6 +89,19 @@ describe UnLocode::Locode do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
92
|
+
|
93
|
+
describe 'retrieving country by locode' do
|
94
|
+
let!(:country) { UnLocode::Country.create name: 'NETHERLANDS', code: 'NL' }
|
95
|
+
let!(:location) { UnLocode::Locode.create name: 'Venlo', city_code: 'VEN', country: country }
|
96
|
+
|
97
|
+
context 'with supported functions' do
|
98
|
+
subject { UnLocode::Locode.find_by_locode(search_term) }
|
99
|
+
let(:search_term) { 'NL VEN' }
|
100
|
+
|
101
|
+
its(:name) { should eql('Venlo') }
|
102
|
+
its(:country) { should eql(country) }
|
103
|
+
end
|
104
|
+
end
|
92
105
|
end
|
93
106
|
|
94
107
|
describe 'as_json' do
|
data/un_locode.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'un_locode/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'un_locode'
|
8
8
|
spec.version = UnLocode::VERSION
|
9
|
-
spec.authors = ['Michel de Graaf', 'Rui Salgado', 'Niels Stevens']
|
10
|
-
spec.email = ['michel@kabisa.nl', 'rui.salgado@kabisa.nl', 'niels@kabisa.nl']
|
9
|
+
spec.authors = ['Michel de Graaf', 'Rui Salgado', 'Niels Stevens', 'Jean Mertz']
|
10
|
+
spec.email = ['michel@kabisa.nl', 'rui.salgado@kabisa.nl', 'niels@kabisa.nl', 'jean@kabisa.nl']
|
11
11
|
spec.description = %q{The Locode gem gives you the ability to lookup UN/LOCODE codes.}
|
12
12
|
spec.summary = %q{The Locode gem gives you the ability to lookup UN/LOCODE codes.}
|
13
13
|
spec.homepage = 'https://github.com/kabisaict/un_locode'
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.5.1'
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.1.0'
|
23
23
|
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
24
24
|
spec.add_development_dependency 'pry', '~> 0.9.12.3'
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: un_locode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel de Graaf
|
8
8
|
- Rui Salgado
|
9
9
|
- Niels Stevens
|
10
|
+
- Jean Mertz
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: bundler
|
@@ -18,14 +19,14 @@ dependencies:
|
|
18
19
|
requirements:
|
19
20
|
- - ~>
|
20
21
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
22
|
+
version: 1.5.1
|
22
23
|
type: :development
|
23
24
|
prerelease: false
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
25
26
|
requirements:
|
26
27
|
- - ~>
|
27
28
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
29
|
+
version: 1.5.1
|
29
30
|
- !ruby/object:Gem::Dependency
|
30
31
|
name: rake
|
31
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +116,7 @@ email:
|
|
115
116
|
- michel@kabisa.nl
|
116
117
|
- rui.salgado@kabisa.nl
|
117
118
|
- niels@kabisa.nl
|
119
|
+
- jean@kabisa.nl
|
118
120
|
executables: []
|
119
121
|
extensions: []
|
120
122
|
extra_rdoc_files: []
|