grape 0.3.0 → 0.7.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.
Potentially problematic release.
This version of grape might be problematic. Click here for more details.
- checksums.yaml +15 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +70 -0
- data/.travis.yml +7 -6
- data/CHANGELOG.md +134 -4
- data/CONTRIBUTING.md +118 -0
- data/Gemfile +5 -2
- data/README.md +551 -116
- data/RELEASING.md +105 -0
- data/Rakefile +29 -8
- data/UPGRADING.md +124 -0
- data/grape.gemspec +3 -3
- data/lib/grape/api.rb +207 -88
- data/lib/grape/cookies.rb +4 -8
- data/lib/grape/endpoint.rb +198 -144
- data/lib/grape/error_formatter/base.rb +5 -7
- data/lib/grape/error_formatter/json.rb +3 -5
- data/lib/grape/error_formatter/txt.rb +1 -3
- data/lib/grape/error_formatter/xml.rb +4 -6
- data/lib/grape/exceptions/base.rb +9 -9
- data/lib/grape/exceptions/incompatible_option_values.rb +10 -0
- data/lib/grape/exceptions/invalid_formatter.rb +1 -4
- data/lib/grape/exceptions/invalid_versioner_option.rb +1 -5
- data/lib/grape/exceptions/invalid_with_option_for_represent.rb +1 -6
- data/lib/grape/exceptions/missing_mime_type.rb +1 -5
- data/lib/grape/exceptions/missing_option.rb +1 -4
- data/lib/grape/exceptions/missing_vendor_option.rb +1 -4
- data/lib/grape/exceptions/unknown_options.rb +1 -5
- data/lib/grape/exceptions/unknown_validator.rb +1 -3
- data/lib/grape/exceptions/validation.rb +13 -3
- data/lib/grape/exceptions/validation_errors.rb +43 -0
- data/lib/grape/formatter/base.rb +5 -7
- data/lib/grape/formatter/json.rb +0 -3
- data/lib/grape/formatter/serializable_hash.rb +15 -15
- data/lib/grape/formatter/txt.rb +0 -2
- data/lib/grape/formatter/xml.rb +0 -2
- data/lib/grape/http/request.rb +26 -0
- data/lib/grape/locale/en.yml +8 -5
- data/lib/grape/middleware/auth/base.rb +30 -0
- data/lib/grape/middleware/auth/basic.rb +3 -20
- data/lib/grape/middleware/auth/digest.rb +2 -19
- data/lib/grape/middleware/auth/oauth2.rb +31 -24
- data/lib/grape/middleware/base.rb +7 -7
- data/lib/grape/middleware/error.rb +36 -22
- data/lib/grape/middleware/filter.rb +3 -3
- data/lib/grape/middleware/formatter.rb +99 -61
- data/lib/grape/middleware/globals.rb +13 -0
- data/lib/grape/middleware/versioner/accept_version_header.rb +67 -0
- data/lib/grape/middleware/versioner/header.rb +22 -16
- data/lib/grape/middleware/versioner/param.rb +9 -11
- data/lib/grape/middleware/versioner/path.rb +10 -13
- data/lib/grape/middleware/versioner.rb +3 -1
- data/lib/grape/namespace.rb +23 -0
- data/lib/grape/parser/base.rb +3 -5
- data/lib/grape/parser/json.rb +0 -2
- data/lib/grape/parser/xml.rb +0 -2
- data/lib/grape/path.rb +70 -0
- data/lib/grape/route.rb +10 -6
- data/lib/grape/util/content_types.rb +2 -1
- data/lib/grape/util/deep_merge.rb +5 -5
- data/lib/grape/util/hash_stack.rb +13 -2
- data/lib/grape/validations/coerce.rb +11 -10
- data/lib/grape/validations/default.rb +25 -0
- data/lib/grape/validations/presence.rb +7 -3
- data/lib/grape/validations/regexp.rb +2 -5
- data/lib/grape/validations/values.rb +17 -0
- data/lib/grape/validations.rb +161 -54
- data/lib/grape/version.rb +1 -1
- data/lib/grape.rb +19 -4
- data/spec/grape/api_spec.rb +897 -268
- data/spec/grape/endpoint_spec.rb +283 -66
- data/spec/grape/entity_spec.rb +132 -29
- data/spec/grape/exceptions/missing_mime_type_spec.rb +3 -9
- data/spec/grape/exceptions/validation_errors_spec.rb +19 -0
- data/spec/grape/middleware/auth/basic_spec.rb +8 -8
- data/spec/grape/middleware/auth/digest_spec.rb +5 -5
- data/spec/grape/middleware/auth/oauth2_spec.rb +81 -36
- data/spec/grape/middleware/base_spec.rb +8 -13
- data/spec/grape/middleware/error_spec.rb +13 -17
- data/spec/grape/middleware/exception_spec.rb +47 -27
- data/spec/grape/middleware/formatter_spec.rb +103 -41
- data/spec/grape/middleware/versioner/accept_version_header_spec.rb +121 -0
- data/spec/grape/middleware/versioner/header_spec.rb +76 -51
- data/spec/grape/middleware/versioner/param_spec.rb +18 -18
- data/spec/grape/middleware/versioner/path_spec.rb +6 -6
- data/spec/grape/middleware/versioner_spec.rb +5 -2
- data/spec/grape/path_spec.rb +229 -0
- data/spec/grape/util/hash_stack_spec.rb +31 -32
- data/spec/grape/validations/coerce_spec.rb +116 -51
- data/spec/grape/validations/default_spec.rb +123 -0
- data/spec/grape/validations/presence_spec.rb +42 -44
- data/spec/grape/validations/regexp_spec.rb +9 -9
- data/spec/grape/validations/values_spec.rb +138 -0
- data/spec/grape/validations/zh-CN.yml +4 -3
- data/spec/grape/validations_spec.rb +681 -48
- data/spec/shared/versioning_examples.rb +22 -6
- data/spec/spec_helper.rb +3 -2
- data/spec/support/basic_auth_encode_helpers.rb +0 -1
- data/spec/support/content_type_helpers.rb +11 -0
- data/spec/support/versioned_helpers.rb +13 -5
- metadata +34 -84
@@ -1,20 +1,22 @@
|
|
1
1
|
shared_examples_for 'versioning' do
|
2
2
|
it 'sets the API version' do
|
3
|
+
subject.format :txt
|
3
4
|
subject.version 'v1', macro_options
|
4
5
|
subject.get :hello do
|
5
|
-
"Version: #{request.env['api.version']}"
|
6
|
+
"Version: #{request.env['api.version'] }"
|
6
7
|
end
|
7
8
|
versioned_get '/hello', 'v1', macro_options
|
8
9
|
last_response.body.should eql "Version: v1"
|
9
10
|
end
|
10
11
|
|
11
12
|
it 'adds the prefix before the API version' do
|
13
|
+
subject.format :txt
|
12
14
|
subject.prefix 'api'
|
13
15
|
subject.version 'v1', macro_options
|
14
16
|
subject.get :hello do
|
15
|
-
"Version: #{request.env['api.version']}"
|
17
|
+
"Version: #{request.env['api.version'] }"
|
16
18
|
end
|
17
|
-
versioned_get '/hello', 'v1', macro_options.merge(:
|
19
|
+
versioned_get '/hello', 'v1', macro_options.merge(prefix: 'api')
|
18
20
|
last_response.body.should eql "Version: v1"
|
19
21
|
end
|
20
22
|
|
@@ -58,6 +60,7 @@ shared_examples_for 'versioning' do
|
|
58
60
|
context 'with different versions for the same endpoint' do
|
59
61
|
context 'without a prefix' do
|
60
62
|
it 'allows the same endpoint to be implemented' do
|
63
|
+
subject.format :txt
|
61
64
|
subject.version 'v2', macro_options
|
62
65
|
subject.get 'version' do
|
63
66
|
request.env['api.version']
|
@@ -79,7 +82,8 @@ shared_examples_for 'versioning' do
|
|
79
82
|
end
|
80
83
|
|
81
84
|
context 'with a prefix' do
|
82
|
-
it 'allows the same endpoint to be implemented' do
|
85
|
+
it 'allows the same endpoint to be implemented' do
|
86
|
+
subject.format :txt
|
83
87
|
subject.prefix 'api'
|
84
88
|
subject.version 'v2', macro_options
|
85
89
|
subject.get 'version' do
|
@@ -92,14 +96,26 @@ shared_examples_for 'versioning' do
|
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
95
|
-
versioned_get '/version', 'v1', macro_options.merge(:
|
99
|
+
versioned_get '/version', 'v1', macro_options.merge(prefix: subject.prefix)
|
96
100
|
last_response.status.should == 200
|
97
101
|
last_response.body.should == 'version v1'
|
98
102
|
|
99
|
-
versioned_get '/version', 'v2', macro_options.merge(:
|
103
|
+
versioned_get '/version', 'v2', macro_options.merge(prefix: subject.prefix)
|
100
104
|
last_response.status.should == 200
|
101
105
|
last_response.body.should == 'v2'
|
102
106
|
end
|
103
107
|
end
|
104
108
|
end
|
109
|
+
|
110
|
+
it 'does not overwrite version parameter with API version' do
|
111
|
+
subject.format :txt
|
112
|
+
subject.version 'v1', macro_options
|
113
|
+
subject.params { requires :version }
|
114
|
+
subject.get :api_version_with_version_param do
|
115
|
+
params[:version]
|
116
|
+
end
|
117
|
+
versioned_get '/api_version_with_version_param?version=1', 'v1', macro_options
|
118
|
+
last_response.body.should eql '1'
|
119
|
+
end
|
120
|
+
|
105
121
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,8 +4,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'support'))
|
|
4
4
|
|
5
5
|
require 'grape'
|
6
6
|
|
7
|
-
# require 'grape-entity'
|
8
|
-
|
9
7
|
require 'rubygems'
|
10
8
|
require 'bundler'
|
11
9
|
Bundler.setup :default, :test
|
@@ -14,11 +12,14 @@ require 'rack/test'
|
|
14
12
|
require 'pry'
|
15
13
|
require 'base64'
|
16
14
|
require 'cookiejar'
|
15
|
+
require 'json'
|
17
16
|
|
18
17
|
Dir["#{File.dirname(__FILE__)}/support/*.rb"].each do |file|
|
19
18
|
require file
|
20
19
|
end
|
21
20
|
|
21
|
+
I18n.enforce_available_locales = false
|
22
|
+
|
22
23
|
RSpec.configure do |config|
|
23
24
|
config.include Rack::Test::Methods
|
24
25
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ContentTypeHelpers
|
2
|
+
%w(put patch post delete).each do |method|
|
3
|
+
define_method :"#{method}_with_json" do |uri, params = {}, env = {}, &block|
|
4
|
+
params = params.to_json
|
5
|
+
env["CONTENT_TYPE"] ||= "application/json"
|
6
|
+
send(method, uri, params, env, &block)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
include(ContentTypeHelpers)
|
@@ -10,6 +10,8 @@ def versioned_path(options = {})
|
|
10
10
|
File.join('/', options[:prefix] || '', options[:path])
|
11
11
|
when :header
|
12
12
|
File.join('/', options[:prefix] || '', options[:path])
|
13
|
+
when :accept_version_header
|
14
|
+
File.join('/', options[:prefix] || '', options[:path])
|
13
15
|
else
|
14
16
|
raise ArgumentError.new("unknown versioning strategy: #{options[:using]}")
|
15
17
|
end
|
@@ -23,7 +25,14 @@ def versioned_headers(options)
|
|
23
25
|
{} # no-op
|
24
26
|
when :header
|
25
27
|
{
|
26
|
-
'HTTP_ACCEPT' =>
|
28
|
+
'HTTP_ACCEPT' => [
|
29
|
+
"application/vnd.#{options[:vendor] }-#{options[:version] }",
|
30
|
+
options[:format]
|
31
|
+
].compact.join("+")
|
32
|
+
}
|
33
|
+
when :accept_version_header
|
34
|
+
{
|
35
|
+
'HTTP_ACCEPT_VERSION' => "#{options[:version] }"
|
27
36
|
}
|
28
37
|
else
|
29
38
|
raise ArgumentError.new("unknown versioning strategy: #{options[:using]}")
|
@@ -31,12 +40,11 @@ def versioned_headers(options)
|
|
31
40
|
end
|
32
41
|
|
33
42
|
def versioned_get(path, version_name, version_options = {})
|
34
|
-
path = versioned_path(version_options.merge(:
|
35
|
-
headers = versioned_headers(version_options.merge(:
|
43
|
+
path = versioned_path(version_options.merge(version: version_name, path: path))
|
44
|
+
headers = versioned_headers(version_options.merge(version: version_name))
|
36
45
|
params = {}
|
37
46
|
if version_options[:using] == :param
|
38
|
-
params = { version_options[:parameter] => version_name }
|
47
|
+
params = { version_options[:parameter] => version_name }
|
39
48
|
end
|
40
49
|
get path, params, headers
|
41
50
|
end
|
42
|
-
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Michael Bleigh
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rack
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 1.3.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 1.3.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rack-mount
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rack-accept
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: activesupport
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: multi_json
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: multi_xml
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,39 +97,34 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: hashie
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 1.2.0
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
110
|
+
version: 1.2.0
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: virtus
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
117
|
+
version: 1.0.0
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ! '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
124
|
+
version: 1.0.0
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: builder
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ! '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ! '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: grape-entity
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ! '>='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ! '>='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rake
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ! '>='
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ! '>='
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: maruku
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ! '>='
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ! '>='
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,7 +181,6 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: yard
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - ! '>='
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - ! '>='
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -222,7 +195,6 @@ dependencies:
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: rack-test
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - ! '>='
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,7 +202,6 @@ dependencies:
|
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - ! '>='
|
236
207
|
- !ruby/object:Gem::Version
|
@@ -238,7 +209,6 @@ dependencies:
|
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: rspec
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
213
|
- - ~>
|
244
214
|
- !ruby/object:Gem::Version
|
@@ -246,7 +216,6 @@ dependencies:
|
|
246
216
|
type: :development
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
220
|
- - ~>
|
252
221
|
- !ruby/object:Gem::Version
|
@@ -254,7 +223,6 @@ dependencies:
|
|
254
223
|
- !ruby/object:Gem::Dependency
|
255
224
|
name: bundler
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
226
|
requirements:
|
259
227
|
- - ! '>='
|
260
228
|
- !ruby/object:Gem::Version
|
@@ -262,7 +230,6 @@ dependencies:
|
|
262
230
|
type: :development
|
263
231
|
prerelease: false
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
233
|
requirements:
|
267
234
|
- - ! '>='
|
268
235
|
- !ruby/object:Gem::Version
|
@@ -276,14 +243,18 @@ extra_rdoc_files: []
|
|
276
243
|
files:
|
277
244
|
- .gitignore
|
278
245
|
- .rspec
|
246
|
+
- .rubocop.yml
|
279
247
|
- .travis.yml
|
280
248
|
- .yardopts
|
281
249
|
- CHANGELOG.md
|
250
|
+
- CONTRIBUTING.md
|
282
251
|
- Gemfile
|
283
252
|
- Guardfile
|
284
253
|
- LICENSE
|
285
254
|
- README.md
|
255
|
+
- RELEASING.md
|
286
256
|
- Rakefile
|
257
|
+
- UPGRADING.md
|
287
258
|
- grape.gemspec
|
288
259
|
- lib/grape.rb
|
289
260
|
- lib/grape/api.rb
|
@@ -294,6 +265,7 @@ files:
|
|
294
265
|
- lib/grape/error_formatter/txt.rb
|
295
266
|
- lib/grape/error_formatter/xml.rb
|
296
267
|
- lib/grape/exceptions/base.rb
|
268
|
+
- lib/grape/exceptions/incompatible_option_values.rb
|
297
269
|
- lib/grape/exceptions/invalid_formatter.rb
|
298
270
|
- lib/grape/exceptions/invalid_versioner_option.rb
|
299
271
|
- lib/grape/exceptions/invalid_with_option_for_represent.rb
|
@@ -303,12 +275,15 @@ files:
|
|
303
275
|
- lib/grape/exceptions/unknown_options.rb
|
304
276
|
- lib/grape/exceptions/unknown_validator.rb
|
305
277
|
- lib/grape/exceptions/validation.rb
|
278
|
+
- lib/grape/exceptions/validation_errors.rb
|
306
279
|
- lib/grape/formatter/base.rb
|
307
280
|
- lib/grape/formatter/json.rb
|
308
281
|
- lib/grape/formatter/serializable_hash.rb
|
309
282
|
- lib/grape/formatter/txt.rb
|
310
283
|
- lib/grape/formatter/xml.rb
|
284
|
+
- lib/grape/http/request.rb
|
311
285
|
- lib/grape/locale/en.yml
|
286
|
+
- lib/grape/middleware/auth/base.rb
|
312
287
|
- lib/grape/middleware/auth/basic.rb
|
313
288
|
- lib/grape/middleware/auth/digest.rb
|
314
289
|
- lib/grape/middleware/auth/oauth2.rb
|
@@ -316,21 +291,27 @@ files:
|
|
316
291
|
- lib/grape/middleware/error.rb
|
317
292
|
- lib/grape/middleware/filter.rb
|
318
293
|
- lib/grape/middleware/formatter.rb
|
294
|
+
- lib/grape/middleware/globals.rb
|
319
295
|
- lib/grape/middleware/versioner.rb
|
296
|
+
- lib/grape/middleware/versioner/accept_version_header.rb
|
320
297
|
- lib/grape/middleware/versioner/header.rb
|
321
298
|
- lib/grape/middleware/versioner/param.rb
|
322
299
|
- lib/grape/middleware/versioner/path.rb
|
300
|
+
- lib/grape/namespace.rb
|
323
301
|
- lib/grape/parser/base.rb
|
324
302
|
- lib/grape/parser/json.rb
|
325
303
|
- lib/grape/parser/xml.rb
|
304
|
+
- lib/grape/path.rb
|
326
305
|
- lib/grape/route.rb
|
327
306
|
- lib/grape/util/content_types.rb
|
328
307
|
- lib/grape/util/deep_merge.rb
|
329
308
|
- lib/grape/util/hash_stack.rb
|
330
309
|
- lib/grape/validations.rb
|
331
310
|
- lib/grape/validations/coerce.rb
|
311
|
+
- lib/grape/validations/default.rb
|
332
312
|
- lib/grape/validations/presence.rb
|
333
313
|
- lib/grape/validations/regexp.rb
|
314
|
+
- lib/grape/validations/values.rb
|
334
315
|
- lib/grape/version.rb
|
335
316
|
- spec/grape/api_spec.rb
|
336
317
|
- spec/grape/endpoint_spec.rb
|
@@ -341,6 +322,7 @@ files:
|
|
341
322
|
- spec/grape/exceptions/missing_option_spec.rb
|
342
323
|
- spec/grape/exceptions/unknown_options_spec.rb
|
343
324
|
- spec/grape/exceptions/unknown_validator_spec.rb
|
325
|
+
- spec/grape/exceptions/validation_errors_spec.rb
|
344
326
|
- spec/grape/middleware/auth/basic_spec.rb
|
345
327
|
- spec/grape/middleware/auth/digest_spec.rb
|
346
328
|
- spec/grape/middleware/auth/oauth2_spec.rb
|
@@ -348,80 +330,48 @@ files:
|
|
348
330
|
- spec/grape/middleware/error_spec.rb
|
349
331
|
- spec/grape/middleware/exception_spec.rb
|
350
332
|
- spec/grape/middleware/formatter_spec.rb
|
333
|
+
- spec/grape/middleware/versioner/accept_version_header_spec.rb
|
351
334
|
- spec/grape/middleware/versioner/header_spec.rb
|
352
335
|
- spec/grape/middleware/versioner/param_spec.rb
|
353
336
|
- spec/grape/middleware/versioner/path_spec.rb
|
354
337
|
- spec/grape/middleware/versioner_spec.rb
|
338
|
+
- spec/grape/path_spec.rb
|
355
339
|
- spec/grape/util/hash_stack_spec.rb
|
356
340
|
- spec/grape/validations/coerce_spec.rb
|
341
|
+
- spec/grape/validations/default_spec.rb
|
357
342
|
- spec/grape/validations/presence_spec.rb
|
358
343
|
- spec/grape/validations/regexp_spec.rb
|
344
|
+
- spec/grape/validations/values_spec.rb
|
359
345
|
- spec/grape/validations/zh-CN.yml
|
360
346
|
- spec/grape/validations_spec.rb
|
361
347
|
- spec/shared/versioning_examples.rb
|
362
348
|
- spec/spec_helper.rb
|
363
349
|
- spec/support/basic_auth_encode_helpers.rb
|
350
|
+
- spec/support/content_type_helpers.rb
|
364
351
|
- spec/support/versioned_helpers.rb
|
365
352
|
homepage: https://github.com/intridea/grape
|
366
353
|
licenses:
|
367
354
|
- MIT
|
355
|
+
metadata: {}
|
368
356
|
post_install_message:
|
369
357
|
rdoc_options: []
|
370
358
|
require_paths:
|
371
359
|
- lib
|
372
360
|
required_ruby_version: !ruby/object:Gem::Requirement
|
373
|
-
none: false
|
374
361
|
requirements:
|
375
362
|
- - ! '>='
|
376
363
|
- !ruby/object:Gem::Version
|
377
364
|
version: '0'
|
378
|
-
segments:
|
379
|
-
- 0
|
380
|
-
hash: 1796003249167814741
|
381
365
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
382
|
-
none: false
|
383
366
|
requirements:
|
384
367
|
- - ! '>='
|
385
368
|
- !ruby/object:Gem::Version
|
386
369
|
version: '0'
|
387
|
-
segments:
|
388
|
-
- 0
|
389
|
-
hash: 1796003249167814741
|
390
370
|
requirements: []
|
391
371
|
rubyforge_project: grape
|
392
|
-
rubygems_version:
|
372
|
+
rubygems_version: 2.2.2
|
393
373
|
signing_key:
|
394
|
-
specification_version:
|
374
|
+
specification_version: 4
|
395
375
|
summary: A simple Ruby framework for building REST-like APIs.
|
396
|
-
test_files:
|
397
|
-
- spec/grape/api_spec.rb
|
398
|
-
- spec/grape/endpoint_spec.rb
|
399
|
-
- spec/grape/entity_spec.rb
|
400
|
-
- spec/grape/exceptions/invalid_formatter_spec.rb
|
401
|
-
- spec/grape/exceptions/invalid_versioner_option_spec.rb
|
402
|
-
- spec/grape/exceptions/missing_mime_type_spec.rb
|
403
|
-
- spec/grape/exceptions/missing_option_spec.rb
|
404
|
-
- spec/grape/exceptions/unknown_options_spec.rb
|
405
|
-
- spec/grape/exceptions/unknown_validator_spec.rb
|
406
|
-
- spec/grape/middleware/auth/basic_spec.rb
|
407
|
-
- spec/grape/middleware/auth/digest_spec.rb
|
408
|
-
- spec/grape/middleware/auth/oauth2_spec.rb
|
409
|
-
- spec/grape/middleware/base_spec.rb
|
410
|
-
- spec/grape/middleware/error_spec.rb
|
411
|
-
- spec/grape/middleware/exception_spec.rb
|
412
|
-
- spec/grape/middleware/formatter_spec.rb
|
413
|
-
- spec/grape/middleware/versioner/header_spec.rb
|
414
|
-
- spec/grape/middleware/versioner/param_spec.rb
|
415
|
-
- spec/grape/middleware/versioner/path_spec.rb
|
416
|
-
- spec/grape/middleware/versioner_spec.rb
|
417
|
-
- spec/grape/util/hash_stack_spec.rb
|
418
|
-
- spec/grape/validations/coerce_spec.rb
|
419
|
-
- spec/grape/validations/presence_spec.rb
|
420
|
-
- spec/grape/validations/regexp_spec.rb
|
421
|
-
- spec/grape/validations/zh-CN.yml
|
422
|
-
- spec/grape/validations_spec.rb
|
423
|
-
- spec/shared/versioning_examples.rb
|
424
|
-
- spec/spec_helper.rb
|
425
|
-
- spec/support/basic_auth_encode_helpers.rb
|
426
|
-
- spec/support/versioned_helpers.rb
|
376
|
+
test_files: []
|
427
377
|
has_rdoc:
|