rakuten_api 0.1.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.
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