nyc_geo_client 0.1.1 → 1.0.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
2
  SHA1:
3
- metadata.gz: 9a3081c71a64de64d5a27edd1c111c19e09271af
4
- data.tar.gz: 4d0fa984ad31c548338b89a8ca69a1d20c7c2342
3
+ metadata.gz: ad49e5b8a47e390f27c6854468278926972d2887
4
+ data.tar.gz: 431451afcb992714945e5340cdefa117ea21881e
5
5
  SHA512:
6
- metadata.gz: 9103ba12dc4e44477c4462455827f9a65a039b7487176c63e124baef074cd5cddb1c405957b4513d9d2eee3c86ab7887eebb2bd76c9dbbf5c8932362dde109a4
7
- data.tar.gz: 7142c14cf5e7c31f9065b945b9e586341971fd76f1bfab50e4a2c1275f80c16416854473d8d01ddd66431a47e0958c9c0f3ca79dcfa2b80e8fdc4c91d4114711
6
+ metadata.gz: 749b3bd51b957c25c17c36656cdbd2b8a966725e41fc93e0621b32f694e40ba2b62ec58056d34b331d016fc59c75ae9493d0533bf1af9c66cf23a41f1f7b309b
7
+ data.tar.gz: c6f723099e892e3836eba48a8fadfcd4621ce1c408766cb06e5ed4c8d0d385f4939f784d15fbc234c4fb73796724b99e1fdadc3b25d89cdd1259428a3f305347
@@ -3,14 +3,13 @@ matrix:
3
3
  allow_failures:
4
4
  - rvm: ruby-head
5
5
  rvm:
6
- - 2.0.0
7
- - 2.1.0
8
- - 2.2.5
9
- - 2.3.1
10
- - 2.3.3
11
- - 2.4.0
6
+ - 2.1.10
7
+ - 2.2.9
8
+ - 2.3.6
9
+ - 2.4.3
10
+ - 2.5.0
12
11
  - ruby-head
13
12
  before_install:
14
13
  # need this for ruby 1.9.3 and rspec
15
14
  - gem update --system
16
- - gem update bundler
15
+ - gem update bundler --force
data/README.md CHANGED
@@ -26,22 +26,31 @@ Or install it yourself as:
26
26
  client = NYCGeoClient::Client.new(app_id: 'ID', app_key: 'KEY')
27
27
 
28
28
  # get block and property level information about an address
29
- client.address('13', 'crosby', 'manhattan')
29
+ client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
30
30
 
31
31
  # property level information about a tax lot
32
- client.bbl('manhattan', '00233', '0004')
32
+ client.bbl(borough: 'manhattan', block: '00233', lot: '0004')
33
33
 
34
34
  # get property level information about a building
35
- client.bin('1003041')
35
+ client.bin(bin: '1003041')
36
36
 
37
37
  # get information about a segment defined by an on street between two cross-streets
38
- client.blockface('34 st', 'fifth ave', 'sixth ave', 'manhattan')
38
+ client.blockface(
39
+ on_street: '34 st',
40
+ cross_street_one: 'fifth ave',
41
+ cross_street_two: 'sixth ave',
42
+ borough: 'manhattan'
43
+ )
39
44
 
40
45
  # get information about a point defined by two cross streets
41
- client.intersection('34 st', 'fifth ave', 'manhattan')
46
+ client.intersection(
47
+ cross_street_one: '34 st',
48
+ cross_street_two: 'fifth ave',
49
+ borough: 'manhattan'
50
+ )
42
51
 
43
52
  # get address information using a well-known place name
44
- client.place('empire state building', 'manhattan')
53
+ client.place(name: 'empire state building', borough: 'manhattan')
45
54
 
46
55
 
47
56
  For more information about the data returned by every method please check the specs folder
@@ -69,15 +78,15 @@ For instance:
69
78
  require 'typhoeus/adapters/faraday' # You will need the typhoeus gem
70
79
 
71
80
  client = NYCGeoClient.client(adapter: :typhoeus, user_agent: "foobar v1", debug: true, app_id: 'foo', app_key: 'bar')
72
- client.address('13','crosby','manhattan')
81
+ client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
73
82
 
74
83
  ## Ruby versions supported
75
84
 
76
- * 1.9.3
77
- * 2.0.0
78
- * 2.1.0
79
- * 2.2.5
80
- * 2.3.1
85
+ * 2.1
86
+ * 2.2
87
+ * 2.3
88
+ * 2.4
89
+ * 2.5
81
90
 
82
91
  Check the [.travis.yml](.travis.yml) to see the current supported ruby versions.
83
92
 
@@ -15,12 +15,13 @@ module NYCGeoClient
15
15
  # @example block and property level information about an address
16
16
  # NYCGeoClient.address('13', 'crosby', 'manhattan')
17
17
  # @format :json, :xml
18
- def address(house_number, street, borough)
18
+ def address(house_number:, street:, borough: nil, zip: nil)
19
19
  options = {
20
20
  houseNumber: house_number,
21
21
  street: street,
22
- borough: borough
23
- }
22
+ borough: borough,
23
+ zip: zip
24
+ }.reject { |k, v| v.nil? }
24
25
  get(address_path, options)
25
26
  end
26
27
 
@@ -12,7 +12,7 @@ module NYCGeoClient
12
12
  # @example property level information about a tax lot
13
13
  # NYCGeoClient.bbl('manhattan','00233', '0004')
14
14
  # @format :json, :xml
15
- def bbl(borough, block, lot)
15
+ def bbl(borough:, block:, lot:)
16
16
  options = {
17
17
  block: block,
18
18
  lot: lot,
@@ -10,7 +10,7 @@ module NYCGeoClient
10
10
  # @example property level information about a building
11
11
  # NYCGeoClient.bin('1003041')
12
12
  # @format :json, :xml
13
- def bin(bin)
13
+ def bin(bin:)
14
14
  options = {
15
15
  bin: bin
16
16
  }
@@ -17,13 +17,16 @@ module NYCGeoClient
17
17
  # @example information about a segment defined by an on street between two cross-streets
18
18
  # NYCGeoClient.blockface('34 st', 'fifht ave', 'sixth ave', 'manhattan')
19
19
  # @format :json, :xml
20
- def blockface(on_street, cross_street_one, cross_street_two, borough, extra = {})
20
+ def blockface(on_street:, cross_street_one:, cross_street_two:, borough:, borough_cross_street_one: nil, borough_cross_street_two: nil, compass_direction: nil)
21
21
  options = {
22
22
  onStreet: on_street,
23
23
  crossStreetOne: cross_street_one,
24
24
  crossStreetTwo: cross_street_two,
25
- borough: borough
26
- }.merge(extra)
25
+ borough: borough,
26
+ boroughCrossStreetOne: borough_cross_street_one,
27
+ boroughCrossStreetTwo: borough_cross_street_two,
28
+ compassDirection: compass_direction
29
+ }.reject { |k, v| v.nil? }
27
30
  get(blockface_path, options)
28
31
  end
29
32
 
@@ -15,12 +15,14 @@ module NYCGeoClient
15
15
  # @example information about a segment defined by an on street between two cross-streets
16
16
  # NYCGeoClient.blockface('34 st', 'fifht ave', 'manhattan')
17
17
  # @format :json, :xml
18
- def intersection(cross_street_one, cross_street_two, borough, extra = {})
18
+ def intersection(cross_street_one:, cross_street_two:, borough:, borough_cross_street_two: nil, compass_direction: nil)
19
19
  options = {
20
20
  crossStreetOne: cross_street_one,
21
21
  crossStreetTwo: cross_street_two,
22
- borough: borough
23
- }.merge(extra)
22
+ borough: borough,
23
+ boroughCrossStreetTwo: borough_cross_street_two,
24
+ compassDirection: compass_direction
25
+ }.reject { |k, v| v.nil? }
24
26
  get(intersection_path, options)
25
27
  end
26
28
 
@@ -11,11 +11,12 @@ module NYCGeoClient
11
11
  # @example address information using a well-known place name
12
12
  # NYCGeoClient.place('empire state building')
13
13
  # @format :json, :xml
14
- def place(name, borough)
14
+ def place(name:, borough: nil, zip: nil)
15
15
  options = {
16
16
  name: name,
17
- borough: borough
18
- }
17
+ borough: borough,
18
+ zip: zip
19
+ }.reject { |k, v| v.nil? }
19
20
  get(place_path, options)
20
21
  end
21
22
 
@@ -1,3 +1,3 @@
1
1
  module NYCGeoClient
2
- VERSION = "0.1.1".freeze unless defined?(::NYCGeoClient::VERSION)
2
+ VERSION = "1.0.0".freeze unless defined?(::NYCGeoClient::VERSION)
3
3
  end
@@ -22,13 +22,13 @@ describe Faraday::Response do
22
22
 
23
23
  it "should raise a NYCGeoClient error" do
24
24
  expect(lambda do
25
- @client.address('13','crosby','manhattan')
25
+ @client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
26
26
  end).to raise_error(NYCGeoClient::Error)
27
27
  end
28
28
 
29
29
  it "should return the status and body" do
30
30
  begin
31
- @client.address('13','crosby','manhattan')
31
+ @client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
32
32
  rescue NYCGeoClient::Error => ex
33
33
  expect(ex.status).to eq status
34
34
  parts = ex.message.split(": ")
@@ -10,34 +10,68 @@ describe NYCGeoClient::Client do
10
10
  end
11
11
 
12
12
  describe ".address" do
13
- before do
14
- stub_get("address.#{format}").
15
- with(
16
- query: {
13
+ context 'given a borough' do
14
+ before do
15
+ stub_get("address.#{format}").
16
+ with(
17
+ query: {
18
+ app_id: @client.app_id,
19
+ app_key: @client.app_key,
20
+ houseNumber: '13',
21
+ street: 'crosby',
22
+ borough: 'manhattan'
23
+ }).
24
+ to_return(body: fixture("address.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
25
+ end
26
+
27
+ it "should get the correct resource" do
28
+ @client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
29
+ expect(a_get("address.#{format}").
30
+ with(query: {
17
31
  app_id: @client.app_id,
18
32
  app_key: @client.app_key,
19
33
  houseNumber: '13',
20
34
  street: 'crosby',
21
35
  borough: 'manhattan'
22
- }).
23
- to_return(body: fixture("address.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
24
- end
36
+ })).to have_been_made
37
+ end
25
38
 
26
- it "should get the correct resource" do
27
- @client.address('13', 'crosby', 'manhattan')
28
- expect(a_get("address.#{format}").
29
- with(query: {
30
- app_id: @client.app_id,
31
- app_key: @client.app_key,
32
- houseNumber: '13',
33
- street: 'crosby',
34
- borough: 'manhattan'
35
- })).to have_been_made
39
+ it "should return the address info" do
40
+ data = @client.address(house_number: '13', street: 'crosby', borough: 'manhattan')
41
+ expect(data.keys).to eq ["address"]
42
+ end
36
43
  end
37
44
 
38
- it "should return the address info" do
39
- data = @client.address('13', 'crosby', 'manhattan')
40
- expect(data.keys).to eq ["address"]
45
+ context 'given a ZIP' do
46
+ before do
47
+ stub_get("address.#{format}").
48
+ with(
49
+ query: {
50
+ app_id: @client.app_id,
51
+ app_key: @client.app_key,
52
+ houseNumber: '13',
53
+ street: 'crosby',
54
+ zip: '10013'
55
+ }).
56
+ to_return(body: fixture("address.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
57
+ end
58
+
59
+ it "should get the correct resource" do
60
+ @client.address(house_number: '13', street: 'crosby', zip: '10013')
61
+ expect(a_get("address.#{format}").
62
+ with(query: {
63
+ app_id: @client.app_id,
64
+ app_key: @client.app_key,
65
+ houseNumber: '13',
66
+ street: 'crosby',
67
+ zip: '10013'
68
+ })).to have_been_made
69
+ end
70
+
71
+ it "should return the address info" do
72
+ data = @client.address(house_number: '13', street: 'crosby', zip: '10013')
73
+ expect(data.keys).to eq ["address"]
74
+ end
41
75
  end
42
76
  end
43
77
  end
@@ -24,7 +24,7 @@ describe NYCGeoClient::Client do
24
24
  end
25
25
 
26
26
  it "should get the correct resource" do
27
- @client.bbl('manhattan', '00233', '0004')
27
+ @client.bbl(borough: 'manhattan', block: '00233', lot: '0004')
28
28
  expect(a_get("bbl.#{format}").
29
29
  with(query: {
30
30
  app_id: @client.app_id,
@@ -36,7 +36,7 @@ describe NYCGeoClient::Client do
36
36
  end
37
37
 
38
38
  it "should return the bbl info" do
39
- data = @client.bbl('manhattan', '00233', '0004')
39
+ data = @client.bbl(borough: 'manhattan', block: '00233', lot: '0004')
40
40
  expect(data.keys).to eq ["bbl"]
41
41
  end
42
42
  end
@@ -22,7 +22,7 @@ describe NYCGeoClient::Client do
22
22
  end
23
23
 
24
24
  it "should get the correct resource" do
25
- @client.bin('1003041')
25
+ @client.bin(bin: '1003041')
26
26
  expect(a_get("bin.#{format}").
27
27
  with(query: {
28
28
  app_id: @client.app_id,
@@ -32,7 +32,7 @@ describe NYCGeoClient::Client do
32
32
  end
33
33
 
34
34
  it "should return the bin info" do
35
- data = @client.bin('1003041')
35
+ data = @client.bin(bin: '1003041')
36
36
  expect(data.keys).to eq ["bin"]
37
37
  end
38
38
  end
@@ -26,7 +26,14 @@ describe NYCGeoClient::Client do
26
26
  end
27
27
 
28
28
  it "should get the correct resource" do
29
- @client.blockface('34 st', 'fifth ave', 'sixth ave', 'manhattan', {compassDirection: 'north'})
29
+ @client.blockface(
30
+ on_street: '34 st',
31
+ cross_street_one: 'fifth ave',
32
+ cross_street_two: 'sixth ave',
33
+ borough: 'manhattan',
34
+ compass_direction: 'north'
35
+ )
36
+
30
37
  expect(a_get("blockface.#{format}").
31
38
  with(query: {
32
39
  app_id: @client.app_id,
@@ -40,7 +47,14 @@ describe NYCGeoClient::Client do
40
47
  end
41
48
 
42
49
  it "should return the blockface info" do
43
- data = @client.blockface('34 st', 'fifth ave', 'sixth ave', 'manhattan', {compassDirection: 'north'})
50
+ data = @client.blockface(
51
+ on_street: '34 st',
52
+ cross_street_one: 'fifth ave',
53
+ cross_street_two: 'sixth ave',
54
+ borough: 'manhattan',
55
+ compass_direction: 'north'
56
+ )
57
+
44
58
  expect(data.keys).to eq ["blockface"]
45
59
  end
46
60
  end
@@ -25,7 +25,13 @@ describe NYCGeoClient::Client do
25
25
  end
26
26
 
27
27
  it "should get the correct resource" do
28
- @client.intersection('34 st', 'fifth ave', 'manhattan', {compassDirection: 'north'})
28
+ @client.intersection(
29
+ cross_street_one: '34 st',
30
+ cross_street_two: 'fifth ave',
31
+ borough: 'manhattan',
32
+ compass_direction: 'north'
33
+ )
34
+
29
35
  expect(a_get("intersection.#{format}").
30
36
  with(query: {
31
37
  app_id: @client.app_id,
@@ -38,7 +44,13 @@ describe NYCGeoClient::Client do
38
44
  end
39
45
 
40
46
  it "should return the intersection info" do
41
- data = @client.intersection('34 st', 'fifth ave', 'manhattan', {compassDirection: 'north'})
47
+ data = @client.intersection(
48
+ cross_street_one: '34 st',
49
+ cross_street_two: 'fifth ave',
50
+ borough: 'manhattan',
51
+ compass_direction: 'north'
52
+ )
53
+
42
54
  expect(data.keys).to eq ["intersection"]
43
55
  end
44
56
  end
@@ -10,32 +10,64 @@ describe NYCGeoClient::Client do
10
10
  end
11
11
 
12
12
  describe ".place" do
13
- before do
14
- stub_get("place.#{format}").
15
- with(
16
- query: {
13
+ context 'given a borough' do
14
+ before do
15
+ stub_get("place.#{format}").
16
+ with(
17
+ query: {
18
+ app_id: @client.app_id,
19
+ app_key: @client.app_key,
20
+ name: 'empire state building',
21
+ borough: 'manhattan'
22
+ }).
23
+ to_return(body: fixture("place.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
24
+ end
25
+
26
+ it "should get the correct resource" do
27
+ @client.place(name: 'empire state building', borough: 'manhattan')
28
+ expect(a_get("place.#{format}").
29
+ with(query: {
17
30
  app_id: @client.app_id,
18
31
  app_key: @client.app_key,
19
32
  name: 'empire state building',
20
33
  borough: 'manhattan'
21
- }).
22
- to_return(body: fixture("place.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
23
- end
34
+ })).to have_been_made
35
+ end
24
36
 
25
- it "should get the correct resource" do
26
- @client.place('empire state building', 'manhattan')
27
- expect(a_get("place.#{format}").
28
- with(query: {
29
- app_id: @client.app_id,
30
- app_key: @client.app_key,
31
- name: 'empire state building',
32
- borough: 'manhattan'
33
- })).to have_been_made
37
+ it "should return the place info" do
38
+ data = @client.place(name: 'empire state building', borough: 'manhattan')
39
+ expect(data.keys).to eq ["place"]
40
+ end
34
41
  end
35
42
 
36
- it "should return the place info" do
37
- data = @client.place('empire state building', 'manhattan')
38
- expect(data.keys).to eq ["place"]
43
+ context 'given a zip' do
44
+ before do
45
+ stub_get("place.#{format}").
46
+ with(
47
+ query: {
48
+ app_id: @client.app_id,
49
+ app_key: @client.app_key,
50
+ name: 'empire state building',
51
+ zip: '10118'
52
+ }).
53
+ to_return(body: fixture("place.#{format}"), headers: {content_type: "application/#{format}; charset=utf-8"})
54
+ end
55
+
56
+ it "should get the correct resource" do
57
+ @client.place(name: 'empire state building', zip: '10118')
58
+ expect(a_get("place.#{format}").
59
+ with(query: {
60
+ app_id: @client.app_id,
61
+ app_key: @client.app_key,
62
+ name: 'empire state building',
63
+ zip: '10118'
64
+ })).to have_been_made
65
+ end
66
+
67
+ it "should return the place info" do
68
+ data = @client.place(name: 'empire state building', zip: '10118')
69
+ expect(data.keys).to eq ["place"]
70
+ end
39
71
  end
40
72
  end
41
73
  end
@@ -19,7 +19,7 @@ describe NYCGeoClient do
19
19
  end
20
20
 
21
21
  it "should get the correct resource" do
22
- NYCGeoClient.address('13', 'crosby', 'manhattan')
22
+ NYCGeoClient.address(house_number: '13', street: 'crosby', borough: 'manhattan')
23
23
  expect(a_get("address.json").
24
24
  with(query: {
25
25
  houseNumber: '13',
@@ -29,7 +29,17 @@ describe NYCGeoClient do
29
29
  end
30
30
 
31
31
  it "should return the same results as a client" do
32
- expect(NYCGeoClient.address('13', 'crosby', 'manhattan')).to eq NYCGeoClient::Client.new.address('13', 'crosby', 'manhattan')
32
+ expect(
33
+ NYCGeoClient.address(
34
+ house_number: '13',
35
+ street: 'crosby',
36
+ borough: 'manhattan'
37
+ )
38
+ ).to eq NYCGeoClient::Client.new.address(
39
+ house_number: '13',
40
+ street: 'crosby',
41
+ borough: 'manhattan'
42
+ )
33
43
  end
34
44
 
35
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nyc_geo_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar Gonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-16 00:00:00.000000000 Z
11
+ date: 2018-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  version: '0'
223
223
  requirements: []
224
224
  rubyforge_project:
225
- rubygems_version: 2.5.2
225
+ rubygems_version: 2.6.14
226
226
  signing_key:
227
227
  specification_version: 4
228
228
  summary: A ruby wrapper for NYCGeoClient API