rakuten_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +14 -0
  3. data/Guardfile +5 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +151 -0
  6. data/Rakefile +1 -0
  7. data/examples/show_ranking.rb +20 -0
  8. data/lib/rakuten_api/base/client.rb +41 -0
  9. data/lib/rakuten_api/base/item.rb +55 -0
  10. data/lib/rakuten_api/base/model.rb +41 -0
  11. data/lib/rakuten_api/base/params.rb +72 -0
  12. data/lib/rakuten_api/base/response.rb +39 -0
  13. data/lib/rakuten_api/configuration.rb +27 -0
  14. data/lib/rakuten_api/dummy_module.rb +6 -0
  15. data/lib/rakuten_api/error.rb +14 -0
  16. data/lib/rakuten_api/genre_search/client.rb +41 -0
  17. data/lib/rakuten_api/genre_search/model.rb +22 -0
  18. data/lib/rakuten_api/genre_search/response.rb +43 -0
  19. data/lib/rakuten_api/item_ranking/client.rb +29 -0
  20. data/lib/rakuten_api/item_ranking/model.rb +17 -0
  21. data/lib/rakuten_api/item_ranking/response.rb +57 -0
  22. data/lib/rakuten_api/item_search/client.rb +34 -0
  23. data/lib/rakuten_api/item_search/model.rb +15 -0
  24. data/lib/rakuten_api/item_search/response.rb +71 -0
  25. data/lib/rakuten_api/version.rb +3 -0
  26. data/lib/rakuten_api.rb +45 -0
  27. data/rakuten_api.gemspec +24 -0
  28. data/spec/fixtures/vcr_cassettes/genre_search_response.yml +75 -0
  29. data/spec/fixtures/vcr_cassettes/genre_search_response_0.yml +75 -0
  30. data/spec/fixtures/vcr_cassettes/genre_search_response_551169.yml +62 -0
  31. data/spec/fixtures/vcr_cassettes/genre_search_response_551172.yml +62 -0
  32. data/spec/fixtures/vcr_cassettes/item_ranking_error_response.yml +56 -0
  33. data/spec/fixtures/vcr_cassettes/item_ranking_response.yml +853 -0
  34. data/spec/fixtures/vcr_cassettes/item_ranking_response_next_ranking.yml +789 -0
  35. data/spec/fixtures/vcr_cassettes/item_ranking_response_prev_ranking.yml +853 -0
  36. data/spec/fixtures/vcr_cassettes/item_search_response.yml +116 -0
  37. data/spec/fixtures/vcr_cassettes/item_search_response_next_page.yml +89 -0
  38. data/spec/fixtures/vcr_cassettes/item_search_response_prev_page.yml +107 -0
  39. data/spec/rakuten_api/base/params_spec.rb +42 -0
  40. data/spec/rakuten_api/genre_search/client_spec.rb +37 -0
  41. data/spec/rakuten_api/genre_search/model_spec.rb +32 -0
  42. data/spec/rakuten_api/genre_search/response_spec.rb +47 -0
  43. data/spec/rakuten_api/item_ranking/client_spec.rb +19 -0
  44. data/spec/rakuten_api/item_ranking/model_spec.rb +19 -0
  45. data/spec/rakuten_api/item_ranking/response_spec.rb +64 -0
  46. data/spec/rakuten_api/item_search/client_spec.rb +35 -0
  47. data/spec/rakuten_api/item_search/model_spec.rb +33 -0
  48. data/spec/rakuten_api/item_search/response_spec.rb +73 -0
  49. data/spec/spec_helper.rb +34 -0
  50. metadata +181 -0
@@ -0,0 +1,17 @@
1
+ # coding: utf-8
2
+
3
+ module RakutenApi
4
+ module ItemRanking
5
+ class Model < ::RakutenApi::ItemSearch::Model
6
+ include RakutenApi.constantize 'item_ranking_module'
7
+ include ::RakutenApi::Base::Item
8
+
9
+ attr_accessor :rank
10
+ attr_accessor :carrier
11
+
12
+ def self.casting
13
+ ITEM_CASTING
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,57 @@
1
+ # coding: utf-8
2
+
3
+ module RakutenApi
4
+ module ItemRanking
5
+ class Response < ::RakutenApi::Base::Response
6
+ attr_reader :title
7
+ attr_reader :last_build_date
8
+ attr_reader :page
9
+
10
+ def initialize(faraday_response = nil, params = nil)
11
+ super(faraday_response)
12
+ @request_params = params
13
+ parse_body
14
+ end
15
+
16
+ def next_ranking
17
+ @request_params['page'] = @page + 1
18
+ new_request
19
+ end
20
+
21
+ def prev?
22
+ @page > 1
23
+ end
24
+
25
+ def prev_ranking
26
+ return nil unless prev?
27
+ @request_params['page'] = @page - 1
28
+ new_request
29
+ end
30
+
31
+ def new_request
32
+ Client.new do |params|
33
+ @request_params.each_pair do |k, v|
34
+ params.add_param k, v
35
+ end
36
+ end.request
37
+ end
38
+
39
+ def parse_body
40
+ @title = @body['title']
41
+ @last_build_date = DateTime.rfc2822(@body['lastBuildDate']) rescue nil
42
+ @page = @request_params['page'] if @request_params.is_a? Hash
43
+ @page ||= 1
44
+ end
45
+
46
+ def simple_mapping
47
+ [] unless @body.include? "Items"
48
+ [].tap do |result|
49
+ @body["Items"].each do |f|
50
+ next unless f.include? 'Item'
51
+ result << Model.from_hash(f['Item'])
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+
3
+ module RakutenApi
4
+ module ItemSearch
5
+ class Client < ::RakutenApi::Base::Client
6
+ REQUEST_PATH = "/services/api/IchibaItem/Search/20120723"
7
+
8
+ def get
9
+ connection.get(REQUEST_PATH, params)
10
+ end
11
+
12
+ def request
13
+ Response.new(get, params.clone)
14
+ end
15
+
16
+ def init_params(application_id, affiliate_id)
17
+ @params = Params.new(application_id, affiliate_id)
18
+ end
19
+
20
+ class Params < ::RakutenApi::Base::Params
21
+ VALID_NAMES = %w(keyword shopCode genreId hits page sort minPrice maxPrice availability field
22
+ carrier imageFlag orFlag NGKeyword purchaseType shipOverseasFlag shipOverseasArea
23
+ asurakuFlag asurakuArea pointRateFlag pointRate postageFlag creditCardFlag itemCode
24
+ giftFlag hasReviewFlag maxAffiliateRate minAffiliateRate hasMovieFlag
25
+ pamphletFlag appointDeliveryDateFlag elements
26
+ ).freeze
27
+
28
+ def valid_names
29
+ @@valid_names ||= (VALID_NAMES + BASE_VALID_NAMES).freeze
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,15 @@
1
+ # coding: utf-8
2
+
3
+ module RakutenApi
4
+ module ItemSearch
5
+ class Model < ::RakutenApi::Base::Model
6
+ include RakutenApi.constantize 'item_model'
7
+ include ::RakutenApi::Base::Item
8
+
9
+ def self.casting
10
+ ITEM_CASTING
11
+ end
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,71 @@
1
+ # coding: utf-8
2
+
3
+ require 'json'
4
+
5
+ module RakutenApi
6
+ module ItemSearch
7
+ class Response < ::RakutenApi::Base::Response
8
+ attr_reader :hits
9
+ attr_reader :count
10
+ attr_reader :first
11
+ attr_reader :last
12
+ attr_reader :carrier
13
+ attr_reader :page_count
14
+ attr_reader :page
15
+
16
+ def initialize(faraday_response = nil, params = nil)
17
+ super(faraday_response)
18
+ parse_body(@body)
19
+ @request_params = params
20
+ end
21
+
22
+ def next?
23
+ @page < @page_count
24
+ end
25
+
26
+ def prev?
27
+ @page > 1
28
+ end
29
+
30
+ def get_next_page
31
+ nil unless next?
32
+ @request_params[:page] = @page + 1
33
+ new_request
34
+ end
35
+
36
+ def get_prev_page
37
+ nil unless prev?
38
+ @request_params[:page] = @page - 1
39
+ new_request
40
+ end
41
+
42
+ def new_request
43
+ Client.new do |params|
44
+ @request_params.each_pair do |k, v|
45
+ params.add_param k, v
46
+ end
47
+ end.request
48
+ end
49
+
50
+ def parse_body(data)
51
+ @count = data['count']
52
+ @page = data['page']
53
+ @first = data['first']
54
+ @last = data['last']
55
+ @hits = data['hits']
56
+ @carrier = data['carrier']
57
+ @page_count = data['pageCount']
58
+ end
59
+
60
+ def simple_mapping
61
+ [] unless @body.include? "Items"
62
+ [].tap do |result|
63
+ @body["Items"].each do |f|
64
+ next unless f.include? 'Item'
65
+ result << Model.from_hash(f['Item'])
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,3 @@
1
+ module RakutenApi
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,45 @@
1
+ require "rakuten_api/version"
2
+ require "rakuten_api/dummy_module"
3
+ require "rakuten_api/configuration"
4
+ require "rakuten_api/base/model"
5
+ require "rakuten_api/base/client"
6
+ require "rakuten_api/base/params"
7
+ require "rakuten_api/base/response"
8
+ require "rakuten_api/base/item"
9
+
10
+ require "rakuten_api/error"
11
+ require "rakuten_api/item_search/client"
12
+ require "rakuten_api/item_search/response"
13
+ require "rakuten_api/genre_search/client"
14
+ require "rakuten_api/genre_search/response"
15
+ require "rakuten_api/item_ranking/client"
16
+ require "rakuten_api/item_ranking/response"
17
+
18
+ module RakutenApi
19
+ APPLICATION_END_POINT = "https://app.rakuten.co.jp/"
20
+ class << self
21
+ def configure
22
+ yield configuration
23
+ end
24
+
25
+ def configuration
26
+ @configuration ||= Configuration.new
27
+ end
28
+ alias :config :configuration
29
+
30
+ def constantize(name)
31
+ names = config.send(name).split('::')
32
+ names.shift if names.empty? || names.first.empty?
33
+
34
+ constant = Object
35
+ names.each do |name|
36
+ constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
37
+ end
38
+ constant
39
+ end
40
+ end
41
+ end
42
+
43
+ require "rakuten_api/genre_search/model"
44
+ require "rakuten_api/item_search/model"
45
+ require "rakuten_api/item_ranking/model"
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rakuten_api/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "rakuten_api"
8
+ gem.version = RakutenApi::VERSION
9
+ gem.authors = ["kengos"]
10
+ gem.email = ["kengo@kengos.jp"]
11
+ gem.description = %q{Rakuten Api}
12
+ gem.summary = %q{Rakuten Api(http://webservice.rakuten.co.jp/)}
13
+ gem.homepage = "https://github.com/kengos/rakuten_api"
14
+ gem.license = 'MIT'
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+ gem.add_runtime_dependency 'faraday', '~> 0.8.5'
21
+ gem.add_development_dependency 'rspec', '~> 2.12'
22
+ gem.add_development_dependency 'vcr', '~> 2.4.0'
23
+ gem.add_development_dependency 'webmock', '~> 1.9.2'
24
+ end
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20120723?applicationId=16d8dfe13fde99ac5479d789764d2f7a&genreId=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - ! '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VHVlLCAxOSBGZWIgMjAxMyAxMTozMjowOSBHTVQ=
25
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
26
+ - !binary |-
27
+ Kg==
28
+ !binary "Q2FjaGUtQ29udHJvbA==":
29
+ - !binary |-
30
+ bm8tc3RvcmU=
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04
34
+ !binary "Q29udGVudC1MYW5ndWFnZQ==":
35
+ - !binary |-
36
+ amEtSlA=
37
+ !binary "VmFyeQ==":
38
+ - !binary |-
39
+ QWNjZXB0LUVuY29kaW5n
40
+ !binary "Q29udGVudC1FbmNvZGluZw==":
41
+ - !binary |-
42
+ Z3ppcA==
43
+ !binary "Q29udGVudC1MZW5ndGg=":
44
+ - !binary |-
45
+ OTIw
46
+ !binary "Q29ubmVjdGlvbg==":
47
+ - !binary |-
48
+ Y2xvc2U=
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAAA51WyU4bQRT8lzlzmJ7FHnMNF6QopwgpijigYCWRCIrIckFI
53
+ TDcGL4BN2GSIQ1hMzL4YAnjAfEx7tr/I654B5DaHdnywesZy9et6VdVvXPk8
54
+ NJYe/fpF6X072KO8+zbGnpTeceV9enQs3T+s9Ko90frV0Ke00qso8ePL9Pf0
55
+ CPw6Af/68HFkGP4HGOPRQxuAhlDS0NpRXg9Q4lC8T8ktJTMUb/M1vDmgZJOS
56
+ PWEXNDHR8xw0UlU9idqhKTmMIQEb31CyTDFAEoqvKPlDSb0LbJRox/ZOL3iV
57
+ dwyVZCnJUQJ11yk+kUdVVbMdNcifcdTDmA3AI05f/xtJSBOpKVUgwVutej8P
58
+ w8wPQPKnbsPMvCSYpqooobeDta7n3MKyvwSMOq27IrWb1J6SPi/SkC52aI31
59
+ g/HnPK3xKW9SQ/bUppXSUgKRmWWvjINatgvmkCkWt8jbAEJ0vIsCUCjLHEog
60
+ vUOLJX4oOJrjnhb93B4/8goonHc5F64vBOc1ee1oWrJ9h3B7w1205ZuBkCFw
61
+ 5uR5TSWKd+RlbJoIJYRSmNkAg5E3xSDtfFBcdI9KXSjFEMLmRR9zwgD79qp3
62
+ blmWKVZeUiyPBQs4tfHficAPLUjOnXWClUNoAXdwne9wDzxG6m45heDoSr69
63
+ KV2A95vz7vFNjM3CDOp2wt0yBJE8rYZuCUUf7VK7zlEveb8WObbTuq+EZVkD
64
+ QrmmLjobH0Um5pIqP3gJ1r8YLaRAyTQkcxeOEi1O8TUlVYprPHg5Nt5ifOPo
65
+ MOylbDsh31Nqhxv8pVrczgdPRG9kURNaQhek5x7/DdedbmRgidqd5KXUHnPT
66
+ tatuQ1ZZLCsN49lWEThp/fHILE3KsIkT7N/7pWlYuxl5+YI7xE3sPMWY2psU
67
+ E87o+pMk8Dlf/JaHV5NqZ+KQylPiMCXsxvcy3pLn21I7yNnh+TzNBAWowPdJ
68
+ Bahgi+K8fzEnrWAzaQkegas54jvKfhZtKzNe9j6C93KFIH/dzWUtTFZw7bNG
69
+ Avb+7EMmbXBTyo8oSLc65olMsMnw3JmGe3vJe2lTfBbpURLYUDXL7JgFZpil
70
+ WTgcxPnJWIdv+QlDNTpzKOpfPtJa67rgVyZ50Xn+U5bpBNwkLRJwkGUJk0JY
71
+ kc9g9hGSvdyE7ruNVTahXRXdUjacXAvO+YCAj6P5sgt4LSHyusDG1JhRx12o
72
+ Bc2Gt7fx7B06OPEP3pPhCAgMAAA=
73
+ http_version:
74
+ recorded_at: Tue, 19 Feb 2013 11:32:09 GMT
75
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20120723?applicationId=16d8dfe13fde99ac5479d789764d2f7a&genreId=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - ! '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VHVlLCAxOSBGZWIgMjAxMyAxMzoxNjoyMiBHTVQ=
25
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
26
+ - !binary |-
27
+ Kg==
28
+ !binary "Q2FjaGUtQ29udHJvbA==":
29
+ - !binary |-
30
+ bm8tc3RvcmU=
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04
34
+ !binary "Q29udGVudC1MYW5ndWFnZQ==":
35
+ - !binary |-
36
+ amEtSlA=
37
+ !binary "VmFyeQ==":
38
+ - !binary |-
39
+ QWNjZXB0LUVuY29kaW5n
40
+ !binary "Q29udGVudC1FbmNvZGluZw==":
41
+ - !binary |-
42
+ Z3ppcA==
43
+ !binary "Q29udGVudC1MZW5ndGg=":
44
+ - !binary |-
45
+ OTIw
46
+ !binary "Q29ubmVjdGlvbg==":
47
+ - !binary |-
48
+ Y2xvc2U=
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAAA51WyU4bQRT8lzlzmJ7FHnMNF6QopwgpijigYCWRCIrIckFI
53
+ TDcGL4BN2GSIQ1hMzL4YAnjAfEx7tr/I654B5DaHdnywesZy9et6VdVvXPk8
54
+ NJYe/fpF6X072KO8+zbGnpTeceV9enQs3T+s9Ko90frV0Ke00qso8ePL9Pf0
55
+ CPw6Af/68HFkGP4HGOPRQxuAhlDS0NpRXg9Q4lC8T8ktJTMUb/M1vDmgZJOS
56
+ PWEXNDHR8xw0UlU9idqhKTmMIQEb31CyTDFAEoqvKPlDSb0LbJRox/ZOL3iV
57
+ dwyVZCnJUQJ11yk+kUdVVbMdNcifcdTDmA3AI05f/xtJSBOpKVUgwVutej8P
58
+ w8wPQPKnbsPMvCSYpqooobeDta7n3MKyvwSMOq27IrWb1J6SPi/SkC52aI31
59
+ g/HnPK3xKW9SQ/bUppXSUgKRmWWvjINatgvmkCkWt8jbAEJ0vIsCUCjLHEog
60
+ vUOLJX4oOJrjnhb93B4/8goonHc5F64vBOc1ee1oWrJ9h3B7w1205ZuBkCFw
61
+ 5uR5TSWKd+RlbJoIJYRSmNkAg5E3xSDtfFBcdI9KXSjFEMLmRR9zwgD79qp3
62
+ blmWKVZeUiyPBQs4tfHficAPLUjOnXWClUNoAXdwne9wDzxG6m45heDoSr69
63
+ KV2A95vz7vFNjM3CDOp2wt0yBJE8rYZuCUUf7VK7zlEveb8WObbTuq+EZVkD
64
+ QrmmLjobH0Um5pIqP3gJ1r8YLaRAyTQkcxeOEi1O8TUlVYprPHg5Nt5ifOPo
65
+ MOylbDsh31Nqhxv8pVrczgdPRG9kURNaQhek5x7/DdedbmRgidqd5KXUHnPT
66
+ tatuQ1ZZLCsN49lWEThp/fHILE3KsIkT7N/7pWlYuxl5+YI7xE3sPMWY2psU
67
+ E87o+pMk8Dlf/JaHV5NqZ+KQylPiMCXsxvcy3pLn21I7yNnh+TzNBAWowPdJ
68
+ Bahgi+K8fzEnrWAzaQkegas54jvKfhZtKzNe9j6C93KFIH/dzWUtTFZw7bNG
69
+ Avb+7EMmbXBTyo8oSLc65olMsMnw3JmGe3vJe2lTfBbpURLYUDXL7JgFZpil
70
+ WTgcxPnJWIdv+QlDNTpzKOpfPtJa67rgVyZ50Xn+U5bpBNwkLRJwkGUJk0JY
71
+ kc9g9hGSvdyE7ruNVTahXRXdUjacXAvO+YCAj6P5sgt4LSHyusDG1JhRx12o
72
+ Bc2Gt7fx7B06OPEP3pPhCAgMAAA=
73
+ http_version:
74
+ recorded_at: Tue, 19 Feb 2013 13:16:22 GMT
75
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,62 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20120723?applicationId=16d8dfe13fde99ac5479d789764d2f7a&genreId=551169
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - ! '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VHVlLCAxOSBGZWIgMjAxMyAxMzoyNToxNCBHTVQ=
25
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
26
+ - !binary |-
27
+ Kg==
28
+ !binary "Q2FjaGUtQ29udHJvbA==":
29
+ - !binary |-
30
+ bm8tc3RvcmU=
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04
34
+ !binary "Q29udGVudC1MYW5ndWFnZQ==":
35
+ - !binary |-
36
+ amEtSlA=
37
+ !binary "VmFyeQ==":
38
+ - !binary |-
39
+ QWNjZXB0LUVuY29kaW5n
40
+ !binary "Q29udGVudC1FbmNvZGluZw==":
41
+ - !binary |-
42
+ Z3ppcA==
43
+ !binary "Q29udGVudC1MZW5ndGg=":
44
+ - !binary |-
45
+ MzU4
46
+ !binary "Q29ubmVjdGlvbg==":
47
+ - !binary |-
48
+ Y2xvc2U=
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAAA5WTzUrDQBSF32XWWWSGpGnzBoL4AtJFsYMKtUj92YSAySDU
53
+ H3BhiRSVorQhQlupRZQG6cNMJ5O8hdPETZNG0t3cC/Pdc+ecMcBxrYWbpydA
54
+ 361KYO+stayAboB93GzhrTrQVRXCUkVKGju1Iwx0wG790Bmye4sSn9pTSqbU
55
+ nlP7nZK26Cz8m3D0Bf6ubONz3AA6NAX+4LBRFwPEMCMpMpM0lJnEu3botYPv
56
+ Iet6KSgyTWkdCclQVWC+5uQcEY/1HdEpSI31KavU8OWRd3qJyuIkKENZLa+S
57
+ uHvHB1d5z/ffpkhdJUXWnLnX7LI4Q9XKKYczrg7jchYbPqH2K+94xfdVZKRp
58
+ KT9C/4fNXNafcNfaCBbbUErJtZ6pNV74TuGVy6i01srgYbCZGrkCUSq0EfmM
59
+ Lqyg/xR6M2qPKCHiCTeIhpKKRvCxjFfw1hM/QBiQp69q/gJ1PcPhzwMAAA==
60
+ http_version:
61
+ recorded_at: Tue, 19 Feb 2013 13:25:14 GMT
62
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,62 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20120723?applicationId=16d8dfe13fde99ac5479d789764d2f7a&genreId=551172
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - ! '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VHVlLCAxOSBGZWIgMjAxMyAxMzoyNjowMyBHTVQ=
25
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
26
+ - !binary |-
27
+ Kg==
28
+ !binary "Q2FjaGUtQ29udHJvbA==":
29
+ - !binary |-
30
+ bm8tc3RvcmU=
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04
34
+ !binary "Q29udGVudC1MYW5ndWFnZQ==":
35
+ - !binary |-
36
+ amEtSlA=
37
+ !binary "VmFyeQ==":
38
+ - !binary |-
39
+ QWNjZXB0LUVuY29kaW5n
40
+ !binary "Q29udGVudC1FbmNvZGluZw==":
41
+ - !binary |-
42
+ Z3ppcA==
43
+ !binary "Q29udGVudC1MZW5ndGg=":
44
+ - !binary |-
45
+ MzQ5
46
+ !binary "Q29ubmVjdGlvbg==":
47
+ - !binary |-
48
+ Y2xvc2U=
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAAA5XT20rDMBgH8HfJdS+anjb7BoL4ArKL4YoKc0g93JTC2oJU
53
+ 5/BiWJgHsCDasTmVDjZWZA+Tpa1vYVZ306xCc5cE8sv/+/higJO6rrXOToG6
54
+ Z6zXQDXAgdbSte0GUGUZQmWL+zvYrR9rQAX4Jkq9Ee5ZyImQHSInRPYC2R/I
55
+ ccnJMuqk71OwvrKjXWhNoELTrHFg/1wvfKAibDyQ9O00cOPZCPcDyhJMIh0e
56
+ NRvEymJnmxwq8FVBpFF/kEyeCUpxomlyRUYWTMwbyHpC1ngZeSWNLAefN9L5
57
+ 8OduWj5HZkCqlqsu/nJZDCjTOUg/sHtZ3oA85CWFMhZO3Oky5qBr+VwkocfY
58
+ j0reiG99fP3AaEh5g4TA81c2Q6D6kfrtFdN+WQ3u+H5zdv/FoFSlfwHB8OMb
59
+ QyBiKFRRy+9ePBuwGRWZymFN0mBeWEvN/AVbYt1hQQQAAA==
60
+ http_version:
61
+ recorded_at: Tue, 19 Feb 2013 13:26:03 GMT
62
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://app.rakuten.co.jp/services/api/IchibaItem/Ranking/20120927?applicationId=16d8dfe13fde99ac5479d789764d2f7a&page=0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - ! '*/*'
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 400
19
+ message: !binary |-
20
+ QmFkIFJlcXVlc3Q=
21
+ headers:
22
+ !binary "RGF0ZQ==":
23
+ - !binary |-
24
+ VHVlLCAyNiBGZWIgMjAxMyAxMjo1OTo0MyBHTVQ=
25
+ !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
26
+ - !binary |-
27
+ Kg==
28
+ !binary "Q2FjaGUtQ29udHJvbA==":
29
+ - !binary |-
30
+ bm8tc3RvcmU=
31
+ !binary "Q29udGVudC1UeXBl":
32
+ - !binary |-
33
+ YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04
34
+ !binary "Q29udGVudC1MYW5ndWFnZQ==":
35
+ - !binary |-
36
+ amEtSlA=
37
+ !binary "VmFyeQ==":
38
+ - !binary |-
39
+ QWNjZXB0LUVuY29kaW5n
40
+ !binary "Q29udGVudC1FbmNvZGluZw==":
41
+ - !binary |-
42
+ Z3ppcA==
43
+ !binary "Q29udGVudC1MZW5ndGg=":
44
+ - !binary |-
45
+ ODQ=
46
+ !binary "Q29ubmVjdGlvbg==":
47
+ - !binary |-
48
+ Y2xvc2U=
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAAA6tWSi0qyi9SslIqL8rPS48vSCxKzE0tSS1S0oHIxKekFicX
53
+ ZRaUZObnAVUVJKanKuSWFpcoJKUq5JelFikYKtUCALM8Y31FAAAA
54
+ http_version:
55
+ recorded_at: Tue, 26 Feb 2013 12:59:43 GMT
56
+ recorded_with: VCR 2.4.0