ruby-dmm 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -57
- data/.rubocop_todo.yml +59 -24
- data/.travis.yml +4 -2
- data/Guardfile +1 -1
- data/README.md +30 -28
- data/lib/ruby-dmm.rb +3 -18
- data/lib/ruby-dmm/client.rb +42 -59
- data/lib/ruby-dmm/response.rb +18 -32
- data/lib/ruby-dmm/version.rb +1 -1
- data/ruby-dmm.gemspec +7 -11
- data/spec/spec_helper.rb +63 -49
- metadata +39 -151
- data/lib/faraday/response/raise_dmm_error.rb +0 -26
- data/lib/faraday_middleware/response/dmm_rashify.rb +0 -34
- data/lib/multi_xml_tweaks.rb +0 -27
- data/lib/ruby-dmm/client/item_list.rb +0 -45
- data/lib/ruby-dmm/configuration.rb +0 -41
- data/lib/ruby-dmm/error.rb +0 -14
- data/lib/ruby-dmm/response/item.rb +0 -70
- data/lib/ruby-dmm/response/item_info.rb +0 -55
- data/spec/client_spec.rb +0 -32
- data/spec/fixtures/com.xml +0 -5987
- data/spec/fixtures/com_digital.xml +0 -1115
- data/spec/fixtures/com_digital_book.xml +0 -3407
- data/spec/fixtures/com_iroiro.xml +0 -1711
- data/spec/fixtures/com_lod.xml +0 -125
- data/spec/fixtures/com_mono.xml +0 -3723
- data/spec/fixtures/com_monthly.xml +0 -2075
- data/spec/fixtures/com_pcsoft.xml +0 -729
- data/spec/fixtures/com_rental.xml +0 -2691
- data/spec/fixtures/r18.xml +0 -4203
- data/spec/fixtures/r18_book.xml +0 -4965
- data/spec/fixtures/r18_digital.xml +0 -26987
- data/spec/fixtures/r18_doujin.xml +0 -2741
- data/spec/fixtures/r18_mono.xml +0 -3723
- data/spec/fixtures/r18_monthly.xml +0 -3515
- data/spec/fixtures/r18_pcgame.xml +0 -3373
- data/spec/fixtures/r18_ppm.xml +0 -2883
- data/spec/fixtures/r18_rental.xml +0 -12371
- data/spec/fixtures/request_error.xml +0 -24
- data/spec/fixtures/zero_items.xml +0 -37
- data/spec/response/item_info_spec.rb +0 -89
- data/spec/response/item_spec.rb +0 -67
- data/spec/response_spec.rb +0 -77
@@ -1,24 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="euc-jp"?>
|
2
|
-
<response>
|
3
|
-
<request>
|
4
|
-
<parameters>
|
5
|
-
<parameter name="api_id" value="XXXXXXXXXXXXXXXXXXXX" />
|
6
|
-
<parameter name="affiliate_id" value="xxxxx-990" />
|
7
|
-
<parameter name="operation" value="ItemList" />
|
8
|
-
<parameter name="version" value="2.00" />
|
9
|
-
<parameter name="timestamp" value="2013-01-01 00:00:00 +0900" />
|
10
|
-
<parameter name="site" value="DMM.co.jp" />
|
11
|
-
<parameter name="keyword" value="key" />
|
12
|
-
<parameter name="sort" value="unknown" />
|
13
|
-
</parameters>
|
14
|
-
</request>
|
15
|
-
<result>
|
16
|
-
<message>REQUEST ERROR</message>
|
17
|
-
<errors>
|
18
|
-
<error>
|
19
|
-
<name>sort</name>
|
20
|
-
<value>PARAMETER ILLEGAL</value>
|
21
|
-
</error>
|
22
|
-
</errors>
|
23
|
-
</result>
|
24
|
-
</response>
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="euc-jp"?>
|
2
|
-
|
3
|
-
<response>
|
4
|
-
|
5
|
-
<request>
|
6
|
-
|
7
|
-
<parameters>
|
8
|
-
|
9
|
-
<parameter name="api_id" value="apiaccount" />
|
10
|
-
|
11
|
-
<parameter name="affiliate_id" value="affiliate-999" />
|
12
|
-
|
13
|
-
<parameter name="operation" value="ItemList" />
|
14
|
-
|
15
|
-
<parameter name="version" value="2.00" />
|
16
|
-
|
17
|
-
<parameter name="timestamp" value="2012-12-01 00:00:00" />
|
18
|
-
|
19
|
-
<parameter name="site" value="DMM.com" />
|
20
|
-
|
21
|
-
<parameter name="keyword" value="item_not_found" />
|
22
|
-
|
23
|
-
</parameters>
|
24
|
-
|
25
|
-
</request>
|
26
|
-
|
27
|
-
<result>
|
28
|
-
|
29
|
-
<result_count>0</result_count>
|
30
|
-
|
31
|
-
<total_count>0</total_count>
|
32
|
-
|
33
|
-
<first_position>0</first_position>
|
34
|
-
|
35
|
-
</result>
|
36
|
-
|
37
|
-
</response>
|
@@ -1,89 +0,0 @@
|
|
1
|
-
# vim: ts=2 sts=2 et sw=2 ft=ruby fileencoding=utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe DMM::Response::ItemInfo do
|
5
|
-
|
6
|
-
def complex_hash
|
7
|
-
{
|
8
|
-
'actor' => [
|
9
|
-
{ 'name' => 'ダニエル・ラドクリフ', 'id' => '60257' },
|
10
|
-
{ 'name' => 'だにえるらどくりふ', 'id' => '60257_ruby' },
|
11
|
-
{ 'name' => 'メガネ君', 'id' => '60257_classify' },
|
12
|
-
{ 'name' => 'ルパート・グリント', 'id' => '60458' },
|
13
|
-
{ 'name' => 'るぱーとぐりんと', 'id' => '60458_ruby' },
|
14
|
-
{ 'name' => 'リチャード・ハリス', 'id' => '61833' },
|
15
|
-
{ 'name' => 'りちゃーどはりす', 'id' => '61833_ruby' },
|
16
|
-
{ 'name' => 'エマ・ワトソン', 'id' => '60074' },
|
17
|
-
{ 'name' => 'えまわとそん', 'id' => '60074_ruby' },
|
18
|
-
],
|
19
|
-
}
|
20
|
-
end
|
21
|
-
|
22
|
-
def simple_hash
|
23
|
-
{
|
24
|
-
'label' => { 'name' => 'ワーナー・ホーム・ビデオ', 'id' => '60016' },
|
25
|
-
'genre' => { 'name' => 'ファンタジー', 'id' => '71009' },
|
26
|
-
'series' => { 'name' => 'ハリー・ポッター', 'id' => '60029' },
|
27
|
-
'maker' => { 'name' => 'ワーナー・ホーム・ビデオ', 'id' => '45578' },
|
28
|
-
}
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '.integrate' do
|
32
|
-
context 'simple_hash' do
|
33
|
-
subject { DMM::Response::ItemInfo.integrate(complex_hash['actor']) }
|
34
|
-
it 'integrates name and ruby and more (classify etc...) by id' do
|
35
|
-
actor = subject.find { |a| a['id'] == '60257' }
|
36
|
-
expect(actor['name']).to eq('ダニエル・ラドクリフ')
|
37
|
-
expect(actor['ruby']).to eq('だにえるらどくりふ')
|
38
|
-
expect(actor['classify']).to eq('メガネ君')
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context 'simple_hash' do
|
43
|
-
subject { DMM::Response::ItemInfo.integrate(simple_hash['label']) }
|
44
|
-
it 'runs collectry' do
|
45
|
-
label = subject.first
|
46
|
-
expect(label['id']).to eq('60016')
|
47
|
-
expect(label['name']).to eq('ワーナー・ホーム・ビデオ')
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe 'define method for any keys' do
|
53
|
-
context 'complex_hash' do
|
54
|
-
subject { DMM::Response::ItemInfo.new(complex_hash) }
|
55
|
-
|
56
|
-
describe '#actors' do
|
57
|
-
subject { super().actors }
|
58
|
-
it { is_expected.not_to be_empty }
|
59
|
-
end
|
60
|
-
describe 'actors' do
|
61
|
-
it 'integrates name and ruby by id' do
|
62
|
-
actor = subject.actors.find { |a| a['id'] == '60257' }
|
63
|
-
expect(actor['name']).to eq('ダニエル・ラドクリフ')
|
64
|
-
expect(actor['ruby']).to eq('だにえるらどくりふ')
|
65
|
-
expect(actor['classify']).to eq('メガネ君')
|
66
|
-
|
67
|
-
actor = subject.actors.find { |a| a['id'] == '60074' }
|
68
|
-
expect(actor['name']).to eq('エマ・ワトソン')
|
69
|
-
expect(actor['ruby']).to eq('えまわとそん')
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context 'simple_hash' do
|
75
|
-
subject do
|
76
|
-
DMM::Response::ItemInfo.new(simple_hash)
|
77
|
-
end
|
78
|
-
it { is_expected.to be }
|
79
|
-
|
80
|
-
describe 'director' do
|
81
|
-
it 'respond to given keys' do
|
82
|
-
simple_hash.keys.each do |key|
|
83
|
-
expect(subject).to respond_to(key)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
data/spec/response/item_spec.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# vim: ts=2 sts=2 et sw=2 ft=ruby fileencoding=utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe DMM::Response::Item do
|
5
|
-
before :all do
|
6
|
-
stub_get.to_return(xml_response('com.xml'))
|
7
|
-
@item = DMM.new.item_list.result.items.first
|
8
|
-
end
|
9
|
-
|
10
|
-
describe '#images' do
|
11
|
-
subject { @item.images }
|
12
|
-
it { is_expected.to be }
|
13
|
-
|
14
|
-
describe '[:list]' do
|
15
|
-
subject { super()[:list] }
|
16
|
-
it { is_expected.to eq('http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659pt.jpg') }
|
17
|
-
end
|
18
|
-
|
19
|
-
describe '[:small]' do
|
20
|
-
subject { super()[:small] }
|
21
|
-
it { is_expected.to eq('http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659ps.jpg') }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe '[:large]' do
|
25
|
-
subject { super()[:large] }
|
26
|
-
it { is_expected.to eq('http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659pl.jpg') }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe 'define alias methods' do
|
31
|
-
subject do
|
32
|
-
item = DMM::Response::Item::ALIAS_METHOD_MAP.keys.inject({}) { |h, key| h.merge(key => 1) }
|
33
|
-
DMM::Response::Item.new(item)
|
34
|
-
end
|
35
|
-
DMM::Response::Item::ALIAS_METHOD_MAP.values.each do |name|
|
36
|
-
it { is_expected.to respond_to(name) }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe '#large_images' do
|
41
|
-
subject do
|
42
|
-
item = {
|
43
|
-
:sample_image_url => {
|
44
|
-
:sample_s => {
|
45
|
-
:image => ['http://pics.dmm.co.jp/digital/video/aaa00000/aaa00000-9.jpg'],
|
46
|
-
},
|
47
|
-
}
|
48
|
-
}
|
49
|
-
DMM::Response::Item.new(item)
|
50
|
-
end
|
51
|
-
|
52
|
-
describe '#large_images' do
|
53
|
-
subject { super().large_images }
|
54
|
-
it { is_expected.to eq(['http://pics.dmm.co.jp/digital/video/aaa00000/aaa00000jp-9.jpg']) }
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe 'define method for any keys' do
|
59
|
-
subject do
|
60
|
-
item = {
|
61
|
-
:not_defined_key => true,
|
62
|
-
}
|
63
|
-
DMM::Response::Item.new(item)
|
64
|
-
end
|
65
|
-
it { is_expected.to respond_to(:not_defined_key) }
|
66
|
-
end
|
67
|
-
end
|
data/spec/response_spec.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
# vim: ts=2 sts=2 et sw=2 ft=ruby fileencoding=utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe DMM::Response do
|
5
|
-
before :all do
|
6
|
-
stub_get.to_return(xml_response('com.xml'))
|
7
|
-
@response = DMM.new.item_list
|
8
|
-
end
|
9
|
-
|
10
|
-
describe 'Response' do
|
11
|
-
subject { @response }
|
12
|
-
it { is_expected.to respond_to(:request) }
|
13
|
-
it { is_expected.to respond_to(:result) }
|
14
|
-
|
15
|
-
describe '#request' do
|
16
|
-
subject { super().request }
|
17
|
-
it { is_expected.to be_a(Hash) }
|
18
|
-
end
|
19
|
-
|
20
|
-
describe '#result' do
|
21
|
-
subject { super().result }
|
22
|
-
it { is_expected.to be_a(DMM::Response::Result) }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe DMM::Response::Result do
|
28
|
-
before :each do
|
29
|
-
stub_get.to_return(xml_response('com.xml'))
|
30
|
-
@result = DMM.new.item_list.result
|
31
|
-
end
|
32
|
-
|
33
|
-
describe '#items' do
|
34
|
-
context 'items.size > 0' do
|
35
|
-
subject { @result }
|
36
|
-
|
37
|
-
describe '#items' do
|
38
|
-
subject { super().items }
|
39
|
-
it { is_expected.to be_an(Array) }
|
40
|
-
end
|
41
|
-
specify do
|
42
|
-
subject.items.each do |item|
|
43
|
-
expect(item).to be_a(DMM::Response::Item)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'items.size == 0' do
|
49
|
-
before do
|
50
|
-
stub_get.to_return(xml_response('zero_items.xml'))
|
51
|
-
@result = DMM.new.item_list.result
|
52
|
-
end
|
53
|
-
|
54
|
-
subject { @result }
|
55
|
-
|
56
|
-
describe '#items' do
|
57
|
-
subject { super().items }
|
58
|
-
it { is_expected.to be_an(Array) }
|
59
|
-
end
|
60
|
-
specify do
|
61
|
-
expect(subject.items.size).to eq(0)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
describe 'instance methods' do
|
67
|
-
subject { @result }
|
68
|
-
(DMM::Response::Result::RESULT_KEYS - [:items]).each do |key|
|
69
|
-
it { is_expected.to respond_to(key) }
|
70
|
-
|
71
|
-
describe key do
|
72
|
-
subject { super().send(key) }
|
73
|
-
it { is_expected.to be_a(Integer) }
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|