grape 0.15.0 → 0.16.1

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.

Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -1
  3. data/Gemfile.lock +16 -15
  4. data/README.md +41 -47
  5. data/UPGRADING.md +62 -0
  6. data/gemfiles/rails_3.gemfile.lock +225 -0
  7. data/grape.gemspec +2 -2
  8. data/lib/grape.rb +31 -26
  9. data/lib/grape/api.rb +39 -23
  10. data/lib/grape/dsl/inside_route.rb +8 -4
  11. data/lib/grape/dsl/routing.rb +2 -1
  12. data/lib/grape/endpoint.rb +43 -62
  13. data/lib/grape/error_formatter.rb +4 -2
  14. data/lib/grape/error_formatter/base.rb +10 -6
  15. data/lib/grape/formatter.rb +4 -2
  16. data/lib/grape/http/headers.rb +1 -0
  17. data/lib/grape/middleware/formatter.rb +2 -2
  18. data/lib/grape/middleware/versioner/accept_version_header.rb +2 -2
  19. data/lib/grape/middleware/versioner/header.rb +2 -2
  20. data/lib/grape/middleware/versioner/path.rb +2 -2
  21. data/lib/grape/namespace.rb +1 -1
  22. data/lib/grape/parser.rb +4 -2
  23. data/lib/grape/path.rb +3 -3
  24. data/lib/grape/request.rb +2 -2
  25. data/lib/grape/router.rb +156 -0
  26. data/lib/grape/router/attribute_translator.rb +40 -0
  27. data/lib/grape/router/pattern.rb +55 -0
  28. data/lib/grape/router/route.rb +105 -0
  29. data/lib/grape/serve_file/file_body.rb +34 -0
  30. data/lib/grape/{util → serve_file}/file_response.rb +1 -1
  31. data/lib/grape/{util → serve_file}/sendfile_response.rb +1 -1
  32. data/lib/grape/util/env.rb +1 -1
  33. data/lib/grape/util/registrable.rb +13 -0
  34. data/lib/grape/validations/types/custom_type_coercer.rb +2 -0
  35. data/lib/grape/version.rb +1 -1
  36. data/spec/grape/api/invalid_format_spec.rb +43 -0
  37. data/spec/grape/api/recognize_path_spec.rb +21 -0
  38. data/spec/grape/api/required_parameters_with_invalid_method_spec.rb +26 -0
  39. data/spec/grape/api_spec.rb +110 -38
  40. data/spec/grape/dsl/inside_route_spec.rb +267 -240
  41. data/spec/grape/endpoint_spec.rb +10 -0
  42. data/spec/grape/entity_spec.rb +2 -2
  43. data/spec/grape/middleware/formatter_spec.rb +23 -4
  44. data/spec/grape/middleware/versioner/header_spec.rb +1 -1
  45. data/spec/grape/middleware/versioner/path_spec.rb +1 -1
  46. data/spec/grape/parser_spec.rb +82 -0
  47. data/spec/grape/request_spec.rb +2 -2
  48. data/spec/grape/validations/params_scope_spec.rb +2 -2
  49. data/spec/grape/validations/validators/coerce_spec.rb +51 -0
  50. data/spec/grape/validations_spec.rb +1 -1
  51. data/tmp/Gemfile.lock +63 -0
  52. metadata +70 -55
  53. data/lib/grape/route.rb +0 -32
@@ -1,32 +0,0 @@
1
- module Grape
2
- # A compiled route for inspection.
3
- class Route
4
- # @api private
5
- def initialize(options = {})
6
- @options = options || {}
7
- end
8
-
9
- # @api private
10
- def method_missing(method_id, *arguments)
11
- match = /route_([_a-zA-Z]\w*)/.match(method_id.to_s)
12
- if match
13
- @options[match.captures.last.to_sym]
14
- else
15
- super
16
- end
17
- end
18
-
19
- # Generate a short, human-readable representation of this route.
20
- def to_s
21
- "version=#{route_version}, method=#{route_method}, path=#{route_path}"
22
- end
23
-
24
- private
25
-
26
- # This is defined so that certain Ruby methods which attempt to call #to_ary
27
- # on objects, e.g. Array#join, will not hit #method_missing.
28
- def to_ary
29
- nil
30
- end
31
- end
32
- end