postcodes_io 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2af10edff2373cf3d3de97762a174f7e1da23241
4
- data.tar.gz: 5916275a146d0a847586aff21213c96909f66e5d
2
+ SHA256:
3
+ metadata.gz: 2c6a93dd223ae7a6cc8c04b1f7079f955eb4d93d0ebab8bd14f6cffa87f57b82
4
+ data.tar.gz: 28052e4ba75fa32901fc03b8997cbc67575df1e97c7902fbead915086b88f758
5
5
  SHA512:
6
- metadata.gz: b1f5a7279e5f42b2a5409c515b3ca94d7c1efdcb4f79d63dedc47a49064b4374bc5b9a520c7d3633e2883e21bdb3d10894522371209bd514e49aee45a13c3836
7
- data.tar.gz: 25036a30da99012db100939d972250b82590bc1c298b907b1cf9d722f39fccbbb61d38671cabda92ac22ba2847fcf643a9e3f06883c6e5f64a56fd0b98f8c1cd
6
+ metadata.gz: 3cb7ab91ceba1f04d2aed32d96a5c4b1c9754c06fef797246311ed340aeaa78cd69157f05f59a9a47d04f6ba3c8d66a537108cd361f00940d30a3189e88b1342
7
+ data.tar.gz: e91286586e6dd99db43ae487df61d621df6e623877facc54117a132eab964a2f8d506c3c27fb8655d956a771bce39ec0859f3398b3375253b54b2766b678fe2f
@@ -0,0 +1,43 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ packages: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - name: Set up Ruby 2.6
18
+ uses: actions/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.6.x
21
+
22
+ - name: Publish to GPR
23
+ run: |
24
+ mkdir -p $HOME/.gem
25
+ touch $HOME/.gem/credentials
26
+ chmod 0600 $HOME/.gem/credentials
27
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
28
+ gem build *.gemspec
29
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
30
+ env:
31
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
32
+ OWNER: ${{ github.repository_owner }}
33
+
34
+ - name: Publish to RubyGems
35
+ run: |
36
+ mkdir -p $HOME/.gem
37
+ touch $HOME/.gem/credentials
38
+ chmod 0600 $HOME/.gem/credentials
39
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
40
+ gem build *.gemspec
41
+ gem push *.gem
42
+ env:
43
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rake
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.org/jamesruston/postcodes_io.svg?branch=master)](https://travis-ci.org/jamesruston/postcodes_io)
1
+ [![Build Status](https://travis-ci.org/jamesruston/postcodes_io.svg?branch=master)](https://travis-ci.org/jamesruston/postcodes_io) [![Gem Version](https://badge.fury.io/rb/postcodes_io.svg)](https://badge.fury.io/rb/postcodes_io)
2
2
  # PostcodesIo
3
3
 
4
4
  A simple wrapper around [postcodes.io](http://postcodes.io/)
@@ -70,6 +70,17 @@ postcodes = pio.reverse_geocode(longitude: 0.629834, latitude: 51.79232)
70
70
  puts postcodes.first.postcode # CM8 1EF
71
71
  ```
72
72
 
73
+ ### Lookup a terminated postcode
74
+ ```ruby
75
+ postcode = pio.lookup_terminated('SO23 7SP')
76
+ ```
77
+
78
+ Inspect the results!
79
+ ```ruby
80
+ postcode.longitude # -1.02144562675883
81
+ postcode.latitude # 52.0776806788868
82
+ ```
83
+
73
84
  ### All available fields
74
85
 
75
86
  |name|description|
@@ -0,0 +1,33 @@
1
+ require 'excon'
2
+ require 'json'
3
+ require 'postcodes_io/postcode'
4
+
5
+ module Postcodes
6
+ module LookupTerminated
7
+ def lookup_terminated(postcode)
8
+ lookup_terminated_postcode postcode
9
+ end
10
+
11
+ private
12
+
13
+ def lookup_terminated_postcode(postcode)
14
+ postcode = remove_whitespace postcode
15
+ response = Excon.get("https://api.postcodes.io/terminated_postcodes/#{postcode}")
16
+
17
+ unless response.status == 404
18
+ parsed_response = JSON.parse(response.body)
19
+ return Postcodes::Postcode.new(parsed_response['result'])
20
+ end
21
+ nil
22
+ end
23
+
24
+ def remove_whitespace(string)
25
+ string.gsub(/\s+/, '') # remove any whitespace. m1 1ab => m11ab
26
+ end
27
+
28
+ def process_response(response)
29
+ yield JSON.parse(response.body) unless response.status == 404
30
+ nil
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module Postcodes
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/postcodes_io.rb CHANGED
@@ -1,13 +1,15 @@
1
- require "postcodes_io/version"
2
- require "postcodes_io/lookup"
3
- require "postcodes_io/autocomplete"
4
- require "postcodes_io/postcode"
5
- require "postcodes_io/reverse_geocode"
1
+ require 'postcodes_io/version'
2
+ require 'postcodes_io/lookup'
3
+ require 'postcodes_io/autocomplete'
4
+ require 'postcodes_io/postcode'
5
+ require 'postcodes_io/reverse_geocode'
6
+ require 'postcodes_io/lookup_terminated'
6
7
 
7
8
  module Postcodes
8
9
  class IO
9
10
  include Lookup
10
11
  include Autocomplete
11
12
  include ReverseGeocode
13
+ include LookupTerminated
12
14
  end
13
15
  end
data/postcodes_io.gemspec CHANGED
@@ -18,8 +18,8 @@ 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.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
21
+ spec.add_development_dependency "bundler"
22
+ spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
24
  spec.add_development_dependency "webmock"
25
25
 
@@ -0,0 +1,10 @@
1
+ {
2
+ "status": 200,
3
+ "result": {
4
+ "postcode": "SO23 9DD",
5
+ "year_terminated": 2001,
6
+ "month_terminated": 8,
7
+ "longitude": -1.316261,
8
+ "latitude": 51.062297
9
+ }
10
+ }
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Postcodes::IO do
4
+ let(:base_url) { 'https://api.postcodes.io' }
5
+ let(:stub_response) { File.read('spec/fixtures/lookup_terminated_response.json') }
6
+
7
+ describe '#lookup_terminated' do
8
+ before :each do
9
+ stub_request(:get, "#{base_url}/terminated_postcodes/CM129TR")
10
+ .to_return(status: 200, body: stub_response)
11
+ end
12
+
13
+ let(:input) { 'CM12 9TR' }
14
+ let(:output) { subject.lookup_terminated(input) }
15
+
16
+ it 'requests a terminated postcode' do
17
+ output
18
+ WebMock.should have_requested(:get, "#{base_url}/terminated_postcodes/CM129TR")
19
+ end
20
+
21
+ it 'returns the long and lat' do
22
+ output.longitude.should == -1.316261
23
+ output.latitude.should == 51.062297
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postcodes_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Ruston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-31 00:00:00.000000000 Z
11
+ date: 2021-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".github/workflows/gem-push.yml"
91
+ - ".github/workflows/ruby.yml"
90
92
  - ".gitignore"
91
93
  - ".rspec"
92
94
  - ".travis.yml"
@@ -99,6 +101,7 @@ files:
99
101
  - lib/postcodes_io/autocomplete_list.rb
100
102
  - lib/postcodes_io/base.rb
101
103
  - lib/postcodes_io/lookup.rb
104
+ - lib/postcodes_io/lookup_terminated.rb
102
105
  - lib/postcodes_io/postcode.rb
103
106
  - lib/postcodes_io/reverse_geocode.rb
104
107
  - lib/postcodes_io/version.rb
@@ -107,9 +110,11 @@ files:
107
110
  - spec/fixtures/autocomplete_response.json
108
111
  - spec/fixtures/lookup_multi_response.json
109
112
  - spec/fixtures/lookup_response.json
113
+ - spec/fixtures/lookup_terminated_response.json
110
114
  - spec/fixtures/no_results_response.json
111
115
  - spec/fixtures/reverse_geocode_response.json
112
116
  - spec/lookup_spec.rb
117
+ - spec/lookup_terminated_spec.rb
113
118
  - spec/postcode_io_spec.rb
114
119
  - spec/reverse_geocode_spec.rb
115
120
  - spec/spec_helper.rb
@@ -132,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
137
  - !ruby/object:Gem::Version
133
138
  version: '0'
134
139
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.5.1
140
+ rubygems_version: 3.0.3.1
137
141
  signing_key:
138
142
  specification_version: 4
139
143
  summary: Lookup postcodes
@@ -142,9 +146,11 @@ test_files:
142
146
  - spec/fixtures/autocomplete_response.json
143
147
  - spec/fixtures/lookup_multi_response.json
144
148
  - spec/fixtures/lookup_response.json
149
+ - spec/fixtures/lookup_terminated_response.json
145
150
  - spec/fixtures/no_results_response.json
146
151
  - spec/fixtures/reverse_geocode_response.json
147
152
  - spec/lookup_spec.rb
153
+ - spec/lookup_terminated_spec.rb
148
154
  - spec/postcode_io_spec.rb
149
155
  - spec/reverse_geocode_spec.rb
150
156
  - spec/spec_helper.rb