gurunavi 0.0.2

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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +108 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +92 -0
  7. data/Rakefile +51 -0
  8. data/VERSION +1 -0
  9. data/gurunavi.gemspec +113 -0
  10. data/lib/gurunavi.rb +13 -0
  11. data/lib/gurunavi/api_error.rb +16 -0
  12. data/lib/gurunavi/client.rb +87 -0
  13. data/lib/gurunavi/master/area_codes.rb +30 -0
  14. data/lib/gurunavi/master/areas.rb +13 -0
  15. data/lib/gurunavi/master/categories.rb +21 -0
  16. data/lib/gurunavi/master/prefs.rb +13 -0
  17. data/lib/gurunavi/photos.rb +13 -0
  18. data/lib/gurunavi/rests.rb +21 -0
  19. data/test/fixtures/area_codes/g_area_large_search.json +3503 -0
  20. data/test/fixtures/area_codes/g_area_middle_search.json +11671 -0
  21. data/test/fixtures/area_codes/g_area_small_search.json +18887 -0
  22. data/test/fixtures/areas/area_search.json +47 -0
  23. data/test/fixtures/categories/category_large_search.json +95 -0
  24. data/test/fixtures/categories/category_small_search.json +1047 -0
  25. data/test/fixtures/errors/error.json +9 -0
  26. data/test/fixtures/errors/error_gnavi.json +11 -0
  27. data/test/fixtures/photos/photo_search.json +91 -0
  28. data/test/fixtures/prefs/pref_search.json +242 -0
  29. data/test/fixtures/rests/foreign_rest_search.json +662 -0
  30. data/test/fixtures/rests/rest_search.json +904 -0
  31. data/test/helper.rb +87 -0
  32. data/test/test_area_codes.rb +37 -0
  33. data/test/test_areas.rb +20 -0
  34. data/test/test_categories.rb +24 -0
  35. data/test/test_client.rb +33 -0
  36. data/test/test_photos.rb +19 -0
  37. data/test/test_prefs.rb +19 -0
  38. data/test/test_rests.rb +24 -0
  39. metadata +270 -0
@@ -0,0 +1,87 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_profile 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
17
+ require 'rubygems'
18
+ require 'bundler'
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+ require 'test/unit'
27
+ require 'shoulda'
28
+ require 'matchy'
29
+ require 'fakeweb'
30
+ require 'json'
31
+ require 'hashie'
32
+ require 'awesome_print'
33
+ require 'mocha/setup'
34
+
35
+ FakeWeb.allow_net_connect = false
36
+
37
+ def gurunavi_test_client
38
+ Gurunavi::Client.new(keyid: keyid_test)
39
+ end
40
+
41
+ def keyid_test
42
+ "testdayon"
43
+ end
44
+
45
+ def gurunavi_url(url)
46
+ url =~ /^http/ ? url : "https://api.gnavi.co.jp/#{url}"
47
+ end
48
+
49
+ def fixture_file(filename, options={})
50
+ return '' if filename == ''
51
+ file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
52
+ fixture = File.read(file_path)
53
+
54
+ case File.extname(file_path)
55
+ when '.json'
56
+ options[:parse] ? Hashie::Mash.new(JSON.parse(fixture)) : fixture
57
+ else
58
+ fixture
59
+ end
60
+ end
61
+
62
+ def stub_get(url, filename, options={})
63
+ opts = {
64
+ :body => error_or_body(filename, options),
65
+ :content_type => 'application/json; charset=utf-8'
66
+ }.merge(options)
67
+ FakeWeb.register_uri(:get, gurunavi_url(url), opts)
68
+ end
69
+
70
+ def error_or_body(filename, options={})
71
+ error_options = options.delete(:error)
72
+ gnavi_options = options.delete(:gnavi)
73
+ if error_options
74
+ return fixture_file 'errors/error.json'
75
+ elsif gnavi_options
76
+ return fixture_file 'errors/gnavi_error.json'
77
+ else
78
+ return fixture_file filename
79
+ end
80
+ end
81
+
82
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
83
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
84
+ require 'gurunavi'
85
+
86
+ class Test::Unit::TestCase
87
+ end
@@ -0,0 +1,37 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the AreaSearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from area large code search api" do
10
+ stub_get(
11
+ "https://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630?format=json&keyid=#{@client.keyid}",
12
+ "area_codes/g_area_large_search.json")
13
+ area_codes = @client.g_area_large_search
14
+
15
+ assert_not_nil(area_codes)
16
+ end
17
+
18
+ should "fetch results when searching from area middle code search api" do
19
+ stub_get(
20
+ "https://api.gnavi.co.jp/master/GAreaMiddleSearchAPI/20150630?format=json&keyid=#{@client.keyid}",
21
+ "area_codes/g_area_middle_search.json")
22
+ area_codes = @client.g_area_middle_search
23
+
24
+ assert_not_nil(area_codes)
25
+ end
26
+
27
+ should "fetch results when searching from area small code search api" do
28
+ stub_get(
29
+ "https://api.gnavi.co.jp/master/GAreaSmallSearchAPI/20150630?format=json&keyid=#{@client.keyid}",
30
+ "area_codes/g_area_small_search.json")
31
+ area_codes = @client.g_area_small_search
32
+
33
+ assert_not_nil(area_codes)
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,20 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the AreaSearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from area search api" do
10
+ stub_get("https://api.gnavi.co.jp/master/AreaSearchAPI/20150630?format=json&keyid=#{@client.keyid}", "areas/area_search.json")
11
+ areas = @client.area_search
12
+
13
+ assert_not_nil(areas)
14
+
15
+ areas[0].area_code.should == "AREA150"
16
+ areas[0].area_name.should == "北海道"
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the CategorySearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from category large search api" do
10
+ stub_get("https://api.gnavi.co.jp/master/CategoryLargeSearchAPI/20150630?format=json&keyid=#{@client.keyid}", "categories/category_large_search.json")
11
+ categories = @client.category_large_search
12
+
13
+ assert_not_nil(categories)
14
+ end
15
+
16
+ should "fetch results when searching from category small search api" do
17
+ stub_get("https://api.gnavi.co.jp/master/CategorySmallSearchAPI/20150630?format=json&keyid=#{@client.keyid}", "categories/category_small_search.json")
18
+ categories = @client.category_small_search
19
+
20
+ assert_not_nil(categories)
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "Confirm Gurunavi helper methods" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "client has keyid" do
10
+ @client.keyid.should == keyid_test
11
+ end
12
+ end
13
+
14
+ context "When returning a unsucessful response(error)" do
15
+ should "raise Gurunavi::Error with error.json" do
16
+ response = Faraday::Response.new(body: fixture_file('errors/error.json', parse: true))
17
+ client = Gurunavi::Client.new
18
+
19
+ assert_raises(Gurunavi::APIError) do
20
+ client.return_error_or_body(response, response.body)
21
+ end
22
+ end
23
+
24
+ should "raise Gurunavi::Error with gnavi error json" do
25
+ response = Faraday::Response.new(body: fixture_file('errors/error_gnavi.json', parse: true))
26
+ client = Gurunavi::Client.new
27
+
28
+ assert_raises(Gurunavi::APIError) do
29
+ client.return_error_or_body(response, response.body)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the PhotoSearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from photo search api with no options" do
10
+ stub_get("https://api.gnavi.co.jp/PhotoSearchAPI/20150630?format=json&id=ga13300&keyid=#{@client.keyid}", "photos/photo_search.json")
11
+ photos = @client.photo_search(id: "ga13300")
12
+
13
+ assert_not_nil(photos)
14
+
15
+ # Note: PhotoSearchAPI result is different for other API?
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the PrefSearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from pref search api" do
10
+ stub_get("https://api.gnavi.co.jp/master/PrefSearchAPI/20150630?format=json&keyid=#{@client.keyid}", "prefs/pref_search.json")
11
+ prefs = @client.pref_search
12
+
13
+ assert_not_nil(prefs)
14
+
15
+ prefs.count.should == 47
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+
3
+ class TestGurunavi < Test::Unit::TestCase
4
+ context "When using the RestSearchAPI" do
5
+ setup do
6
+ @client = gurunavi_test_client
7
+ end
8
+
9
+ should "fetch results when searching from rest search api with hit_per_page options" do
10
+ stub_get("https://api.gnavi.co.jp/RestSearchAPI/20150630?format=json&hit_per_page=10&keyid=#{@client.keyid}", "rests/rest_search.json")
11
+ rests = @client.rest_search(hit_per_page: 10)
12
+
13
+ rests.count.should == 10
14
+ end
15
+
16
+ should "fetch results when searching from foeign rest search api with hit_per_page options" do
17
+ stub_get("https://api.gnavi.co.jp/ForeignRestSearchAPI/20150630?format=json&hit_per_page=10&keyid=#{@client.keyid}", "rests/foreign_rest_search.json")
18
+ rests = @client.foreign_rest_search(hit_per_page: 10)
19
+
20
+ rests.count.should == 10
21
+ end
22
+
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,270 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gurunavi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - kobayang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-02-03 00:00:00.000000000 Z
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.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: 4.0.0
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0.8'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: 4.0.0
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0.8'
61
+ - !ruby/object:Gem::Dependency
62
+ name: test-unit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: shoulda
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rdoc
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.12'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.12'
103
+ - !ruby/object:Gem::Dependency
104
+ name: bundler
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: jeweler
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 2.3.3
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 2.3.3
131
+ - !ruby/object:Gem::Dependency
132
+ name: simplecov
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 0.13.0
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 0.13.0
145
+ - !ruby/object:Gem::Dependency
146
+ name: jnunemaker-matchy
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0.0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: fakeweb
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '1.3'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '1.3'
173
+ - !ruby/object:Gem::Dependency
174
+ name: awesome_print
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: mocha
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ description: A Gurunavi API wrapper of ruby gems
202
+ email: naokiod@gmail.com
203
+ executables: []
204
+ extensions: []
205
+ extra_rdoc_files:
206
+ - LICENSE.txt
207
+ - README.md
208
+ files:
209
+ - ".document"
210
+ - Gemfile
211
+ - Gemfile.lock
212
+ - LICENSE.txt
213
+ - README.md
214
+ - Rakefile
215
+ - VERSION
216
+ - gurunavi.gemspec
217
+ - lib/gurunavi.rb
218
+ - lib/gurunavi/api_error.rb
219
+ - lib/gurunavi/client.rb
220
+ - lib/gurunavi/master/area_codes.rb
221
+ - lib/gurunavi/master/areas.rb
222
+ - lib/gurunavi/master/categories.rb
223
+ - lib/gurunavi/master/prefs.rb
224
+ - lib/gurunavi/photos.rb
225
+ - lib/gurunavi/rests.rb
226
+ - test/fixtures/area_codes/g_area_large_search.json
227
+ - test/fixtures/area_codes/g_area_middle_search.json
228
+ - test/fixtures/area_codes/g_area_small_search.json
229
+ - test/fixtures/areas/area_search.json
230
+ - test/fixtures/categories/category_large_search.json
231
+ - test/fixtures/categories/category_small_search.json
232
+ - test/fixtures/errors/error.json
233
+ - test/fixtures/errors/error_gnavi.json
234
+ - test/fixtures/photos/photo_search.json
235
+ - test/fixtures/prefs/pref_search.json
236
+ - test/fixtures/rests/foreign_rest_search.json
237
+ - test/fixtures/rests/rest_search.json
238
+ - test/helper.rb
239
+ - test/test_area_codes.rb
240
+ - test/test_areas.rb
241
+ - test/test_categories.rb
242
+ - test/test_client.rb
243
+ - test/test_photos.rb
244
+ - test/test_prefs.rb
245
+ - test/test_rests.rb
246
+ homepage: http://github.com/kobayang/gurunavi
247
+ licenses:
248
+ - MIT
249
+ metadata: {}
250
+ post_install_message:
251
+ rdoc_options: []
252
+ require_paths:
253
+ - lib
254
+ required_ruby_version: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ required_rubygems_version: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ requirements: []
265
+ rubyforge_project:
266
+ rubygems_version: 2.5.2
267
+ signing_key:
268
+ specification_version: 4
269
+ summary: A Gurunavi API wrapper of ruby gems
270
+ test_files: []