rakuten_web_service 1.0.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cdc0f4711fe39be535cfe9b4bd83cf03fc7244eb
4
- data.tar.gz: adaab1f25a06aa9d7910605361c8d740ebf5b08d
3
+ metadata.gz: b7f33b3d1527b11476b4da96985d7be2806a46af
4
+ data.tar.gz: a1968049850a302e5f66f6e3dc53233be5565287
5
5
  SHA512:
6
- metadata.gz: 0ee1fcaa7e933d364b77fe00a60166448b1c207d7d55c5714acaef28bff6ea27f8536848c1a20514d720d0e70a2b8f4ab150479094adefef177f905a800aba5b
7
- data.tar.gz: cca0e966fb91d68e25d650024eb6bfc71b37a5be0fc71ed79341818435572eee47099412d64b8e7a112c130eb04856291b0a95be3c1a948736cc56cb61fac8fb
6
+ metadata.gz: 0695e2c151da45d995de251b2db22af6ed087d90f3c65345c768214107e5bcf7a58cb33bb5a3a609ac88a6857d14dbff913fe71d3b5742910db1f25835010ba9
7
+ data.tar.gz: 60612ca32c7f9b5cdac8133869d4a38674cf78f2af5c6e04d75932675ef08fad92e9e65eb25a45f74a7fee1027c9585cf2b9f1dd947f59164290406db93fdddf
data/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
- # v1.0.0
1
+ # v1.1.0 (2016/09/12)
2
+
3
+ ## Enhancements
4
+
5
+ * Remove the dependency on faraday, using `Net::HTTP`. [#39](https://github.com/rakuten-ws/rws-ruby-sdk/pull/39)
6
+ * Allows users to rescue any exception with `RakutenWebService::Error` which is a superclass of all the error class like `RakutenWebService::NotFound`. [#41](https://github.com/rakuten-ws/rws-ruby-sdk/pull/41)
7
+
8
+ # v1.0.0 (2016/07/29)
2
9
 
3
10
  ## Enhancements
4
11
 
@@ -25,7 +32,7 @@ At first, I should appreciate all users of the gems.
25
32
  One of the enhancements, supporting Gora APIs, is realized by @kamatama41 's seminal work.
26
33
  Thank you for your contribution!
27
34
 
28
- # v0.6.3
35
+ # v0.6.3 (2015/07/03)
29
36
 
30
37
  * Update a gem dependency by @45deg
31
38
  * Fix typo by @45deg
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # RakutenWebService
2
2
 
3
- [![Build Status](https://travis-ci.org/rakuten-ws/rws-ruby-sdk.png?branch=master)](https://travis-ci.org/rakuten-ws/rws-ruby-sdk)
4
- [![Gem Version](https://badge.fury.io/rb/rakuten_web_service.png)](http://badge.fury.io/rb/rakuten_web_service)
3
+ [![Build Status](https://travis-ci.org/rakuten-ws/rws-ruby-sdk.svg?branch=master)](https://travis-ci.org/rakuten-ws/rws-ruby-sdk)
4
+ [![Gem Version](https://badge.fury.io/rb/rakuten_web_service.svg)](https://badge.fury.io/rb/rakuten_web_service)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/rakuten-ws/rws-ruby-sdk/badge.svg?branch=master)](https://coveralls.io/github/rakuten-ws/rws-ruby-sdk?branch=master)
6
+ [![Code Climate](https://codeclimate.com/github/rakuten-ws/rws-ruby-sdk/badges/gpa.svg)](https://codeclimate.com/github/rakuten-ws/rws-ruby-sdk)
6
7
 
7
8
  This gem provides a client for easily accessing [Rakuten Web Service APIs](https://webservice.rakuten.co.jp/).
8
9
 
@@ -1,55 +1,38 @@
1
1
  require 'uri'
2
- require 'faraday'
3
- require 'faraday_middleware'
4
-
2
+ require 'json'
5
3
  require 'rakuten_web_service/response'
4
+ require 'rakuten_web_service/error'
6
5
 
7
6
  module RakutenWebService
8
- class WrongParameter < StandardError; end
9
- class NotFound < StandardError; end
10
- class TooManyRequests < StandardError; end
11
- class SystemError < StandardError; end
12
- class ServiceUnavailable < StandardError; end
13
-
14
7
  class Client
15
- attr_reader :url, :path
8
+ attr_reader :url
16
9
 
17
10
  def initialize(resource_class)
18
11
  @resource_class = resource_class
19
- url = URI.parse(@resource_class.endpoint)
20
- @url = "#{url.scheme}://#{url.host}"
21
- @path = url.path
12
+ @url = URI.parse(@resource_class.endpoint)
22
13
  end
23
14
 
24
15
  def get(params)
25
16
  params = RakutenWebService.configuration.generate_parameters(params)
26
- response = connection.get(path, params)
27
- case response.status
28
- when 200
29
- return RakutenWebService::Response.new(@resource_class, response.body)
30
- when 400
31
- raise WrongParameter, response.body['error_description']
32
- when 404
33
- raise NotFound, response.body['error_description']
34
- when 429
35
- raise TooManyRequests, response.body['error_description']
36
- when 500
37
- raise SystemError, response.body['error_description']
38
- when 503
39
- raise ServiceUnavailable, response.body['error_description']
17
+ response = request(url.path, params)
18
+ body = JSON.parse(response.body)
19
+
20
+ if Net::HTTPSuccess === response
21
+ return RakutenWebService::Response.new(@resource_class, body)
22
+ else
23
+ raise RakutenWebService::Error.repository[response.code.to_i], body['error_description']
40
24
  end
41
25
  end
42
26
 
43
27
  private
44
- def connection
45
- return @connection if @connection
46
- @connection = Faraday.new(:url => url) do |conn|
47
- conn.request :url_encoded
48
- conn.response :json
49
- conn.response :logger if RakutenWebService.configuration.debug
50
- conn.adapter Faraday.default_adapter
51
- conn.headers['User-Agent'] = "RakutenWebService SDK for Ruby v#{RWS::VERSION}(ruby-#{RUBY_VERSION} [#{RUBY_PLATFORM}])"
52
- end
28
+ def request(path, params)
29
+ http = Net::HTTP.new(@url.host, @url.port)
30
+ http.use_ssl = true
31
+ path = "#{path}?#{params.map { |k, v| "#{k}=#{URI.encode(v.to_s)}" }.join('&')}"
32
+ header = {
33
+ 'User-Agent' => "RakutenWebService SDK for Ruby v#{RWS::VERSION}(ruby-#{RUBY_VERSION} [#{RUBY_PLATFORM}])"
34
+ }
35
+ http.get(path, header)
53
36
  end
54
37
  end
55
38
  end
@@ -0,0 +1,26 @@
1
+ module RakutenWebService
2
+ class Error < StandardError
3
+ def self.register(status_code, error)
4
+ repository[status_code] = error
5
+ end
6
+
7
+ def self.repository
8
+ @repository ||= {}
9
+ end
10
+ end
11
+
12
+ class WrongParameter < Error; end
13
+ Error.register(400, WrongParameter)
14
+
15
+ class NotFound < Error; end
16
+ Error.register(404, NotFound)
17
+
18
+ class TooManyRequests < Error; end
19
+ Error.register(429, TooManyRequests)
20
+
21
+ class SystemError < Error; end
22
+ Error.register(500, SystemError)
23
+
24
+ class ServiceUnavailable < Error; end
25
+ Error.register(503, ServiceUnavailable)
26
+ end
@@ -1,3 +1,3 @@
1
1
  module RakutenWebService
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'rakuten_web_service/version'
@@ -14,14 +13,10 @@ Gem::Specification.new do |spec|
14
13
  spec.license = "MIT"
15
14
 
16
15
  spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
17
  spec.require_paths = ["lib"]
20
18
  spec.required_ruby_version = '>= 2.1.0'
21
19
 
22
- spec.add_dependency 'faraday', '~> 0.9.0'
23
- spec.add_dependency 'faraday_middleware'
24
-
25
20
  spec.add_development_dependency "bundler", "~> 1.3"
26
21
  spec.add_development_dependency "rake"
27
22
  spec.add_development_dependency "webmock", "~> 1.20.4"
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RakutenWebService::Client do
4
- let(:endpoint) { 'http://api.example.com/resources' }
4
+ let(:endpoint) { 'https://api.example.com/resources' }
5
5
  let(:resource_class) do
6
6
  double('resource_class', endpoint: endpoint)
7
7
  end
data/spec/spec_helper.rb CHANGED
@@ -9,6 +9,7 @@ end
9
9
  require File.expand_path(File.join(__dir__, '..', 'lib', 'rakuten_web_service'))
10
10
 
11
11
  require 'webmock/rspec'
12
+ require 'tapp'
12
13
 
13
14
  Dir[File.expand_path(File.join(__dir__, "support/**/*.rb"))].each { |f| require f }
14
15
 
@@ -1,5 +1,3 @@
1
- require 'json'
2
-
3
1
  module FixtureSupport
4
2
  def fixture(path)
5
3
  fixture_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'fixtures', path))
metadata CHANGED
@@ -1,111 +1,83 @@
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.1.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-07-29 00:00:00.000000000 Z
11
+ date: 2016-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: faraday
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: 0.9.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: 0.9.0
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: bundler
43
15
  requirement: !ruby/object:Gem::Requirement
44
16
  requirements:
45
- - - ~>
17
+ - - "~>"
46
18
  - !ruby/object:Gem::Version
47
19
  version: '1.3'
48
20
  type: :development
49
21
  prerelease: false
50
22
  version_requirements: !ruby/object:Gem::Requirement
51
23
  requirements:
52
- - - ~>
24
+ - - "~>"
53
25
  - !ruby/object:Gem::Version
54
26
  version: '1.3'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: rake
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
- - - '>='
31
+ - - ">="
60
32
  - !ruby/object:Gem::Version
61
33
  version: '0'
62
34
  type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
- - - '>='
38
+ - - ">="
67
39
  - !ruby/object:Gem::Version
68
40
  version: '0'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: webmock
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
- - - ~>
45
+ - - "~>"
74
46
  - !ruby/object:Gem::Version
75
47
  version: 1.20.4
76
48
  type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - ~>
52
+ - - "~>"
81
53
  - !ruby/object:Gem::Version
82
54
  version: 1.20.4
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: rspec
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
- - - ~>
59
+ - - "~>"
88
60
  - !ruby/object:Gem::Version
89
61
  version: 3.5.0
90
62
  type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
- - - ~>
66
+ - - "~>"
95
67
  - !ruby/object:Gem::Version
96
68
  version: 3.5.0
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: tapp
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
- - - '>='
73
+ - - ">="
102
74
  - !ruby/object:Gem::Version
103
75
  version: '0'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
- - - '>='
80
+ - - ">="
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0'
111
83
  description: Ruby Client for Rakuten Web Service
@@ -115,9 +87,9 @@ executables: []
115
87
  extensions: []
116
88
  extra_rdoc_files: []
117
89
  files:
118
- - .coveralls.yml
119
- - .gitignore
120
- - .travis.yml
90
+ - ".coveralls.yml"
91
+ - ".gitignore"
92
+ - ".travis.yml"
121
93
  - CHANGELOG.md
122
94
  - CODE_OF_CONDUCT.md
123
95
  - Gemfile
@@ -143,6 +115,7 @@ files:
143
115
  - lib/rakuten_web_service/books/total.rb
144
116
  - lib/rakuten_web_service/client.rb
145
117
  - lib/rakuten_web_service/configuration.rb
118
+ - lib/rakuten_web_service/error.rb
146
119
  - lib/rakuten_web_service/genre.rb
147
120
  - lib/rakuten_web_service/gora.rb
148
121
  - lib/rakuten_web_service/gora/course.rb
@@ -219,17 +192,17 @@ require_paths:
219
192
  - lib
220
193
  required_ruby_version: !ruby/object:Gem::Requirement
221
194
  requirements:
222
- - - '>='
195
+ - - ">="
223
196
  - !ruby/object:Gem::Version
224
197
  version: 2.1.0
225
198
  required_rubygems_version: !ruby/object:Gem::Requirement
226
199
  requirements:
227
- - - '>='
200
+ - - ">="
228
201
  - !ruby/object:Gem::Version
229
202
  version: '0'
230
203
  requirements: []
231
204
  rubyforge_project:
232
- rubygems_version: 2.0.3
205
+ rubygems_version: 2.5.1
233
206
  signing_key:
234
207
  specification_version: 4
235
208
  summary: Ruby Client for Rakuten Web Service