rack-banken 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rack/banken.rb +4 -2
- data/lib/rack/banken/exception_handler.rb +2 -2
- data/lib/rack/banken/exceptions/bad_request.rb +14 -0
- data/lib/rack/banken/exceptions/conflict.rb +14 -0
- data/lib/rack/banken/exceptions/expectation_failed.rb +14 -0
- data/lib/rack/banken/exceptions/failed_dependency.rb +14 -0
- data/lib/rack/banken/exceptions/forbidden.rb +14 -0
- data/lib/rack/banken/exceptions/gone.rb +14 -0
- data/lib/rack/banken/exceptions/length_required.rb +14 -0
- data/lib/rack/banken/exceptions/locked.rb +14 -0
- data/lib/rack/banken/exceptions/method_not_allowed.rb +14 -0
- data/lib/rack/banken/exceptions/not_acceptable.rb +14 -0
- data/lib/rack/banken/exceptions/not_found.rb +14 -0
- data/lib/rack/banken/exceptions/payment_required.rb +14 -0
- data/lib/rack/banken/exceptions/precondition_failed.rb +14 -0
- data/lib/rack/banken/exceptions/proxy_authentication_required.rb +14 -0
- data/lib/rack/banken/exceptions/request_entity_too_large.rb +14 -0
- data/lib/rack/banken/exceptions/request_timeout.rb +14 -0
- data/lib/rack/banken/exceptions/request_uri_too_long.rb +14 -0
- data/lib/rack/banken/exceptions/requested_range_not_satisfiable.rb +14 -0
- data/lib/rack/banken/exceptions/unauthorized.rb +14 -0
- data/lib/rack/banken/exceptions/unprocessable_entity.rb +14 -0
- data/lib/rack/banken/exceptions/unsupported_media_type.rb +14 -0
- data/lib/rack/banken/exceptions/upgrade_required.rb +14 -0
- data/lib/rack/banken/version.rb +1 -1
- data/rack-banken.gemspec +1 -0
- data/spec/rack_banken_spec.rb +27 -18
- data/spec/spec_helper.rb +23 -6
- metadata +37 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 577eb2d3124ead092614bae984ebdb18083b322b
|
4
|
+
data.tar.gz: f82d16b93b8bad0678f024e1499cd5020016b17d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a6cf433b79c3994884237564588b4d9edeb75f10d8b77e8940e4344931d269636ec4a57c80c4cb16b1a3025dd5f241b9c3ba5de54a00dbe2dc371b704db210d
|
7
|
+
data.tar.gz: a38c0a29bb0ce79d1850b71f3758841854322583102096ccb403b955a5732bf2b3020807899f81ac525dae6760ca17ec4df03af9e0f37ecfc071df6262f40429
|
data/lib/rack/banken.rb
CHANGED
@@ -8,7 +8,9 @@ module Rack
|
|
8
8
|
require "rack/banken/exception_handler"
|
9
9
|
|
10
10
|
require "rack/banken/exceptions/base"
|
11
|
-
|
12
|
-
|
11
|
+
|
12
|
+
Dir[::File.expand_path('../banken/exceptions', __FILE__) << '/*.rb'].each do |file|
|
13
|
+
require file
|
14
|
+
end
|
13
15
|
end
|
14
16
|
end
|
@@ -10,8 +10,8 @@ module Rack
|
|
10
10
|
begin
|
11
11
|
@app.call(env)
|
12
12
|
|
13
|
-
rescue Exceptions::
|
14
|
-
raise
|
13
|
+
rescue Exceptions::Base => e
|
14
|
+
raise e.class, e.message
|
15
15
|
|
16
16
|
rescue => e
|
17
17
|
raise Exceptions::InternalServerError, e.message
|
data/lib/rack/banken/version.rb
CHANGED
data/rack-banken.gemspec
CHANGED
data/spec/rack_banken_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
require 'spec_helper'
|
2
3
|
RSpec.describe "Rack::Banken" do
|
3
4
|
include SpecHelper
|
@@ -13,38 +14,46 @@ RSpec.describe "Rack::Banken" do
|
|
13
14
|
expect(last_response.body).to eq("test body")
|
14
15
|
end
|
15
16
|
|
16
|
-
describe "if Exception occured" do
|
17
|
-
let(:path){ '/runtime_error' }
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
18
|
+
######################################################
|
19
|
+
# 例外に合わせたレスポンスが返ってくるかのテストを生成する
|
20
|
+
######################################################
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
expect(json['result']).to eq(false)
|
29
|
-
expect(json['error']).to be_kind_of(String)
|
30
|
-
end
|
22
|
+
exceptions = []
|
23
|
+
Dir.glob('lib/rack/banken/exceptions/*.rb').each do |f|
|
24
|
+
exceptions << File.basename(f).split('.').first
|
31
25
|
end
|
32
26
|
|
33
|
-
|
34
|
-
|
27
|
+
exceptions.each do |exception|
|
28
|
+
|
29
|
+
class_s = "Rack::Banken::Exceptions::#{exception.camelize}"
|
30
|
+
class_con = class_s.constantize
|
31
|
+
status_code = class_con.new.to_rack_response.first
|
32
|
+
|
33
|
+
eval <<-EOS
|
34
|
+
|
35
|
+
describe_msg = "if " + class_s + " occured"
|
36
|
+
it_msg = "response body is formated by " + class_s
|
37
|
+
it_staus_code_msg = "response status is " + status_code.to_s
|
35
38
|
|
36
|
-
|
39
|
+
describe describe_msg do
|
40
|
+
let(:path) { '/' + exception }
|
41
|
+
|
42
|
+
it it_staus_code_msg do
|
37
43
|
get path
|
38
|
-
expect(last_response.status).to eq(
|
44
|
+
expect(last_response.status).to eq(status_code)
|
39
45
|
end
|
40
46
|
|
41
|
-
it
|
47
|
+
it it_msg do
|
42
48
|
get path
|
43
49
|
json = JSON.parse(last_response.body)
|
44
50
|
|
45
51
|
expect(json['result']).to eq(false)
|
46
52
|
expect(json['error']).to be_kind_of(String)
|
47
53
|
end
|
54
|
+
end
|
55
|
+
|
56
|
+
EOS
|
48
57
|
|
49
58
|
end
|
50
59
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
3
|
$:.unshift(File.dirname(__FILE__))
|
3
|
-
|
4
|
-
%w(rubygems
|
4
|
+
|
5
|
+
%w(rubygems
|
6
|
+
rack
|
7
|
+
rack/test
|
8
|
+
rack/banken
|
9
|
+
rspec
|
10
|
+
active_support/core_ext/string/inflections
|
11
|
+
active_support/inflector).each do |f|
|
12
|
+
|
5
13
|
require f
|
6
14
|
end
|
7
15
|
|
@@ -12,14 +20,23 @@ module SpecHelper
|
|
12
20
|
def call(env)
|
13
21
|
request = Rack::Request.new(env)
|
14
22
|
|
15
|
-
|
16
|
-
|
23
|
+
exceptions = []
|
24
|
+
Dir.glob('lib/rack/banken/exceptions/*.rb').each do
|
25
|
+
|f| exceptions << File.basename(f).split('.').first
|
17
26
|
end
|
18
27
|
|
19
|
-
|
20
|
-
|
28
|
+
#################################################
|
29
|
+
# 例外名のパス(例: /bad_request)のリクエストを受けたら
|
30
|
+
# その名前の例外を発生されるように定義する。
|
31
|
+
#################################################
|
32
|
+
exceptions.each do |ex|
|
33
|
+
if request.path_info == "/#{ex}"
|
34
|
+
klass = "Rack::Banken::Exceptions::#{ex.camelize}"
|
35
|
+
raise klass.constantize
|
36
|
+
end
|
21
37
|
end
|
22
38
|
|
39
|
+
|
23
40
|
code = 200
|
24
41
|
body = ["test body"]
|
25
42
|
header = {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-banken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arakaki Yuji
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 3.0.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: activesupport
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 4.2.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 4.2.0
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- arakaki@ryukyu-i.co.jp
|
@@ -108,8 +122,30 @@ files:
|
|
108
122
|
- Rakefile
|
109
123
|
- lib/rack/banken.rb
|
110
124
|
- lib/rack/banken/exception_handler.rb
|
125
|
+
- lib/rack/banken/exceptions/bad_request.rb
|
111
126
|
- lib/rack/banken/exceptions/base.rb
|
127
|
+
- lib/rack/banken/exceptions/conflict.rb
|
128
|
+
- lib/rack/banken/exceptions/expectation_failed.rb
|
129
|
+
- lib/rack/banken/exceptions/failed_dependency.rb
|
130
|
+
- lib/rack/banken/exceptions/forbidden.rb
|
131
|
+
- lib/rack/banken/exceptions/gone.rb
|
112
132
|
- lib/rack/banken/exceptions/internal_server_error.rb
|
133
|
+
- lib/rack/banken/exceptions/length_required.rb
|
134
|
+
- lib/rack/banken/exceptions/locked.rb
|
135
|
+
- lib/rack/banken/exceptions/method_not_allowed.rb
|
136
|
+
- lib/rack/banken/exceptions/not_acceptable.rb
|
137
|
+
- lib/rack/banken/exceptions/not_found.rb
|
138
|
+
- lib/rack/banken/exceptions/payment_required.rb
|
139
|
+
- lib/rack/banken/exceptions/precondition_failed.rb
|
140
|
+
- lib/rack/banken/exceptions/proxy_authentication_required.rb
|
141
|
+
- lib/rack/banken/exceptions/request_entity_too_large.rb
|
142
|
+
- lib/rack/banken/exceptions/request_timeout.rb
|
143
|
+
- lib/rack/banken/exceptions/request_uri_too_long.rb
|
144
|
+
- lib/rack/banken/exceptions/requested_range_not_satisfiable.rb
|
145
|
+
- lib/rack/banken/exceptions/unauthorized.rb
|
146
|
+
- lib/rack/banken/exceptions/unprocessable_entity.rb
|
147
|
+
- lib/rack/banken/exceptions/unsupported_media_type.rb
|
148
|
+
- lib/rack/banken/exceptions/upgrade_required.rb
|
113
149
|
- lib/rack/banken/exceptions/validation_failed.rb
|
114
150
|
- lib/rack/banken/version.rb
|
115
151
|
- rack-banken.gemspec
|