ruby-dmm 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/ruby-dmm/response/item.rb +22 -24
- data/lib/ruby-dmm/version.rb +1 -1
- data/spec/response/item_spec.rb +25 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05ff67107c04c13451281c2ddce1037f703bc594
|
4
|
+
data.tar.gz: c169bc92ef677da3de5b75d02d93b3bd09cf19da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8c039f51ec9c66217dfba522a124fb1550269ba32178d4c9c7efd7bf9e3a1b02b52e935c76819162266c37d4408fbbe3cb9d539648fa37b3f79a61bf322fc89
|
7
|
+
data.tar.gz: 032538ccbf823e0698bf0e280b37b47f1cd29a0ce7421ebdf4523bfa333c0bb86ce3d361a6527f2dbf8fb07283000b9ee67aa61fab7ca9d457b56da8127134b6
|
@@ -4,41 +4,29 @@ require 'ruby-dmm/response/item_info'
|
|
4
4
|
module DMM
|
5
5
|
class Response
|
6
6
|
class Item
|
7
|
-
|
8
|
-
|
9
|
-
:affiliate_url_sp,
|
10
|
-
:bandaiinfo,
|
11
|
-
:category_name,
|
12
|
-
:cdinfo,
|
13
|
-
:content_id,
|
14
|
-
:floor_name,
|
15
|
-
:isbn,
|
16
|
-
:jancode,
|
17
|
-
:maker_product,
|
18
|
-
:product_id,
|
19
|
-
:service_name,
|
20
|
-
:stock,
|
21
|
-
:title,
|
22
|
-
:url,
|
23
|
-
:url_sp,
|
24
|
-
]
|
25
|
-
attr_reader *KEYS
|
26
|
-
attr_reader *[
|
7
|
+
|
8
|
+
PREDEFINED_KEYS = [
|
27
9
|
:date,
|
28
10
|
:iteminfo,
|
29
|
-
:large_images,
|
30
11
|
:list_price,
|
31
12
|
:price,
|
32
13
|
:price_all,
|
33
14
|
:prices,
|
34
15
|
:small_images,
|
35
16
|
]
|
36
|
-
|
37
|
-
|
38
|
-
|
17
|
+
attr_reader *PREDEFINED_KEYS
|
18
|
+
alias_method :item_info, :iteminfo
|
19
|
+
alias_method :info, :iteminfo
|
20
|
+
|
21
|
+
ALIAS_METHOD_MAP = {
|
22
|
+
:bandaiinfo => :bandai_info,
|
23
|
+
:cdinfo => :cd_info,
|
24
|
+
:image_url => :images,
|
25
|
+
}
|
39
26
|
|
40
27
|
def initialize(item)
|
41
28
|
item.each do |key, value|
|
29
|
+
key = key.to_sym
|
42
30
|
case key
|
43
31
|
when :date
|
44
32
|
@date = Time.parse(value) if value
|
@@ -49,6 +37,16 @@ module DMM
|
|
49
37
|
when :prices
|
50
38
|
setup_prices(value) if value
|
51
39
|
else
|
40
|
+
self.class.class_eval do
|
41
|
+
unless method_defined?(key)
|
42
|
+
define_method "#{key}" do
|
43
|
+
instance_variable_get("@#{key}")
|
44
|
+
end
|
45
|
+
if name = ALIAS_METHOD_MAP[key.to_sym]
|
46
|
+
alias_method name, key.to_sym
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
52
50
|
instance_variable_set("@#{key}", item[key])
|
53
51
|
end
|
54
52
|
end
|
data/lib/ruby-dmm/version.rb
CHANGED
data/spec/response/item_spec.rb
CHANGED
@@ -7,10 +7,21 @@ describe DMM::Response::Item do
|
|
7
7
|
@item = DMM::new.item_list.result.items.first
|
8
8
|
end
|
9
9
|
|
10
|
-
describe '
|
11
|
-
subject { @item }
|
12
|
-
|
13
|
-
|
10
|
+
describe '#images' do
|
11
|
+
subject { @item.images }
|
12
|
+
it { should be }
|
13
|
+
its([:list]) { should == 'http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659pt.jpg' }
|
14
|
+
its([:small]) { should == 'http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659ps.jpg' }
|
15
|
+
its([:large]) { should == 'http://pics.dmm.com/mono/movie/n_616dlr22659/n_616dlr22659pl.jpg' }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'define alias methods' do
|
19
|
+
subject do
|
20
|
+
item = DMM::Response::Item::ALIAS_METHOD_MAP.keys.inject({}) {|h, key| h.merge(key => 1) }
|
21
|
+
DMM::Response::Item.new(item)
|
22
|
+
end
|
23
|
+
DMM::Response::Item::ALIAS_METHOD_MAP.values.each do |name|
|
24
|
+
it { should respond_to(name) }
|
14
25
|
end
|
15
26
|
end
|
16
27
|
|
@@ -27,4 +38,14 @@ describe DMM::Response::Item do
|
|
27
38
|
end
|
28
39
|
its(:large_images) { should == ["http://pics.dmm.co.jp/digital/video/aaa00000/aaa00000jp-9.jpg"] }
|
29
40
|
end
|
41
|
+
|
42
|
+
describe 'define method for any keys' do
|
43
|
+
subject do
|
44
|
+
item = {
|
45
|
+
:not_defined_key => true,
|
46
|
+
}
|
47
|
+
DMM::Response::Item.new(item)
|
48
|
+
end
|
49
|
+
it { should respond_to(:not_defined_key) }
|
50
|
+
end
|
30
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dmm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- meganemura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|