rakuten_web_service 1.0.0.rc1 → 1.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -5
- data/README.md +3 -2
- data/lib/rakuten_web_service/version.rb +1 -1
- data/rakuten_web_service.gemspec +1 -1
- data/spec/rakuten_web_service/books/book_spec.rb +2 -2
- data/spec/rakuten_web_service/books/genre_spec.rb +9 -9
- data/spec/rakuten_web_service/configuration_spec.rb +10 -3
- data/spec/rakuten_web_service/gora/course_detail_spec.rb +6 -2
- data/spec/rakuten_web_service/gora/course_spec.rb +6 -2
- data/spec/rakuten_web_service/gora/plan_spec.rb +6 -2
- data/spec/rakuten_web_service/ichiba/genre_spec.rb +7 -3
- data/spec/rakuten_web_service/ichiba/item_spec.rb +9 -5
- data/spec/rakuten_web_service/ichiba/product_search_spec.rb +1 -1
- data/spec/rakuten_web_service/ichiba/ranking_spec.rb +10 -2
- data/spec/rakuten_web_service/kobo/ebook_spec.rb +1 -1
- data/spec/rakuten_web_service/recipe_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -5
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdc0f4711fe39be535cfe9b4bd83cf03fc7244eb
|
4
|
+
data.tar.gz: adaab1f25a06aa9d7910605361c8d740ebf5b08d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ee1fcaa7e933d364b77fe00a60166448b1c207d7d55c5714acaef28bff6ea27f8536848c1a20514d720d0e70a2b8f4ab150479094adefef177f905a800aba5b
|
7
|
+
data.tar.gz: cca0e966fb91d68e25d650024eb6bfc71b37a5be0fc71ed79341818435572eee47099412d64b8e7a112c130eb04856291b0a95be3c1a948736cc56cb61fac8fb
|
data/CHANGELOG.md
CHANGED
@@ -1,18 +1,31 @@
|
|
1
|
+
# v1.0.0
|
2
|
+
|
3
|
+
## Enhancements
|
4
|
+
|
5
|
+
* Upgrade the version of RSpec and refactoring the configuration. [#36](https://github.com/rakuten-ws/rws-ruby-sdk/pull/36) and [#37](https://github.com/rakuten-ws/rws-ruby-sdk/pull/36)
|
6
|
+
|
1
7
|
# v1.0.0.rc1
|
2
8
|
|
3
9
|
## Enhancements
|
4
10
|
|
5
|
-
*
|
6
|
-
*
|
7
|
-
*
|
11
|
+
* Started supporting Gora APIs by @kamatama41 .[#29](https://github.com/rakuten-ws/rws-ruby-sdk/pull/29)
|
12
|
+
* Started supporting Recipe APIs. [#31](https://github.com/rakuten-ws/rws-ruby-sdk/pull/31)
|
13
|
+
* Updated versions of supported Rakuten Web Service APIs.
|
8
14
|
|
9
15
|
## Compatibility Changes
|
10
16
|
|
11
|
-
*
|
17
|
+
* Updated supported Ruby versions to 2.1.0 or later
|
12
18
|
* Any resource's `search` such as `RakutenWebService::Ichiba::Item` returns Enumerator which provides resources fetched at one page.
|
13
19
|
It used to provide all resources by auto-pagerize. From this version provides methods for pagerizing. Please refer to [the sample in README](https://github.com/rakuten-ws/rws-ruby-sdk/blob/master/README.md#pagerizing).
|
20
|
+
* Deprecated calling `RakutenWebService.configuration` with a block, recommending to use `RakutenWebService.configure`.
|
21
|
+
|
22
|
+
## Thanks
|
23
|
+
|
24
|
+
At first, I should appreciate all users of the gems.
|
25
|
+
One of the enhancements, supporting Gora APIs, is realized by @kamatama41 's seminal work.
|
26
|
+
Thank you for your contribution!
|
14
27
|
|
15
|
-
# v0.6.3
|
28
|
+
# v0.6.3
|
16
29
|
|
17
30
|
* Update a gem dependency by @45deg
|
18
31
|
* Fix typo by @45deg
|
data/README.md
CHANGED
@@ -83,7 +83,7 @@ Please note that you need to replace `'YOUR_APPLICATION_ID'` and `'YOUR_AFFILIAT
|
|
83
83
|
### Search Ichiba Items
|
84
84
|
|
85
85
|
```ruby
|
86
|
-
items = RakutenWebService::Ichiba::Item.search(:
|
86
|
+
items = RakutenWebService::Ichiba::Item.search(keyword: 'Ruby') # This returns Enumerable object
|
87
87
|
items.first(10).each do |item|
|
88
88
|
puts "#{item['itemName']}, #{item.price} yen" # You can refer to values as well as Hash.
|
89
89
|
end
|
@@ -109,7 +109,8 @@ Responses of resources' `search` such as `RakutenWebService::Ichiba::Item.search
|
|
109
109
|
puts item.name
|
110
110
|
end
|
111
111
|
|
112
|
-
|
112
|
+
# Easier way to fetch all resources page 3 and latter
|
113
|
+
items.page(3).all do |item|
|
113
114
|
puts item.name
|
114
115
|
end
|
115
116
|
```
|
data/rakuten_web_service.gemspec
CHANGED
@@ -25,6 +25,6 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
26
26
|
spec.add_development_dependency "rake"
|
27
27
|
spec.add_development_dependency "webmock", "~> 1.20.4"
|
28
|
-
spec.add_development_dependency "rspec", '~>
|
28
|
+
spec.add_development_dependency "rspec", '~> 3.5.0'
|
29
29
|
spec.add_development_dependency "tapp"
|
30
30
|
end
|
@@ -58,7 +58,7 @@ describe RakutenWebService::Books::Book do
|
|
58
58
|
specify 'genretes RWS::Books::Genre object' do
|
59
59
|
book = RWS::Books::Book.search(:title => 'Ruby').first
|
60
60
|
|
61
|
-
RWS::Books::Genre.
|
61
|
+
expect(RWS::Books::Genre).to receive(:new).with(response['Items'][0]['Item']['booksGenreId'])
|
62
62
|
expect(book.genre).to be_a(Array)
|
63
63
|
end
|
64
64
|
|
@@ -66,7 +66,7 @@ describe RakutenWebService::Books::Book do
|
|
66
66
|
genre_id = '001004008007/001021001010'
|
67
67
|
book = RWS::Books::Book.new(:booksGenreId => genre_id)
|
68
68
|
genre_id.split('/').each do |id|
|
69
|
-
RWS::Books::Genre.
|
69
|
+
expect(RWS::Books::Genre).to receive(:new).with(id)
|
70
70
|
end
|
71
71
|
|
72
72
|
expect(book.genres).to be_a(Array)
|
@@ -82,7 +82,7 @@ describe RWS::Books::Genre do
|
|
82
82
|
|
83
83
|
describe '.root' do
|
84
84
|
specify 'alias of constructor with the root genre id "000"' do
|
85
|
-
RWS::Books::Genre.
|
85
|
+
expect(RWS::Books::Genre).to receive(:new).with('000')
|
86
86
|
|
87
87
|
RWS::Books::Genre.root
|
88
88
|
end
|
@@ -97,7 +97,7 @@ describe RWS::Books::Genre do
|
|
97
97
|
specify 'are Books::Genre objects' do
|
98
98
|
expect(@genre.children).to be_all { |child| child.is_a? RWS::Books::Genre }
|
99
99
|
expect(@genre.children).to be_all do |child|
|
100
|
-
expected_json['children'].
|
100
|
+
expected_json['children'].any? { |c| c['child']['booksGenreId'] == child['booksGenreId'] }
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -121,7 +121,7 @@ describe RWS::Books::Genre do
|
|
121
121
|
let(:genre_id) { '001001' }
|
122
122
|
|
123
123
|
specify 'delegate Books::Book.search' do
|
124
|
-
RWS::Books::Book.
|
124
|
+
expect(RWS::Books::Book).to receive(:search).with(:booksGenreId => genre_id)
|
125
125
|
|
126
126
|
@genre.search
|
127
127
|
end
|
@@ -131,7 +131,7 @@ describe RWS::Books::Genre do
|
|
131
131
|
let(:genre_id) { '002101' }
|
132
132
|
|
133
133
|
specify 'delegate Books::CD.search' do
|
134
|
-
RWS::Books::CD.
|
134
|
+
expect(RWS::Books::CD).to receive(:search).with(:booksGenreId => genre_id)
|
135
135
|
|
136
136
|
@genre.search
|
137
137
|
end
|
@@ -141,7 +141,7 @@ describe RWS::Books::Genre do
|
|
141
141
|
let(:genre_id) { '003201' }
|
142
142
|
|
143
143
|
specify 'delegate Books::DVD.search' do
|
144
|
-
RWS::Books::DVD.
|
144
|
+
expect(RWS::Books::DVD).to receive(:search).with(:booksGenreId => genre_id)
|
145
145
|
|
146
146
|
@genre.search
|
147
147
|
end
|
@@ -151,7 +151,7 @@ describe RWS::Books::Genre do
|
|
151
151
|
let(:genre_id) { '004301' }
|
152
152
|
|
153
153
|
specify 'delegate Books::Software.search' do
|
154
|
-
RWS::Books::Software.
|
154
|
+
expect(RWS::Books::Software).to receive(:search).with(:booksGenreId => genre_id)
|
155
155
|
|
156
156
|
@genre.search
|
157
157
|
end
|
@@ -161,7 +161,7 @@ describe RWS::Books::Genre do
|
|
161
161
|
let(:genre_id) { '005401' }
|
162
162
|
|
163
163
|
specify 'delegate Books::ForeignBook.search' do
|
164
|
-
RWS::Books::ForeignBook.
|
164
|
+
expect(RWS::Books::ForeignBook).to receive(:search).with(:booksGenreId => genre_id)
|
165
165
|
|
166
166
|
@genre.search
|
167
167
|
end
|
@@ -171,7 +171,7 @@ describe RWS::Books::Genre do
|
|
171
171
|
let(:genre_id) { '006501' }
|
172
172
|
|
173
173
|
specify 'delegate Books::Game.search' do
|
174
|
-
RWS::Books::Game.
|
174
|
+
expect(RWS::Books::Game).to receive(:search).with(:booksGenreId => genre_id)
|
175
175
|
|
176
176
|
@genre.search
|
177
177
|
end
|
@@ -181,7 +181,7 @@ describe RWS::Books::Genre do
|
|
181
181
|
let(:genre_id) { '007601' }
|
182
182
|
|
183
183
|
specify 'delegate Books::Magazine.search' do
|
184
|
-
RWS::Books::Magazine.
|
184
|
+
expect(RWS::Books::Magazine).to receive(:search).with(:booksGenreId => genre_id)
|
185
185
|
|
186
186
|
@genre.search
|
187
187
|
end
|
@@ -13,8 +13,15 @@ describe RakutenWebService::Configuration do
|
|
13
13
|
|
14
14
|
subject { RakutenWebService.configuration }
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
describe '#affiliate_id' do
|
17
|
+
subject { super().affiliate_id }
|
18
|
+
it { is_expected.to eq('dummy_affiliate_id') }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#application_id' do
|
22
|
+
subject { super().application_id }
|
23
|
+
it { is_expected.to eq('dummy_application_id') }
|
24
|
+
end
|
18
25
|
end
|
19
26
|
|
20
27
|
context 'given block has more or less one arity' do
|
@@ -70,7 +77,7 @@ describe RakutenWebService::Configuration do
|
|
70
77
|
|
71
78
|
it 'should return true' do
|
72
79
|
expect(configuration).to be_debug_mode
|
73
|
-
expect(configuration.debug).to
|
80
|
+
expect(configuration.debug).to be_falsey
|
74
81
|
end
|
75
82
|
end
|
76
83
|
end
|
@@ -37,13 +37,17 @@ describe RakutenWebService::Gora::CourseDetail do
|
|
37
37
|
|
38
38
|
subject { RakutenWebService::Gora::CourseDetail.find(expected_query[:golfCourseId]) }
|
39
39
|
|
40
|
-
it {
|
40
|
+
it { is_expected.to be_a RakutenWebService::Gora::CourseDetail }
|
41
41
|
|
42
42
|
specify 'should be accessed by key' do
|
43
43
|
expect(subject['golfCourseName']).to eq(expected_json['golfCourseName'])
|
44
44
|
expect(subject['golf_course_name']).to eq(expected_json['golfCourseName'])
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
|
+
describe '#golf_course_name' do
|
48
|
+
subject { super().golf_course_name }
|
49
|
+
it { is_expected.to eq(expected_json['golfCourseName']) }
|
50
|
+
end
|
47
51
|
|
48
52
|
specify 'should be accessed to ratings' do
|
49
53
|
expect(subject.ratings.size).to eq(expected_json['ratings'].size)
|
@@ -52,12 +52,16 @@ describe RakutenWebService::Gora::Course do
|
|
52
52
|
|
53
53
|
subject { @courses.first }
|
54
54
|
|
55
|
-
it {
|
55
|
+
it { is_expected.to be_a RakutenWebService::Gora::Course }
|
56
56
|
specify 'should be accessed by key' do
|
57
57
|
expect(subject['golfCourseName']).to eq(expected_json['golfCourseName'])
|
58
58
|
expect(subject['golf_course_name']).to eq(expected_json['golfCourseName'])
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
|
+
describe '#golf_course_name' do
|
62
|
+
subject { super().golf_course_name }
|
63
|
+
it { is_expected.to eq(expected_json['golfCourseName']) }
|
64
|
+
end
|
61
65
|
end
|
62
66
|
|
63
67
|
context 'after that, call each' do
|
@@ -50,12 +50,16 @@ describe RakutenWebService::Gora::Plan do
|
|
50
50
|
|
51
51
|
subject { @plans.first }
|
52
52
|
|
53
|
-
it {
|
53
|
+
it { is_expected.to be_a RakutenWebService::Gora::Plan }
|
54
54
|
specify 'should be accessed by key' do
|
55
55
|
expect(subject['golfCourseId']).to eq(expected_json['golfCourseId'])
|
56
56
|
expect(subject['golf_course_id']).to eq(expected_json['golfCourseId'])
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
|
+
describe '#golf_course_id' do
|
60
|
+
subject { super().golf_course_id }
|
61
|
+
it { is_expected.to eq(expected_json['golfCourseId']) }
|
62
|
+
end
|
59
63
|
end
|
60
64
|
end
|
61
65
|
end
|
@@ -44,7 +44,11 @@ describe RakutenWebService::Ichiba::Genre do
|
|
44
44
|
expect(subject['genreName']).to eq(expected_json['current']['genreName'])
|
45
45
|
expect(subject['genre_name']).to eq(expected_json['current']['genreName'])
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
|
+
describe '#name' do
|
49
|
+
subject { super().name }
|
50
|
+
it { is_expected.to eq(expected_json['current']['genreName']) }
|
51
|
+
end
|
48
52
|
end
|
49
53
|
|
50
54
|
describe '.new' do
|
@@ -148,7 +152,7 @@ describe RakutenWebService::Ichiba::Genre do
|
|
148
152
|
end
|
149
153
|
|
150
154
|
specify "should call RankingItem's search with genre_id option" do
|
151
|
-
RakutenWebService::Ichiba::RankingItem.
|
155
|
+
expect(RakutenWebService::Ichiba::RankingItem).to receive(:search).with(:genre_id => genre_id)
|
152
156
|
expect { genre.ranking }.to_not raise_error
|
153
157
|
end
|
154
158
|
end
|
@@ -162,7 +166,7 @@ describe RakutenWebService::Ichiba::Genre do
|
|
162
166
|
end
|
163
167
|
|
164
168
|
specify "should call Product search with genre_id option" do
|
165
|
-
RakutenWebService::Ichiba::Product.
|
169
|
+
expect(RakutenWebService::Ichiba::Product).to receive(:search).with(:genre_id => genre_id)
|
166
170
|
expect { genre.products }.to_not raise_error
|
167
171
|
end
|
168
172
|
end
|
@@ -52,12 +52,16 @@ describe RakutenWebService::Ichiba::Item do
|
|
52
52
|
|
53
53
|
subject { @items.first }
|
54
54
|
|
55
|
-
it {
|
55
|
+
it { is_expected.to be_a RakutenWebService::Ichiba::Item }
|
56
56
|
specify 'shoud be access by key' do
|
57
57
|
expect(subject['itemName']).to eq(expected_json['itemName'])
|
58
58
|
expect(subject['item_name']).to eq(expected_json['itemName'])
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
|
+
describe '#name' do
|
62
|
+
subject { super().name }
|
63
|
+
it { is_expected.to eq(expected_json['itemName']) }
|
64
|
+
end
|
61
65
|
specify 'should have xxx? method if the object has xxx_flag' do
|
62
66
|
expect(subject.tax?).to eq(expected_json['taxFlag'] == 1)
|
63
67
|
end
|
@@ -110,7 +114,7 @@ describe RakutenWebService::Ichiba::Item do
|
|
110
114
|
context 'When TooManyRequest error raised' do
|
111
115
|
let(:client) do
|
112
116
|
c = double('client')
|
113
|
-
c.
|
117
|
+
allow(c).to receive(:get).and_raise(RWS::TooManyRequests)
|
114
118
|
c
|
115
119
|
end
|
116
120
|
|
@@ -151,7 +155,7 @@ describe RakutenWebService::Ichiba::Item do
|
|
151
155
|
|
152
156
|
describe '.ranking' do
|
153
157
|
before do
|
154
|
-
RakutenWebService::Ichiba::RankingItem.
|
158
|
+
expect(RakutenWebService::Ichiba::RankingItem).to receive(:search).with({})
|
155
159
|
end
|
156
160
|
|
157
161
|
specify "call RakutenWebService::Ichiba::RankingItem's search" do
|
@@ -167,7 +171,7 @@ describe RakutenWebService::Ichiba::Item do
|
|
167
171
|
to_return(:body => response.to_json)
|
168
172
|
|
169
173
|
expected_item = response['Items'][0]['Item']
|
170
|
-
RakutenWebService::Ichiba::Genre.
|
174
|
+
expect(RakutenWebService::Ichiba::Genre).to receive('new').with(expected_item['genreId'])
|
171
175
|
end
|
172
176
|
|
173
177
|
subject { RakutenWebService::Ichiba::Item.search(:keyword => 'Ruby').first.genre }
|
@@ -41,8 +41,16 @@ describe RakutenWebService::Ichiba::RankingItem do
|
|
41
41
|
expect(subject['itemName']).to eq(expected_json['itemName'])
|
42
42
|
expect(subject['item_name']).to eq(expected_json['itemName'])
|
43
43
|
end
|
44
|
-
|
45
|
-
|
44
|
+
|
45
|
+
describe '#rank' do
|
46
|
+
subject { super().rank }
|
47
|
+
it { is_expected.to eq(1) }
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#name' do
|
51
|
+
subject { super().name }
|
52
|
+
it { is_expected.to eq(expected_json['itemName']) }
|
53
|
+
end
|
46
54
|
end
|
47
55
|
|
48
56
|
end
|
@@ -46,7 +46,7 @@ describe RakutenWebService::Kobo::Ebook do
|
|
46
46
|
to_return(:body => response.to_json)
|
47
47
|
|
48
48
|
expected_item = response['Items'][0]['Item']
|
49
|
-
RakutenWebService::Kobo::Genre.
|
49
|
+
expect(RakutenWebService::Kobo::Genre).to receive('new').with(expected_item['koboGenreId'])
|
50
50
|
|
51
51
|
RakutenWebService::Kobo::Ebook.search(:title => 'Ruby').first.genre
|
52
52
|
end
|
@@ -21,7 +21,7 @@ describe RakutenWebService::Recipe do
|
|
21
21
|
|
22
22
|
describe '.search' do
|
23
23
|
it 'should not be called' do
|
24
|
-
expect { RWS::Recipe.search(category_id: '10') }.to raise_error
|
24
|
+
expect { RWS::Recipe.search(category_id: '10') }.to raise_error(NoMethodError)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,7 @@ require File.expand_path(File.join(__dir__, '..', 'lib', 'rakuten_web_service'))
|
|
10
10
|
|
11
11
|
require 'webmock/rspec'
|
12
12
|
|
13
|
-
Dir[File.expand_path(File.join(
|
13
|
+
Dir[File.expand_path(File.join(__dir__, "support/**/*.rb"))].each { |f| require f }
|
14
14
|
|
15
15
|
RSpec.configure do |c|
|
16
16
|
c.mock_with :rspec
|
@@ -19,10 +19,6 @@ RSpec.configure do |c|
|
|
19
19
|
WebMock.disable_net_connect!(:allow => "codeclimate.com")
|
20
20
|
end
|
21
21
|
|
22
|
-
c.before :suite, integration: true do
|
23
|
-
WebMock.allow_net_connect!
|
24
|
-
end
|
25
|
-
|
26
22
|
c.after :each do
|
27
23
|
WebMock.reset!
|
28
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rakuten_web_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tatsuya Sato
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 3.5.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.5.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: tapp
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,9 +224,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
224
|
version: 2.1.0
|
225
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - '
|
227
|
+
- - '>='
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
229
|
+
version: '0'
|
230
230
|
requirements: []
|
231
231
|
rubyforge_project:
|
232
232
|
rubygems_version: 2.0.3
|