here_places 0.0.2 → 0.1.0

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.
@@ -0,0 +1,51 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://places.nlp.nokia.com/places/v1/suggest?app_code=<APP_CODE>&app_id=<APP_ID>&q=berl
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 400
19
+ message: Bad Request
20
+ headers:
21
+ Cache-Control:
22
+ - no-store, must-revalidate
23
+ Content-Language:
24
+ - en
25
+ Content-Type:
26
+ - application/json; charset=UTF-8
27
+ Date:
28
+ - Sat, 25 Apr 2015 13:25:39 GMT
29
+ Expires:
30
+ - Thu, 01 Jan 1970 00:00:00 GMT
31
+ - Thu, 26 Apr 1970 20:00:00 GMT
32
+ Pragma:
33
+ - no-cache
34
+ Set-Cookie:
35
+ - NLP.PP=dad5f0b4-00e3-472e-95f0-b400e3272e27;Path=/;Domain=.nlp.nokia.com;Expires=Thu,
36
+ 22-Oct-2015 13:25:39 GMT
37
+ - NLP.PS=a4e236ba-bed6-41dc-a236-babed6e1dcad;Path=/;Domain=.nlp.nokia.com
38
+ Vary:
39
+ - Accept, Accept-Encoding, Accept-Language, X-Map-Viewport, Geolocation, X-Mobility-Mode
40
+ X-Nlp-Tid:
41
+ - faa8d50f-5ff1-43cc-a8d5-0f5ff183cc68
42
+ Content-Length:
43
+ - '83'
44
+ Connection:
45
+ - keep-alive
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"status":400,"message":"No position or bounding box information."}'
49
+ http_version:
50
+ recorded_at: Sat, 25 Apr 2015 13:25:39 GMT
51
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,67 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://places.nlp.nokia.com/places/v1/suggest?app_code=<APP_CODE>&app_id=<APP_ID>&at=52.5159,13.3777&q=berl
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - no-store, must-revalidate
23
+ Content-Language:
24
+ - en
25
+ Content-Type:
26
+ - application/json; charset=UTF-8
27
+ Date:
28
+ - Sat, 25 Apr 2015 13:07:38 GMT
29
+ Expires:
30
+ - Thu, 01 Jan 1970 00:00:00 GMT
31
+ - Thu, 26 Apr 1970 20:00:00 GMT
32
+ Pragma:
33
+ - no-cache
34
+ Set-Cookie:
35
+ - NLP.PP=4ed71ec3-ba9e-4f3b-971e-c3ba9e5f3bd4;Path=/;Domain=.nlp.nokia.com;Expires=Thu,
36
+ 22-Oct-2015 13:07:38 GMT
37
+ - NLP.PS=bea27caf-a77b-43c7-a27c-afa77bb3c785;Path=/;Domain=.nlp.nokia.com
38
+ Vary:
39
+ - Accept, Accept-Encoding, Accept-Language, X-Map-Viewport, Geolocation, X-Mobility-Mode
40
+ X-Nlp-Tid:
41
+ - 1206ebbb-56ed-476f-86eb-bb56ed976f26
42
+ Content-Length:
43
+ - '328'
44
+ Connection:
45
+ - keep-alive
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ eyJzdWdnZXN0aW9ucyI6WyJCZXJsaW4sIEdlcm1hbnkiLCJDb3JhLUJlcmxp
50
+ bmVyLVN0cmHDn2UsIDEwMTE3IEJlcmxpbiwgR2VybWFueSIsIkJlcmxpbiBU
51
+ b3VyaXNtdXMgTWFya2V0aW5nIiwiQmVybGluZXIgU3Bhcmthc3NlIiwiQmVy
52
+ bGluZXIgRnJlaWhlaXQsIDEwNzg1IEJlcmxpbiwgR2VybWFueSIsIkVtYmFz
53
+ c3kgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgQmVybGluIiwiTmV1ZW5oYWdlbiBi
54
+ ZWkgQmVybGluLCBHZXJtYW55IiwiQmVybGluZXIgVm9sa3NiYW5rIiwiQmVy
55
+ bGluZXIgTWF1ZXJ3ZWcsIDEwMTE3IEJlcmxpbiwgR2VybWFueSIsIkJlcmxp
56
+ biBUb3VyaXN0IEluZm8iLCJTY2jDtm5laWNoZSBiZWkgQmVybGluLCBHZXJt
57
+ YW55IiwiQW0gQmVybGluLU11c2V1bSwgMTA5NjkgQmVybGluLCBHZXJtYW55
58
+ IiwiRsO2cmRlcmtyZWlzIFJhdW0gZGVyIFN0aWxsZSBpbiBCZXJsaW4gZS5W
59
+ LiIsIkJlcm5hdSBiZWkgQmVybGluLCBHZXJtYW55IiwiQmVybGluIGluZm9z
60
+ dG9yZSIsIkJlcmxpbmVyIFZvcnN0YWR0LCBQb3RzZGFtLCBHZXJtYW55Iiwi
61
+ QmVybGljaGluZ2Vuc3RyYcOfZSwgMTA1NTMgQmVybGluLCBHZXJtYW55Iiwi
62
+ RXZlcnl0aGluZyBBYm91dCBCZXJsaW4iLCJSw7xkZXJzZG9yZiBiZWkgQmVy
63
+ bGluLCBHZXJtYW55IiwiQmVybGluZXIgU3RyYcOfZSwgMTA3MTUgQmVybGlu
64
+ LCBHZXJtYW55Il19
65
+ http_version:
66
+ recorded_at: Sat, 25 Apr 2015 13:06:09 GMT
67
+ recorded_with: VCR 2.9.3
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,21 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
3
  require 'rspec'
4
- require 'fakeweb'
5
4
  require 'here_places'
5
+ require 'vcr'
6
+ require 'faraday'
7
+ require 'webmock'
6
8
 
7
- BASE_URL = 'http://places.nlp.nokia.com/'
8
- API_PREFIX = 'places/v1'
9
+ RSpec.configure do |config|
10
+
11
+ VCR.configure do |c|
12
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
13
+ c.hook_into :webmock
14
+ c.filter_sensitive_data('<APP_ID>') { 'APP_ID' }
15
+ c.filter_sensitive_data('<APP_CODE>') { 'APP_CODE' }
16
+ end
17
+
18
+ config.before(:all) do
19
+ HerePlaces.set_keys('APP_ID', 'APP_CODE')
20
+ end
21
+ end
data/spec/suggest_spec.rb CHANGED
@@ -1,18 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe HerePlaces::Suggest do
4
- before(:each) do
5
- app_id = 'APP_ID'
6
- app_code = 'APP_CODE'
7
- @data = {test: 'stuff'}
8
- @h = HerePlaces::Suggest.new(app_id, app_code)
9
- @h.stub!(:api)
10
- end
4
+ let(:api) { described_class.new }
5
+ let(:payload) { { at: '52.5159,13.3777', q: 'berl' } }
11
6
 
12
- it 'responds correctly to suggest method and delegates to the api call' do
13
- resource_url = "#{API_PREFIX}/suggest"
14
- @h.should respond_to(:suggest)
15
- @h.should_receive(:api).with(resource_url, @data)
16
- @h.suggest(@data)
7
+ it "calls the api and returns results correctly" do
8
+ VCR.use_cassette("suggest", record: :once) do
9
+ results = api.suggest(payload)
10
+ expect(results["suggestions"][0]).to eq "Berlin, Germany"
11
+ end
17
12
  end
18
- end
13
+ end
data/wercker.yml ADDED
@@ -0,0 +1,27 @@
1
+ box: wercker/rvm
2
+ # Build definition
3
+ build:
4
+ # The steps that will be executed on build
5
+ # See the Ruby section on the wercker devcenter:
6
+ # http://devcenter.wercker.com/articles/languages/ruby.html
7
+ steps:
8
+ # Uncomment this to force RVM to use a specific Ruby version
9
+ # - rvm-use:
10
+ # version: 2.2.2
11
+
12
+ # A step that executes `bundle install` command
13
+ - bundle-install
14
+
15
+ # A custom script step, name value is used in the UI
16
+ # and the code value contains the command that get executed
17
+ - script:
18
+ name: echo ruby information
19
+ code: |
20
+ echo "ruby version $(ruby --version) running"
21
+ echo "from location $(which ruby)"
22
+ echo -p "gem list: $(gem list)"
23
+
24
+ # Add more steps here:
25
+ - script:
26
+ name: rspec
27
+ code: bundle exec rspec
metadata CHANGED
@@ -1,64 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: here_places
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Prem Pillai
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-25 00:00:00.000000000 Z
11
+ date: 2015-04-25 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.1
14
27
  - !ruby/object:Gem::Dependency
15
28
  name: rspec
16
29
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
30
  requirements:
19
- - - ~>
31
+ - - "~>"
20
32
  - !ruby/object:Gem::Version
21
- version: '2.1'
33
+ version: '3.1'
22
34
  type: :development
23
35
  prerelease: false
24
36
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
37
  requirements:
27
- - - ~>
38
+ - - "~>"
28
39
  - !ruby/object:Gem::Version
29
- version: '2.1'
40
+ version: '3.1'
30
41
  - !ruby/object:Gem::Dependency
31
- name: fakeweb
42
+ name: vcr
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
- - - ~>
45
+ - - "~>"
36
46
  - !ruby/object:Gem::Version
37
- version: '1.3'
47
+ version: '2.9'
38
48
  type: :development
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
- - - ~>
52
+ - - "~>"
44
53
  - !ruby/object:Gem::Version
45
- version: '1.3'
54
+ version: '2.9'
46
55
  - !ruby/object:Gem::Dependency
47
- name: faraday
56
+ name: webmock
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
- - - ~>
59
+ - - "~>"
52
60
  - !ruby/object:Gem::Version
53
- version: 0.8.4
54
- type: :runtime
61
+ version: '1.21'
62
+ type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
- - - ~>
66
+ - - "~>"
60
67
  - !ruby/object:Gem::Version
61
- version: 0.8.4
68
+ version: '1.21'
62
69
  description: A wafer-thin Ruby Wrapper for Nokia's Here Places API
63
70
  email:
64
71
  - prem.pillai@gmail.com
@@ -66,7 +73,7 @@ executables: []
66
73
  extensions: []
67
74
  extra_rdoc_files: []
68
75
  files:
69
- - .gitignore
76
+ - ".gitignore"
70
77
  - Gemfile
71
78
  - LICENSE.txt
72
79
  - README.md
@@ -77,45 +84,55 @@ files:
77
84
  - lib/here_places/category.rb
78
85
  - lib/here_places/discover.rb
79
86
  - lib/here_places/error.rb
80
- - lib/here_places/place.rb
81
87
  - lib/here_places/suggest.rb
82
88
  - lib/here_places/version.rb
83
- - spec/base_spec.rb
84
89
  - spec/category_spec.rb
85
90
  - spec/discover_spec.rb
86
- - spec/place_spec.rb
91
+ - spec/error_spec.rb
92
+ - spec/fixtures/vcr_cassettes/categories.yml
93
+ - spec/fixtures/vcr_cassettes/explore.yml
94
+ - spec/fixtures/vcr_cassettes/here.yml
95
+ - spec/fixtures/vcr_cassettes/places.yml
96
+ - spec/fixtures/vcr_cassettes/search.yml
97
+ - spec/fixtures/vcr_cassettes/suggest-bad.yml
98
+ - spec/fixtures/vcr_cassettes/suggest.yml
87
99
  - spec/spec_helper.rb
88
100
  - spec/suggest_spec.rb
101
+ - wercker.yml
89
102
  homepage: https://github.com/premjg/here_places
90
103
  licenses:
91
104
  - MIT
105
+ metadata: {}
92
106
  post_install_message:
93
107
  rdoc_options: []
94
108
  require_paths:
95
109
  - lib
96
110
  required_ruby_version: !ruby/object:Gem::Requirement
97
- none: false
98
111
  requirements:
99
- - - ! '>='
112
+ - - ">="
100
113
  - !ruby/object:Gem::Version
101
114
  version: '0'
102
115
  required_rubygems_version: !ruby/object:Gem::Requirement
103
- none: false
104
116
  requirements:
105
- - - ! '>='
117
+ - - ">="
106
118
  - !ruby/object:Gem::Version
107
119
  version: '0'
108
120
  requirements: []
109
121
  rubyforge_project:
110
- rubygems_version: 1.8.23
122
+ rubygems_version: 2.2.2
111
123
  signing_key:
112
- specification_version: 3
124
+ specification_version: 4
113
125
  summary: A wafer-thin Ruby Wrapper for Nokia's Here Places API
114
126
  test_files:
115
- - spec/base_spec.rb
116
127
  - spec/category_spec.rb
117
128
  - spec/discover_spec.rb
118
- - spec/place_spec.rb
129
+ - spec/error_spec.rb
130
+ - spec/fixtures/vcr_cassettes/categories.yml
131
+ - spec/fixtures/vcr_cassettes/explore.yml
132
+ - spec/fixtures/vcr_cassettes/here.yml
133
+ - spec/fixtures/vcr_cassettes/places.yml
134
+ - spec/fixtures/vcr_cassettes/search.yml
135
+ - spec/fixtures/vcr_cassettes/suggest-bad.yml
136
+ - spec/fixtures/vcr_cassettes/suggest.yml
119
137
  - spec/spec_helper.rb
120
138
  - spec/suggest_spec.rb
121
- has_rdoc:
@@ -1,10 +0,0 @@
1
- module HerePlaces
2
- class Place < HerePlaces::Base
3
- @@resource = 'places'
4
-
5
- def places(id)
6
- url = @@api_prefix + '/' + @@resource + '/' + id.to_s
7
- api(url)
8
- end
9
- end
10
- end
data/spec/base_spec.rb DELETED
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe HerePlaces::Base do
4
- before(:each) do
5
- @app_id = 'APP_ID'
6
- @app_code = 'APP_CODE'
7
- end
8
-
9
- context "after initialize" do
10
- it 'calls the setup method' do
11
- HerePlaces::Base.any_instance.stub(:setup)
12
- HerePlaces::Base.any_instance.should_receive(:setup)
13
- @h = HerePlaces::Base.new(@app_id, @app_code)
14
- end
15
- end
16
-
17
- context "the setup method" do
18
- it "correctly sets up the Faraday connection object" do
19
- @h = HerePlaces::Base.new(@app_id, @app_code)
20
- @h.conn.should be_an_instance_of(Faraday::Connection)
21
- end
22
- end
23
-
24
- context "api method" do
25
- before(:each) do
26
- @url_fragment = 'some/url/fragment'
27
- @data = {test: 'stuff'}
28
- end
29
-
30
- after(:each) do
31
- FakeWeb.clean_registry
32
- end
33
-
34
- it "correctly constructs the API URL and makes calls" do
35
- @h = HerePlaces::Base.new(@app_id, @app_code)
36
- FakeWeb.register_uri(:get, %r|^http:\/\/places\.nlp\.nokia\.com\/.*|, :body => {stuff: 'test'}.to_json)
37
- @h.api(@url_fragment, @data)
38
- @parametrized_data = URI.encode_www_form(@data)
39
- FakeWeb.last_request.path.should eq("/#{@url_fragment}?app_id=#{@app_id}&app_code=#{@app_code}&#{@parametrized_data}")
40
- end
41
-
42
- it "flips out and raises error when it receives an API error" do
43
- @h = HerePlaces::Base.new(@app_id, @app_code)
44
- FakeWeb.register_uri(:get, %r|^http:\/\/places\.nlp\.nokia\.com\/.*|, :body => {status: 400, stuff: 'test'}.to_json)
45
- expect {@h.api(@url_fragment, @data)}.to raise_error(HerePlaces::APIError)
46
- end
47
- end
48
-
49
- end
data/spec/place_spec.rb DELETED
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe HerePlaces::Place do
4
- before(:each) do
5
- app_id = 'APP_ID'
6
- app_code = 'APP_CODE'
7
- @id = '123asdfa'
8
- @h = HerePlaces::Place.new(app_id, app_code)
9
- @h.stub!(:api)
10
- end
11
-
12
- it 'responds correctly to places method and delegates to the api call' do
13
- resource_url = "#{API_PREFIX}/places/#{@id}"
14
- @h.should respond_to(:places)
15
- @h.should_receive(:api).with(resource_url)
16
- @h.places(@id)
17
- end
18
- end