mapbox-sdk 2.0.0 → 2.1.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: c0484d85c89aade2922c0a0d43b3d3d61c74db5f
4
- data.tar.gz: 0a9304ae7755bbb5121bc237f61b915cdd35596c
2
+ SHA256:
3
+ metadata.gz: 4292d0f1ca115de9e53c9289a9fb375904e2b49faf028b6a90a523ea35d5c0fb
4
+ data.tar.gz: 9dabda32d362ed87adc887589f73cd5fc8025c2cd69bc3f46647423e684623f9
5
5
  SHA512:
6
- metadata.gz: 2664c0e47fc458b1933b3476d7902edbb965613b5326f308b77e07be56f16e5ba2c3193b0abd4ec365e6538e7c7e2db3e7860320a8110f7c23bcfe5c9dad93a4
7
- data.tar.gz: 68f8963b09a9f1b00c76778a79751467ff1d1c636c5454ef6aa934a3124f0daed07e54c6b540f8a151edbcbe0600324936f7a74088e3a9fd3a2d74590aa29995
6
+ metadata.gz: 994336458245a81e414248411bded1b62c03a80cf268bbc1f428d3fefef31b49e60355944dc2c397317cae809cbfde8e39f7dce9aa275c941e49ce92232f9f65
7
+ data.tar.gz: 040654e4765ff2fc308eef710669fffa48ad0b7b1d15c908150a0a5c29879be9fad18b340c6fc600bfc1b6806cf1eee0f3bf6292d0a378f4ce3637530020e37f
@@ -0,0 +1,40 @@
1
+ version: 2
2
+ jobs:
3
+ build:
4
+ working_directory: ~/mapbox/mapbox-sdk-rb
5
+ parallelism: 1
6
+ shell: /bin/bash --login
7
+ environment:
8
+ CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
9
+ CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
10
+ docker:
11
+ - image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37
12
+ command: /sbin/init
13
+ steps:
14
+ - checkout
15
+ - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS
16
+ - restore_cache:
17
+ keys:
18
+ - v1-dep-{{ .Branch }}-
19
+ - v1-dep-master-
20
+ - v1-dep-
21
+ - run: echo -e "export RAILS_ENV=test\nexport RACK_ENV=test" >> $BASH_ENV
22
+ - run: 'bundle check --path=vendor/bundle || bundle install --path=vendor/bundle
23
+ --jobs=4 --retry=3 '
24
+ - save_cache:
25
+ key: v1-dep-{{ .Branch }}-{{ epoch }}
26
+ paths:
27
+ - vendor/bundle
28
+ - ~/virtualenvs
29
+ - ~/.bundle
30
+ - run:
31
+ command: bundle exec rake test
32
+ environment:
33
+ RAILS_ENV: test
34
+ RACK_ENV: test
35
+ - store_test_results:
36
+ path: /tmp/circleci-test-results
37
+ - store_artifacts:
38
+ path: /tmp/circleci-artifacts
39
+ - store_artifacts:
40
+ path: /tmp/circleci-test-results
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [2.1.0] - 2018-06-07
8
+ ### Added
9
+ - Added CHANGELOG.md
10
+ - Added Tilequery endpoint
11
+
12
+ ### Changed
13
+ - Updated documentation links in README
14
+
15
+ ### Removed
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ gemspec
3
3
 
4
4
  if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('1.9.3')
5
5
  gem 'i18n', '< 0.7'
6
- gem 'rest-client', '~> 1.6.8'
6
+ gem 'rest-client', '~> 2.0.1'
7
7
  gem 'activesupport', '~> 3.2'
8
8
  gem 'rake', '10.1.0'
9
9
  end
data/README.md CHANGED
@@ -10,11 +10,12 @@ gem install mapbox-sdk
10
10
 
11
11
  ## Services
12
12
 
13
- * [Geocoding](https://www.mapbox.com/developers/api/geocoding/)
13
+ * [Geocoding](https://www.mapbox.com/api-documentation/#geocoding)
14
14
  * Forward (place names ⇢ longitude, latitude)
15
15
  * Reverse (longitude, latitude ⇢ place names)
16
- * [Directions](https://www.mapbox.com/developers/api/directions/)
16
+ * [Directions](https://www.mapbox.com/api-documentation/#directions)
17
17
  * Profiles for driving, walking, and cycling
18
+ * [Tilequery](https://www.mapbox.com/api-documentation/#tilequery)
18
19
 
19
20
  ## Example
20
21
 
@@ -31,14 +32,23 @@ placenames = Mapbox::Geocoder.geocode_reverse({
31
32
  # Forward geocoding with optional proximity parameter
32
33
  places = Mapbox::Geocoder.geocode_forward("Chester, NJ", {:proximity => {:longitude => -74.6968, :latitude => 40.7843}})
33
34
 
34
- # Directions
35
+ # Driving directions with required profile parameter
35
36
  drivingDirections = Mapbox::Directions.directions([{
36
37
  "longitude" => -100,
37
38
  "latitude" => 38
38
39
  }, {
39
40
  "longitude" => -90,
40
41
  "latitude" => 38
41
- }])
42
+ }], "driving")
43
+
44
+ # In the above example, you can substitute `driving` for `driving-traffic`, `cycling` or `walking`. For more, [check out the documentation](https://www.mapbox.com/api-documentation/#directions).
45
+
46
+ # Tilequery
47
+ tilequery = Mapbox::Tilequery.tilequery(mapid, {location}, radius, limit)
48
+
49
+ # Example: tilequery = Mapbox::Tilequery.tilequery("mapbox.mapbox-streets-v7", {"longitude" => -100, "latitude" => 38}, 0, 1)
50
+ # `Radius` refers to the approximate distance in meters to query for features. Defaults to 0 if left blank. Has no upper bound. Required for queries against point and line data.
51
+ # `Limit` refers to the number of features between 1 - 50 to return. Defaults to 5 if left blank.
42
52
  ```
43
53
 
44
54
  Heavily influenced by Stripe's Ruby client, and includes its MIT license.
data/lib/mapbox.rb CHANGED
@@ -180,3 +180,4 @@ end
180
180
  # services
181
181
  require 'mapbox/geocoder'
182
182
  require 'mapbox/directions'
183
+ require 'mapbox/tilequery'
@@ -1,16 +1,13 @@
1
- require 'rest-client'
2
- require 'json'
3
-
4
1
  module Mapbox
5
2
  class Directions
6
3
  include Mapbox::APIOperations::Request
7
4
  extend Mapbox::HashUtils
8
- def self.directions(waypoints, profile='mapbox.driving')
5
+ def self.directions(waypoints, profile)
9
6
  formatted_waypoints = waypoints.map {|p| xy_from_hash(p).join ','}.join ';'
10
7
  return request(
11
- :get,
12
- "/v4/directions/#{profile}/#{formatted_waypoints}.json",
13
- nil)
8
+ :get,
9
+ "/directions/v5/mapbox/#{profile}/#{formatted_waypoints}.json",
10
+ nil)
14
11
  end
15
12
  end
16
- end
13
+ end
@@ -7,11 +7,12 @@ module Mapbox
7
7
  include Mapbox::APIOperations::Request
8
8
  extend Mapbox::HashUtils
9
9
 
10
- def self.geocode_forward(query, options={}, dataset='mapbox.places')
10
+ def self.assemble_params(options={})
11
11
  proximity = options[:proximity]
12
12
  bbox = options[:bbox]
13
+ types = options[:types]
13
14
  params = ''
14
- opts = options.select { |key, value| key != :proximity && key != :bbox}
15
+ opts = options.select { |key, value| key != :proximity && key != :bbox && key != :types}
15
16
  if opts.length > 0
16
17
  params += "#{params.length > 0 ? '&' : '?'}#{URI.encode_www_form(opts)}"
17
18
  end
@@ -25,19 +26,32 @@ module Mapbox
25
26
  if bbox then
26
27
  params += "#{params.length > 0 ? '&' : '?'}bbox=#{bbox.join('%2C')}"
27
28
  end
29
+
30
+ if types then
31
+ params += "#{params.length > 0 ? '&' : '?'}types=#{types.join('%2C')}"
32
+ end
33
+
34
+ return params
35
+ end
36
+
37
+ def self.geocode_forward(query, options={}, dataset='mapbox.places')
38
+ params = self.assemble_params(options)
39
+
28
40
  return request(
29
41
  :get,
30
42
  "/geocoding/v5/#{dataset}/#{URI.escape(query)}.json#{params}",
31
43
  nil)
32
44
  end
33
45
 
34
- def self.geocode_reverse(location, dataset='mapbox.places')
46
+ def self.geocode_reverse(location, options={}, dataset='mapbox.places')
35
47
  location[:longitude] = location[:longitude].round(5)
36
48
  location[:latitude] = location[:latitude].round(5)
37
49
 
50
+ params = self.assemble_params(options)
51
+
38
52
  return request(
39
53
  :get,
40
- "/geocoding/v5/#{dataset}/#{xy_from_hash(location).join(',')}.json",
54
+ "/geocoding/v5/#{dataset}/#{xy_from_hash(location).join(',')}.json#{params}",
41
55
  nil)
42
56
  end
43
57
  end
@@ -0,0 +1,15 @@
1
+ module Mapbox
2
+ class Tilequery
3
+ include Mapbox::APIOperations::Request
4
+ extend Mapbox::HashUtils
5
+
6
+ def self.tilequery(mapid, location, radius, limit)
7
+ lon = location['longitude'].round(5)
8
+ lat = location['latitude'].round(5)
9
+ return request(
10
+ :get,
11
+ "/v4/#{mapid}/tilequery/#{lon},#{lat}.json?radius=#{radius}&limit=#{limit}",
12
+ nil)
13
+ end
14
+ end
15
+ end
data/mapbox-sdk.gemspec CHANGED
@@ -2,7 +2,7 @@ $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
2
 
3
3
  spec = Gem::Specification.new do |s|
4
4
  s.name = 'mapbox-sdk'
5
- s.version = '2.0.0'
5
+ s.version = '2.1.0'
6
6
  s.summary = 'Ruby bindings for the Mapbox API'
7
7
  s.description = ''
8
8
  s.authors = ['Tom MacWright']
@@ -10,8 +10,7 @@ spec = Gem::Specification.new do |s|
10
10
  s.homepage = 'https://mapbox.com/developers'
11
11
  s.license = 'MIT'
12
12
 
13
- s.add_dependency('rest-client', '~> 1.4')
14
- s.add_dependency('json', '~> 1.8.1')
13
+ s.add_dependency('rest-client', '~> 2.0.1')
15
14
 
16
15
  s.add_development_dependency('mocha', '~> 0.13.2')
17
16
  s.add_development_dependency('shoulda', '~> 3.4.0')
@@ -16,7 +16,7 @@ module Mapbox
16
16
  :longitude => -90,
17
17
  :latitude => 38
18
18
  }
19
- ])
19
+ ], "cycling")
20
20
  assert result
21
21
  end
22
22
  end
@@ -39,6 +39,13 @@ module Mapbox
39
39
  assert Mapbox.request_opts[:url].include? '?country=ca';
40
40
  end
41
41
 
42
+ should "#geocode_forward (include types param)" do
43
+ Mapbox.access_token = ENV["MapboxAccessToken"]
44
+ result = Mapbox::Geocoder.geocode_forward("Washington", {:types => ['poi.landmark', 'address'], :foo_key => "foo_val", :bar_key => "bar_val"})
45
+ assert result
46
+ assert Mapbox.request_opts[:url].include? '?foo_key=foo_val&bar_key=bar_val&types=poi.landmark%2Caddress';
47
+ end
48
+
42
49
  should "#geocode_reverse" do
43
50
  Mapbox.access_token = ENV["MapboxAccessToken"]
44
51
  result = Mapbox::Geocoder.geocode_reverse({
@@ -0,0 +1,15 @@
1
+ require 'mapbox'
2
+ require 'test/unit'
3
+ require 'mocha/setup'
4
+ require 'shoulda'
5
+
6
+ module Mapbox
7
+ class TilequeryTest < Test::Unit::TestCase
8
+ should "#tilequery" do
9
+ Mapbox.access_token = ENV["MapboxAccessToken"]
10
+ result = Mapbox::Tilequery.tilequery(
11
+ "mapbox.mapbox-streets-v7", {"longitude" => -122.42901, "latitude" => 37.80633}, 5, 10)
12
+ assert result
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mapbox-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom MacWright
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-13 00:00:00.000000000 Z
11
+ date: 2018-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.4'
19
+ version: 2.0.1
20
20
  type: :runtime
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.4'
27
- - !ruby/object:Gem::Dependency
28
- name: json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.8.1
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.8.1
26
+ version: 2.0.1
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: mocha
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -101,8 +87,10 @@ executables: []
101
87
  extensions: []
102
88
  extra_rdoc_files: []
103
89
  files:
90
+ - ".circleci/config.yml"
91
+ - ".gitignore"
92
+ - CHANGELOG.md
104
93
  - Gemfile
105
- - Gemfile.lock
106
94
  - LICENSE
107
95
  - README.md
108
96
  - Rakefile
@@ -112,10 +100,12 @@ files:
112
100
  - lib/mapbox/authentication_error.rb
113
101
  - lib/mapbox/directions.rb
114
102
  - lib/mapbox/geocoder.rb
103
+ - lib/mapbox/tilequery.rb
115
104
  - mapbox-sdk.gemspec
116
105
  - test/directions_test.rb
117
106
  - test/geocoding_test.rb
118
107
  - test/mapbox_test.rb
108
+ - test/tilequery_test.rb
119
109
  homepage: https://mapbox.com/developers
120
110
  licenses:
121
111
  - MIT
@@ -136,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
126
  version: '0'
137
127
  requirements: []
138
128
  rubyforge_project:
139
- rubygems_version: 2.5.1
129
+ rubygems_version: 2.7.7
140
130
  signing_key:
141
131
  specification_version: 4
142
132
  summary: Ruby bindings for the Mapbox API
@@ -144,3 +134,4 @@ test_files:
144
134
  - test/directions_test.rb
145
135
  - test/geocoding_test.rb
146
136
  - test/mapbox_test.rb
137
+ - test/tilequery_test.rb
data/Gemfile.lock DELETED
@@ -1,64 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- mapbox (1.0.0)
5
- json (~> 1.8.1)
6
- rest-client (~> 1.4)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- activesupport (4.2.3)
12
- i18n (~> 0.7)
13
- json (~> 1.7, >= 1.7.7)
14
- minitest (~> 5.1)
15
- thread_safe (~> 0.3, >= 0.3.4)
16
- tzinfo (~> 1.1)
17
- bourne (1.5.0)
18
- mocha (>= 0.13.2, < 0.15)
19
- domain_name (0.5.24)
20
- unf (>= 0.0.5, < 1.0.0)
21
- http-cookie (1.0.2)
22
- domain_name (~> 0.5)
23
- i18n (0.7.0)
24
- json (1.8.3)
25
- metaclass (0.0.4)
26
- mime-types (2.6.1)
27
- minitest (5.7.0)
28
- mocha (0.13.3)
29
- metaclass (~> 0.0.1)
30
- netrc (0.10.3)
31
- power_assert (0.2.4)
32
- rake (10.4.2)
33
- rest-client (1.8.0)
34
- http-cookie (>= 1.0.2, < 2.0)
35
- mime-types (>= 1.16, < 3.0)
36
- netrc (~> 0.7)
37
- shoulda (3.4.0)
38
- shoulda-context (~> 1.0, >= 1.0.1)
39
- shoulda-matchers (~> 1.0, >= 1.4.1)
40
- shoulda-context (1.2.1)
41
- shoulda-matchers (1.5.6)
42
- activesupport (>= 3.0.0)
43
- bourne (~> 1.3)
44
- test-unit (3.1.2)
45
- power_assert
46
- thread_safe (0.3.5)
47
- tzinfo (1.2.2)
48
- thread_safe (~> 0.1)
49
- unf (0.1.4)
50
- unf_ext
51
- unf_ext (0.0.7.1)
52
-
53
- PLATFORMS
54
- ruby
55
-
56
- DEPENDENCIES
57
- mapbox!
58
- mocha (~> 0.13.2)
59
- rake
60
- shoulda (~> 3.4.0)
61
- test-unit
62
-
63
- BUNDLED WITH
64
- 1.10.6