grape 0.1.1 → 2.4.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 (197) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1167 -0
  3. data/CONTRIBUTING.md +156 -0
  4. data/LICENSE +1 -1
  5. data/README.md +4192 -0
  6. data/UPGRADING.md +1697 -0
  7. data/grape.gemspec +28 -105
  8. data/grape.png +0 -0
  9. data/lib/grape/api/helpers.rb +9 -0
  10. data/lib/grape/api/instance.rb +247 -0
  11. data/lib/grape/api.rb +158 -194
  12. data/lib/grape/content_types.rb +31 -0
  13. data/lib/grape/cookies.rb +50 -0
  14. data/lib/grape/dry_types.rb +10 -0
  15. data/lib/grape/dsl/api.rb +17 -0
  16. data/lib/grape/dsl/callbacks.rb +69 -0
  17. data/lib/grape/dsl/configuration.rb +15 -0
  18. data/lib/grape/dsl/desc.rb +124 -0
  19. data/lib/grape/dsl/headers.rb +21 -0
  20. data/lib/grape/dsl/helpers.rb +108 -0
  21. data/lib/grape/dsl/inside_route.rb +454 -0
  22. data/lib/grape/dsl/logger.rb +22 -0
  23. data/lib/grape/dsl/middleware.rb +54 -0
  24. data/lib/grape/dsl/parameters.rb +266 -0
  25. data/lib/grape/dsl/request_response.rb +171 -0
  26. data/lib/grape/dsl/routing.rb +248 -0
  27. data/lib/grape/dsl/settings.rb +179 -0
  28. data/lib/grape/dsl/validations.rb +57 -0
  29. data/lib/grape/endpoint.rb +398 -68
  30. data/lib/grape/env.rb +20 -0
  31. data/lib/grape/error_formatter/base.rb +68 -0
  32. data/lib/grape/error_formatter/json.rb +28 -0
  33. data/lib/grape/error_formatter/serializable_hash.rb +7 -0
  34. data/lib/grape/error_formatter/txt.rb +21 -0
  35. data/lib/grape/error_formatter/xml.rb +11 -0
  36. data/lib/grape/error_formatter.rb +15 -0
  37. data/lib/grape/exceptions/base.rb +76 -0
  38. data/lib/grape/exceptions/conflicting_types.rb +11 -0
  39. data/lib/grape/exceptions/empty_message_body.rb +11 -0
  40. data/lib/grape/exceptions/incompatible_option_values.rb +11 -0
  41. data/lib/grape/exceptions/invalid_accept_header.rb +11 -0
  42. data/lib/grape/exceptions/invalid_formatter.rb +11 -0
  43. data/lib/grape/exceptions/invalid_message_body.rb +11 -0
  44. data/lib/grape/exceptions/invalid_parameters.rb +11 -0
  45. data/lib/grape/exceptions/invalid_response.rb +11 -0
  46. data/lib/grape/exceptions/invalid_version_header.rb +11 -0
  47. data/lib/grape/exceptions/invalid_versioner_option.rb +11 -0
  48. data/lib/grape/exceptions/invalid_with_option_for_represent.rb +11 -0
  49. data/lib/grape/exceptions/method_not_allowed.rb +11 -0
  50. data/lib/grape/exceptions/missing_group_type.rb +13 -0
  51. data/lib/grape/exceptions/missing_mime_type.rb +11 -0
  52. data/lib/grape/exceptions/missing_option.rb +11 -0
  53. data/lib/grape/exceptions/missing_vendor_option.rb +11 -0
  54. data/lib/grape/exceptions/too_deep_parameters.rb +11 -0
  55. data/lib/grape/exceptions/too_many_multipart_files.rb +11 -0
  56. data/lib/grape/exceptions/unknown_auth_strategy.rb +11 -0
  57. data/lib/grape/exceptions/unknown_options.rb +11 -0
  58. data/lib/grape/exceptions/unknown_parameter.rb +11 -0
  59. data/lib/grape/exceptions/unknown_params_builder.rb +11 -0
  60. data/lib/grape/exceptions/unknown_validator.rb +11 -0
  61. data/lib/grape/exceptions/unsupported_group_type.rb +13 -0
  62. data/lib/grape/exceptions/validation.rb +25 -0
  63. data/lib/grape/exceptions/validation_array_errors.rb +14 -0
  64. data/lib/grape/exceptions/validation_errors.rb +53 -0
  65. data/lib/grape/extensions/active_support/hash_with_indifferent_access.rb +24 -0
  66. data/lib/grape/extensions/hash.rb +27 -0
  67. data/lib/grape/extensions/hashie/mash.rb +24 -0
  68. data/lib/grape/formatter/base.rb +16 -0
  69. data/lib/grape/formatter/json.rb +13 -0
  70. data/lib/grape/formatter/serializable_hash.rb +39 -0
  71. data/lib/grape/formatter/txt.rb +11 -0
  72. data/lib/grape/formatter/xml.rb +13 -0
  73. data/lib/grape/formatter.rb +17 -0
  74. data/lib/grape/json.rb +10 -0
  75. data/lib/grape/locale/en.yml +59 -0
  76. data/lib/grape/middleware/auth/base.rb +23 -0
  77. data/lib/grape/middleware/auth/dsl.rb +39 -0
  78. data/lib/grape/middleware/auth/strategies.rb +25 -0
  79. data/lib/grape/middleware/auth/strategy_info.rb +15 -0
  80. data/lib/grape/middleware/base.rb +89 -18
  81. data/lib/grape/middleware/error.rb +129 -10
  82. data/lib/grape/middleware/filter.rb +19 -0
  83. data/lib/grape/middleware/formatter.rb +124 -82
  84. data/lib/grape/middleware/globals.rb +14 -0
  85. data/lib/grape/middleware/stack.rb +109 -0
  86. data/lib/grape/middleware/versioner/accept_version_header.rb +38 -0
  87. data/lib/grape/middleware/versioner/base.rb +74 -0
  88. data/lib/grape/middleware/versioner/header.rb +127 -0
  89. data/lib/grape/middleware/versioner/param.rb +32 -0
  90. data/lib/grape/middleware/versioner/path.rb +40 -0
  91. data/lib/grape/middleware/versioner.rb +21 -21
  92. data/lib/grape/namespace.rb +46 -0
  93. data/lib/grape/params_builder/base.rb +18 -0
  94. data/lib/grape/params_builder/hash.rb +11 -0
  95. data/lib/grape/params_builder/hash_with_indifferent_access.rb +11 -0
  96. data/lib/grape/params_builder/hashie_mash.rb +11 -0
  97. data/lib/grape/params_builder.rb +32 -0
  98. data/lib/grape/parser/base.rb +16 -0
  99. data/lib/grape/parser/json.rb +14 -0
  100. data/lib/grape/parser/xml.rb +14 -0
  101. data/lib/grape/parser.rb +15 -0
  102. data/lib/grape/path.rb +76 -0
  103. data/lib/grape/presenters/presenter.rb +11 -0
  104. data/lib/grape/railtie.rb +9 -0
  105. data/lib/grape/request.rb +190 -0
  106. data/lib/grape/router/base_route.rb +39 -0
  107. data/lib/grape/router/greedy_route.rb +20 -0
  108. data/lib/grape/router/pattern.rb +81 -0
  109. data/lib/grape/router/route.rb +62 -0
  110. data/lib/grape/router.rb +190 -0
  111. data/lib/grape/serve_stream/file_body.rb +36 -0
  112. data/lib/grape/serve_stream/sendfile_response.rb +21 -0
  113. data/lib/grape/serve_stream/stream_response.rb +23 -0
  114. data/lib/grape/types/invalid_value.rb +8 -0
  115. data/lib/grape/util/base_inheritable.rb +43 -0
  116. data/lib/grape/util/cache.rb +17 -0
  117. data/lib/grape/util/endpoint_configuration.rb +8 -0
  118. data/lib/grape/util/header.rb +13 -0
  119. data/lib/grape/util/inheritable_setting.rb +100 -0
  120. data/lib/grape/util/inheritable_values.rb +29 -0
  121. data/lib/grape/util/lazy/block.rb +29 -0
  122. data/lib/grape/util/lazy/value.rb +38 -0
  123. data/lib/grape/util/lazy/value_array.rb +21 -0
  124. data/lib/grape/util/lazy/value_enumerable.rb +34 -0
  125. data/lib/grape/util/lazy/value_hash.rb +21 -0
  126. data/lib/grape/util/media_type.rb +70 -0
  127. data/lib/grape/util/registry.rb +27 -0
  128. data/lib/grape/util/reverse_stackable_values.rb +15 -0
  129. data/lib/grape/util/stackable_values.rb +36 -0
  130. data/lib/grape/util/strict_hash_configuration.rb +108 -0
  131. data/lib/grape/validations/attributes_doc.rb +60 -0
  132. data/lib/grape/validations/attributes_iterator.rb +62 -0
  133. data/lib/grape/validations/contract_scope.rb +34 -0
  134. data/lib/grape/validations/multiple_attributes_iterator.rb +13 -0
  135. data/lib/grape/validations/params_scope.rb +538 -0
  136. data/lib/grape/validations/single_attribute_iterator.rb +26 -0
  137. data/lib/grape/validations/types/array_coercer.rb +61 -0
  138. data/lib/grape/validations/types/custom_type_coercer.rb +164 -0
  139. data/lib/grape/validations/types/custom_type_collection_coercer.rb +56 -0
  140. data/lib/grape/validations/types/dry_type_coercer.rb +66 -0
  141. data/lib/grape/validations/types/file.rb +31 -0
  142. data/lib/grape/validations/types/invalid_value.rb +17 -0
  143. data/lib/grape/validations/types/json.rb +71 -0
  144. data/lib/grape/validations/types/multiple_type_coercer.rb +57 -0
  145. data/lib/grape/validations/types/primitive_coercer.rb +73 -0
  146. data/lib/grape/validations/types/set_coercer.rb +35 -0
  147. data/lib/grape/validations/types/variant_collection_coercer.rb +51 -0
  148. data/lib/grape/validations/types.rb +213 -0
  149. data/lib/grape/validations/validator_factory.rb +15 -0
  150. data/lib/grape/validations/validators/all_or_none_of_validator.rb +16 -0
  151. data/lib/grape/validations/validators/allow_blank_validator.rb +20 -0
  152. data/lib/grape/validations/validators/as_validator.rb +14 -0
  153. data/lib/grape/validations/validators/at_least_one_of_validator.rb +15 -0
  154. data/lib/grape/validations/validators/base.rb +88 -0
  155. data/lib/grape/validations/validators/coerce_validator.rb +75 -0
  156. data/lib/grape/validations/validators/contract_scope_validator.rb +41 -0
  157. data/lib/grape/validations/validators/default_validator.rb +37 -0
  158. data/lib/grape/validations/validators/exactly_one_of_validator.rb +17 -0
  159. data/lib/grape/validations/validators/except_values_validator.rb +24 -0
  160. data/lib/grape/validations/validators/length_validator.rb +49 -0
  161. data/lib/grape/validations/validators/multiple_params_base.rb +34 -0
  162. data/lib/grape/validations/validators/mutual_exclusion_validator.rb +16 -0
  163. data/lib/grape/validations/validators/presence_validator.rb +15 -0
  164. data/lib/grape/validations/validators/regexp_validator.rb +16 -0
  165. data/lib/grape/validations/validators/same_as_validator.rb +29 -0
  166. data/lib/grape/validations/validators/values_validator.rb +60 -0
  167. data/lib/grape/validations.rb +21 -0
  168. data/lib/grape/version.rb +6 -0
  169. data/lib/grape/xml.rb +10 -0
  170. data/lib/grape.rb +81 -17
  171. metadata +250 -192
  172. data/.document +0 -5
  173. data/.gitignore +0 -23
  174. data/.rspec +0 -2
  175. data/.rvmrc +0 -1
  176. data/Gemfile +0 -21
  177. data/Gemfile.lock +0 -58
  178. data/README.markdown +0 -75
  179. data/Rakefile +0 -70
  180. data/VERSION +0 -1
  181. data/autotest/discover.rb +0 -1
  182. data/lib/grape/middleware/auth/basic.rb +0 -30
  183. data/lib/grape/middleware/auth/oauth2.rb +0 -55
  184. data/lib/grape/middleware/prefixer.rb +0 -21
  185. data/lib/grape/middleware_stack.rb +0 -35
  186. data/spec/grape/api_spec.rb +0 -343
  187. data/spec/grape/endpoint_spec.rb +0 -104
  188. data/spec/grape/middleware/auth/basic_spec.rb +0 -31
  189. data/spec/grape/middleware/auth/oauth2_spec.rb +0 -88
  190. data/spec/grape/middleware/base_spec.rb +0 -63
  191. data/spec/grape/middleware/error_spec.rb +0 -49
  192. data/spec/grape/middleware/formatter_spec.rb +0 -87
  193. data/spec/grape/middleware/prefixer_spec.rb +0 -30
  194. data/spec/grape/middleware/versioner_spec.rb +0 -40
  195. data/spec/grape/middleware_stack_spec.rb +0 -47
  196. data/spec/grape_spec.rb +0 -1
  197. data/spec/spec_helper.rb +0 -20
metadata CHANGED
@@ -1,226 +1,284 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: grape
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.4.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Michael Bleigh
14
- autorequire:
15
8
  bindir: bin
16
9
  cert_chain: []
17
-
18
- date: 2010-11-14 00:00:00 -06:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- type: :runtime
24
- name: rack
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
28
16
  - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- prerelease: false
17
+ - !ruby/object:Gem::Version
18
+ version: '6.1'
37
19
  type: :runtime
38
- name: rack-mount
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 29
45
- segments:
46
- - 0
47
- - 6
48
- - 13
49
- version: 0.6.13
50
- requirement: *id002
51
- - !ruby/object:Gem::Dependency
52
20
  prerelease: false
53
- type: :runtime
54
- name: rack-jsonp
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
58
23
  - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
64
- requirement: *id003
65
- - !ruby/object:Gem::Dependency
66
- prerelease: false
67
- type: :runtime
68
- name: json
69
- version_requirements: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
24
+ - !ruby/object:Gem::Version
25
+ version: '6.1'
26
+ - !ruby/object:Gem::Dependency
27
+ name: dry-types
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
72
30
  - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
78
- requirement: *id004
79
- - !ruby/object:Gem::Dependency
80
- prerelease: false
31
+ - !ruby/object:Gem::Version
32
+ version: '1.1'
81
33
  type: :runtime
82
- name: multi_json
83
- version_requirements: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- hash: 3
89
- segments:
90
- - 0
91
- version: "0"
92
- requirement: *id005
93
- - !ruby/object:Gem::Dependency
94
34
  prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.1'
40
+ - !ruby/object:Gem::Dependency
41
+ name: mustermann-grape
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 1.1.0
95
47
  type: :runtime
96
- name: multi_xml
97
- version_requirements: &id006 !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.1.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: rack
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
100
58
  - - ">="
101
- - !ruby/object:Gem::Version
102
- hash: 3
103
- segments:
104
- - 0
105
- version: "0"
106
- requirement: *id006
107
- - !ruby/object:Gem::Dependency
59
+ - !ruby/object:Gem::Version
60
+ version: '2'
61
+ type: :runtime
108
62
  prerelease: false
109
- type: :development
110
- name: rake
111
- version_requirements: &id007 !ruby/object:Gem::Requirement
112
- none: false
113
- requirements:
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '2'
68
+ - !ruby/object:Gem::Dependency
69
+ name: zeitwerk
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
114
72
  - - ">="
115
- - !ruby/object:Gem::Version
116
- hash: 3
117
- segments:
118
- - 0
119
- version: "0"
120
- requirement: *id007
121
- - !ruby/object:Gem::Dependency
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :runtime
122
76
  prerelease: false
123
- type: :development
124
- name: jeweler
125
- version_requirements: &id008 !ruby/object:Gem::Requirement
126
- none: false
127
- requirements:
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
128
79
  - - ">="
129
- - !ruby/object:Gem::Version
130
- hash: 3
131
- segments:
132
- - 0
133
- version: "0"
134
- requirement: *id008
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
135
82
  description: A Ruby framework for rapid API development with great conventions.
136
- email: michael@intridea.com
83
+ email:
84
+ - michael@intridea.com
137
85
  executables: []
138
-
139
86
  extensions: []
140
-
141
- extra_rdoc_files:
142
- - LICENSE
143
- - README.markdown
144
- files:
145
- - .document
146
- - .gitignore
147
- - .rspec
148
- - .rvmrc
149
- - Gemfile
150
- - Gemfile.lock
87
+ extra_rdoc_files: []
88
+ files:
89
+ - CHANGELOG.md
90
+ - CONTRIBUTING.md
151
91
  - LICENSE
152
- - README.markdown
153
- - Rakefile
154
- - VERSION
155
- - autotest/discover.rb
92
+ - README.md
93
+ - UPGRADING.md
156
94
  - grape.gemspec
95
+ - grape.png
157
96
  - lib/grape.rb
158
97
  - lib/grape/api.rb
98
+ - lib/grape/api/helpers.rb
99
+ - lib/grape/api/instance.rb
100
+ - lib/grape/content_types.rb
101
+ - lib/grape/cookies.rb
102
+ - lib/grape/dry_types.rb
103
+ - lib/grape/dsl/api.rb
104
+ - lib/grape/dsl/callbacks.rb
105
+ - lib/grape/dsl/configuration.rb
106
+ - lib/grape/dsl/desc.rb
107
+ - lib/grape/dsl/headers.rb
108
+ - lib/grape/dsl/helpers.rb
109
+ - lib/grape/dsl/inside_route.rb
110
+ - lib/grape/dsl/logger.rb
111
+ - lib/grape/dsl/middleware.rb
112
+ - lib/grape/dsl/parameters.rb
113
+ - lib/grape/dsl/request_response.rb
114
+ - lib/grape/dsl/routing.rb
115
+ - lib/grape/dsl/settings.rb
116
+ - lib/grape/dsl/validations.rb
159
117
  - lib/grape/endpoint.rb
160
- - lib/grape/middleware/auth/basic.rb
161
- - lib/grape/middleware/auth/oauth2.rb
118
+ - lib/grape/env.rb
119
+ - lib/grape/error_formatter.rb
120
+ - lib/grape/error_formatter/base.rb
121
+ - lib/grape/error_formatter/json.rb
122
+ - lib/grape/error_formatter/serializable_hash.rb
123
+ - lib/grape/error_formatter/txt.rb
124
+ - lib/grape/error_formatter/xml.rb
125
+ - lib/grape/exceptions/base.rb
126
+ - lib/grape/exceptions/conflicting_types.rb
127
+ - lib/grape/exceptions/empty_message_body.rb
128
+ - lib/grape/exceptions/incompatible_option_values.rb
129
+ - lib/grape/exceptions/invalid_accept_header.rb
130
+ - lib/grape/exceptions/invalid_formatter.rb
131
+ - lib/grape/exceptions/invalid_message_body.rb
132
+ - lib/grape/exceptions/invalid_parameters.rb
133
+ - lib/grape/exceptions/invalid_response.rb
134
+ - lib/grape/exceptions/invalid_version_header.rb
135
+ - lib/grape/exceptions/invalid_versioner_option.rb
136
+ - lib/grape/exceptions/invalid_with_option_for_represent.rb
137
+ - lib/grape/exceptions/method_not_allowed.rb
138
+ - lib/grape/exceptions/missing_group_type.rb
139
+ - lib/grape/exceptions/missing_mime_type.rb
140
+ - lib/grape/exceptions/missing_option.rb
141
+ - lib/grape/exceptions/missing_vendor_option.rb
142
+ - lib/grape/exceptions/too_deep_parameters.rb
143
+ - lib/grape/exceptions/too_many_multipart_files.rb
144
+ - lib/grape/exceptions/unknown_auth_strategy.rb
145
+ - lib/grape/exceptions/unknown_options.rb
146
+ - lib/grape/exceptions/unknown_parameter.rb
147
+ - lib/grape/exceptions/unknown_params_builder.rb
148
+ - lib/grape/exceptions/unknown_validator.rb
149
+ - lib/grape/exceptions/unsupported_group_type.rb
150
+ - lib/grape/exceptions/validation.rb
151
+ - lib/grape/exceptions/validation_array_errors.rb
152
+ - lib/grape/exceptions/validation_errors.rb
153
+ - lib/grape/extensions/active_support/hash_with_indifferent_access.rb
154
+ - lib/grape/extensions/hash.rb
155
+ - lib/grape/extensions/hashie/mash.rb
156
+ - lib/grape/formatter.rb
157
+ - lib/grape/formatter/base.rb
158
+ - lib/grape/formatter/json.rb
159
+ - lib/grape/formatter/serializable_hash.rb
160
+ - lib/grape/formatter/txt.rb
161
+ - lib/grape/formatter/xml.rb
162
+ - lib/grape/json.rb
163
+ - lib/grape/locale/en.yml
164
+ - lib/grape/middleware/auth/base.rb
165
+ - lib/grape/middleware/auth/dsl.rb
166
+ - lib/grape/middleware/auth/strategies.rb
167
+ - lib/grape/middleware/auth/strategy_info.rb
162
168
  - lib/grape/middleware/base.rb
163
169
  - lib/grape/middleware/error.rb
170
+ - lib/grape/middleware/filter.rb
164
171
  - lib/grape/middleware/formatter.rb
165
- - lib/grape/middleware/prefixer.rb
172
+ - lib/grape/middleware/globals.rb
173
+ - lib/grape/middleware/stack.rb
166
174
  - lib/grape/middleware/versioner.rb
167
- - lib/grape/middleware_stack.rb
168
- - spec/grape/api_spec.rb
169
- - spec/grape/endpoint_spec.rb
170
- - spec/grape/middleware/auth/basic_spec.rb
171
- - spec/grape/middleware/auth/oauth2_spec.rb
172
- - spec/grape/middleware/base_spec.rb
173
- - spec/grape/middleware/error_spec.rb
174
- - spec/grape/middleware/formatter_spec.rb
175
- - spec/grape/middleware/prefixer_spec.rb
176
- - spec/grape/middleware/versioner_spec.rb
177
- - spec/grape/middleware_stack_spec.rb
178
- - spec/grape_spec.rb
179
- - spec/spec_helper.rb
180
- has_rdoc: true
181
- homepage: http://github.com/intridea/grape
182
- licenses: []
183
-
184
- post_install_message:
185
- rdoc_options:
186
- - --charset=UTF-8
187
- require_paths:
175
+ - lib/grape/middleware/versioner/accept_version_header.rb
176
+ - lib/grape/middleware/versioner/base.rb
177
+ - lib/grape/middleware/versioner/header.rb
178
+ - lib/grape/middleware/versioner/param.rb
179
+ - lib/grape/middleware/versioner/path.rb
180
+ - lib/grape/namespace.rb
181
+ - lib/grape/params_builder.rb
182
+ - lib/grape/params_builder/base.rb
183
+ - lib/grape/params_builder/hash.rb
184
+ - lib/grape/params_builder/hash_with_indifferent_access.rb
185
+ - lib/grape/params_builder/hashie_mash.rb
186
+ - lib/grape/parser.rb
187
+ - lib/grape/parser/base.rb
188
+ - lib/grape/parser/json.rb
189
+ - lib/grape/parser/xml.rb
190
+ - lib/grape/path.rb
191
+ - lib/grape/presenters/presenter.rb
192
+ - lib/grape/railtie.rb
193
+ - lib/grape/request.rb
194
+ - lib/grape/router.rb
195
+ - lib/grape/router/base_route.rb
196
+ - lib/grape/router/greedy_route.rb
197
+ - lib/grape/router/pattern.rb
198
+ - lib/grape/router/route.rb
199
+ - lib/grape/serve_stream/file_body.rb
200
+ - lib/grape/serve_stream/sendfile_response.rb
201
+ - lib/grape/serve_stream/stream_response.rb
202
+ - lib/grape/types/invalid_value.rb
203
+ - lib/grape/util/base_inheritable.rb
204
+ - lib/grape/util/cache.rb
205
+ - lib/grape/util/endpoint_configuration.rb
206
+ - lib/grape/util/header.rb
207
+ - lib/grape/util/inheritable_setting.rb
208
+ - lib/grape/util/inheritable_values.rb
209
+ - lib/grape/util/lazy/block.rb
210
+ - lib/grape/util/lazy/value.rb
211
+ - lib/grape/util/lazy/value_array.rb
212
+ - lib/grape/util/lazy/value_enumerable.rb
213
+ - lib/grape/util/lazy/value_hash.rb
214
+ - lib/grape/util/media_type.rb
215
+ - lib/grape/util/registry.rb
216
+ - lib/grape/util/reverse_stackable_values.rb
217
+ - lib/grape/util/stackable_values.rb
218
+ - lib/grape/util/strict_hash_configuration.rb
219
+ - lib/grape/validations.rb
220
+ - lib/grape/validations/attributes_doc.rb
221
+ - lib/grape/validations/attributes_iterator.rb
222
+ - lib/grape/validations/contract_scope.rb
223
+ - lib/grape/validations/multiple_attributes_iterator.rb
224
+ - lib/grape/validations/params_scope.rb
225
+ - lib/grape/validations/single_attribute_iterator.rb
226
+ - lib/grape/validations/types.rb
227
+ - lib/grape/validations/types/array_coercer.rb
228
+ - lib/grape/validations/types/custom_type_coercer.rb
229
+ - lib/grape/validations/types/custom_type_collection_coercer.rb
230
+ - lib/grape/validations/types/dry_type_coercer.rb
231
+ - lib/grape/validations/types/file.rb
232
+ - lib/grape/validations/types/invalid_value.rb
233
+ - lib/grape/validations/types/json.rb
234
+ - lib/grape/validations/types/multiple_type_coercer.rb
235
+ - lib/grape/validations/types/primitive_coercer.rb
236
+ - lib/grape/validations/types/set_coercer.rb
237
+ - lib/grape/validations/types/variant_collection_coercer.rb
238
+ - lib/grape/validations/validator_factory.rb
239
+ - lib/grape/validations/validators/all_or_none_of_validator.rb
240
+ - lib/grape/validations/validators/allow_blank_validator.rb
241
+ - lib/grape/validations/validators/as_validator.rb
242
+ - lib/grape/validations/validators/at_least_one_of_validator.rb
243
+ - lib/grape/validations/validators/base.rb
244
+ - lib/grape/validations/validators/coerce_validator.rb
245
+ - lib/grape/validations/validators/contract_scope_validator.rb
246
+ - lib/grape/validations/validators/default_validator.rb
247
+ - lib/grape/validations/validators/exactly_one_of_validator.rb
248
+ - lib/grape/validations/validators/except_values_validator.rb
249
+ - lib/grape/validations/validators/length_validator.rb
250
+ - lib/grape/validations/validators/multiple_params_base.rb
251
+ - lib/grape/validations/validators/mutual_exclusion_validator.rb
252
+ - lib/grape/validations/validators/presence_validator.rb
253
+ - lib/grape/validations/validators/regexp_validator.rb
254
+ - lib/grape/validations/validators/same_as_validator.rb
255
+ - lib/grape/validations/validators/values_validator.rb
256
+ - lib/grape/version.rb
257
+ - lib/grape/xml.rb
258
+ homepage: https://github.com/ruby-grape/grape
259
+ licenses:
260
+ - MIT
261
+ metadata:
262
+ bug_tracker_uri: https://github.com/ruby-grape/grape/issues
263
+ changelog_uri: https://github.com/ruby-grape/grape/blob/v2.4.0/CHANGELOG.md
264
+ documentation_uri: https://www.rubydoc.info/gems/grape/2.4.0
265
+ source_code_uri: https://github.com/ruby-grape/grape/tree/v2.4.0
266
+ rubygems_mfa_required: 'true'
267
+ rdoc_options: []
268
+ require_paths:
188
269
  - lib
189
- required_ruby_version: !ruby/object:Gem::Requirement
190
- none: false
191
- requirements:
270
+ required_ruby_version: !ruby/object:Gem::Requirement
271
+ requirements:
192
272
  - - ">="
193
- - !ruby/object:Gem::Version
194
- hash: 3
195
- segments:
196
- - 0
197
- version: "0"
198
- required_rubygems_version: !ruby/object:Gem::Requirement
199
- none: false
200
- requirements:
273
+ - !ruby/object:Gem::Version
274
+ version: 2.7.0
275
+ required_rubygems_version: !ruby/object:Gem::Requirement
276
+ requirements:
201
277
  - - ">="
202
- - !ruby/object:Gem::Version
203
- hash: 3
204
- segments:
205
- - 0
206
- version: "0"
278
+ - !ruby/object:Gem::Version
279
+ version: '0'
207
280
  requirements: []
208
-
209
- rubyforge_project:
210
- rubygems_version: 1.3.7
211
- signing_key:
212
- specification_version: 3
213
- summary: A Ruby framework for rapid API development.
214
- test_files:
215
- - spec/grape/api_spec.rb
216
- - spec/grape/endpoint_spec.rb
217
- - spec/grape/middleware/auth/basic_spec.rb
218
- - spec/grape/middleware/auth/oauth2_spec.rb
219
- - spec/grape/middleware/base_spec.rb
220
- - spec/grape/middleware/error_spec.rb
221
- - spec/grape/middleware/formatter_spec.rb
222
- - spec/grape/middleware/prefixer_spec.rb
223
- - spec/grape/middleware/versioner_spec.rb
224
- - spec/grape/middleware_stack_spec.rb
225
- - spec/grape_spec.rb
226
- - spec/spec_helper.rb
281
+ rubygems_version: 3.6.9
282
+ specification_version: 4
283
+ summary: A simple Ruby framework for building REST-like APIs.
284
+ test_files: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
- .rvmrc
21
- .bundle
22
-
23
- ## PROJECT::SPECIFIC
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --format=nested
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use ree@rails3
data/Gemfile DELETED
@@ -1,21 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'rack'
4
- gem 'rack-mount', '~> 0.6.13'
5
- gem 'rack-jsonp'
6
-
7
- gem 'json'
8
- gem 'multi_json'
9
- gem 'multi_xml'
10
-
11
- group :development do
12
- gem 'rake'
13
- gem 'jeweler'
14
- # gem 'yard'
15
- end
16
-
17
- group :test do
18
- gem 'rack-test'
19
- gem 'rspec', '>= 2.1.0'
20
- gem 'cucumber', '>= 0.8.5'
21
- end
data/Gemfile.lock DELETED
@@ -1,58 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- builder (2.1.2)
5
- cucumber (0.8.5)
6
- builder (~> 2.1.2)
7
- diff-lcs (~> 1.1.2)
8
- gherkin (~> 2.1.4)
9
- json_pure (~> 1.4.3)
10
- term-ansicolor (~> 1.0.4)
11
- diff-lcs (1.1.2)
12
- gemcutter (0.6.1)
13
- gherkin (2.1.5)
14
- trollop (~> 1.16.2)
15
- git (1.2.5)
16
- jeweler (1.4.0)
17
- gemcutter (>= 0.1.0)
18
- git (>= 1.2.5)
19
- rubyforge (>= 2.0.0)
20
- json (1.4.6)
21
- json_pure (1.4.3)
22
- multi_json (0.0.4)
23
- multi_xml (0.0.1)
24
- rack (1.2.1)
25
- rack-jsonp (1.0.0)
26
- rack-mount (0.6.13)
27
- rack (>= 1.0.0)
28
- rack-test (0.5.4)
29
- rack (>= 1.0)
30
- rake (0.8.7)
31
- rspec (2.1.0)
32
- rspec-core (~> 2.1.0)
33
- rspec-expectations (~> 2.1.0)
34
- rspec-mocks (~> 2.1.0)
35
- rspec-core (2.1.0)
36
- rspec-expectations (2.1.0)
37
- diff-lcs (~> 1.1.2)
38
- rspec-mocks (2.1.0)
39
- rubyforge (2.0.4)
40
- json_pure (>= 1.1.7)
41
- term-ansicolor (1.0.5)
42
- trollop (1.16.2)
43
-
44
- PLATFORMS
45
- ruby
46
-
47
- DEPENDENCIES
48
- cucumber (>= 0.8.5)
49
- jeweler
50
- json
51
- multi_json
52
- multi_xml
53
- rack
54
- rack-jsonp
55
- rack-mount (~> 0.6.13)
56
- rack-test
57
- rake
58
- rspec (>= 2.1.0)
data/README.markdown DELETED
@@ -1,75 +0,0 @@
1
- # Grape
2
-
3
- Grape is a REST-like API micro-framework for Ruby. It is built to complement existing web application frameworks such as Rails and Sinatra by providing a simple DSL to easily provide APIs. It has built-in support for common conventions such as multiple formats, subdomain/prefix restriction, and versioning.
4
-
5
- ## Installation
6
-
7
- Grape is available as a gem, to install it just install the gem:
8
-
9
- gem install grape
10
-
11
- ## Basic Usage
12
-
13
- Grape APIs are Rack applications that are created by subclassing `Grape::API`. Below is a simple example showing some of the more common features of Grape in the context of recreating parts of the Twitter API.
14
-
15
- class Twitter::API < Grape::Base
16
- version '1'
17
-
18
- helpers do
19
- def current_user
20
- @current_user ||= User.authorize!(env)
21
- end
22
-
23
- def authenticate!
24
- error!('401 Unauthorized', 401) unless current_user
25
- end
26
- end
27
-
28
- resource :statuses do
29
- get :public_timeline do
30
- Tweet.limit(20)
31
- end
32
-
33
- get :home_timeline do
34
- authenticate!
35
- current_user.home_timeline
36
- end
37
-
38
- get '/show/:id' do
39
- Tweet.find(params[:id])
40
- end
41
-
42
- post :update do
43
- authenticate!
44
- Tweet.create(
45
- :user => current_user,
46
- :text => params[:status]
47
- )
48
- end
49
- end
50
- end
51
-
52
- This would create a Rack application that could be used like so (in a Rackup file):
53
-
54
- use Twitter::API
55
-
56
- And would respond to the following routes:
57
-
58
- GET /1/statuses/public_timeline(.json)
59
- GET /1/statuses/home_timeline(.json)
60
- GET /1/statuses/show/:id(.json)
61
- POST /1/statuses/update(.json)
62
-
63
- Serialization takes place automatically. For more detailed usage information, please visit the [Grape Wiki](http://github.com/intridea/grape/wiki).
64
-
65
- ## Note on Patches/Pull Requests
66
-
67
- * Fork the project.
68
- * Make your feature addition or bug fix.
69
- * Add tests for it. This is important so I don't break it in a future version unintentionally.
70
- * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
71
- * Send me a pull request. Bonus points for topic branches.
72
-
73
- ## Copyright
74
-
75
- Copyright (c) 2010 Michael Bleigh and Intridea, Inc. See LICENSE for details.