grape 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grape might be problematic. Click here for more details.

Files changed (42) hide show
  1. data/.yardopts +2 -0
  2. data/CHANGELOG.markdown +19 -0
  3. data/Gemfile +2 -0
  4. data/README.markdown +166 -131
  5. data/Rakefile +1 -3
  6. data/lib/grape.rb +0 -3
  7. data/lib/grape/api.rb +16 -4
  8. data/lib/grape/cookies.rb +32 -30
  9. data/lib/grape/endpoint.rb +25 -11
  10. data/lib/grape/entity.rb +5 -0
  11. data/lib/grape/error_formatter/base.rb +2 -1
  12. data/lib/grape/middleware/base.rb +9 -2
  13. data/lib/grape/middleware/error.rb +11 -11
  14. data/lib/grape/middleware/formatter.rb +8 -5
  15. data/lib/grape/middleware/versioner/header.rb +1 -3
  16. data/lib/grape/middleware/versioner/path.rb +15 -2
  17. data/lib/grape/util/deep_merge.rb +4 -4
  18. data/lib/grape/validations.rb +2 -3
  19. data/lib/grape/version.rb +1 -1
  20. data/spec/grape/api_spec.rb +316 -175
  21. data/spec/grape/endpoint_spec.rb +159 -57
  22. data/spec/grape/entity_spec.rb +80 -80
  23. data/spec/grape/middleware/auth/basic_spec.rb +3 -3
  24. data/spec/grape/middleware/auth/digest_spec.rb +4 -4
  25. data/spec/grape/middleware/auth/oauth2_spec.rb +4 -4
  26. data/spec/grape/middleware/base_spec.rb +9 -9
  27. data/spec/grape/middleware/error_spec.rb +4 -4
  28. data/spec/grape/middleware/exception_spec.rb +13 -13
  29. data/spec/grape/middleware/formatter_spec.rb +25 -25
  30. data/spec/grape/middleware/versioner/header_spec.rb +23 -23
  31. data/spec/grape/middleware/versioner/param_spec.rb +8 -8
  32. data/spec/grape/middleware/versioner/path_spec.rb +8 -8
  33. data/spec/grape/middleware/versioner_spec.rb +6 -3
  34. data/spec/grape/util/hash_stack_spec.rb +20 -20
  35. data/spec/grape/validations/presence_spec.rb +1 -1
  36. data/spec/grape/validations/regexp_spec.rb +2 -2
  37. data/spec/grape/validations_spec.rb +4 -4
  38. data/spec/shared/versioning_examples.rb +48 -20
  39. metadata +5 -7
  40. data/.document +0 -5
  41. data/lib/grape/middleware/prefixer.rb +0 -21
  42. data/spec/grape/middleware/prefixer_spec.rb +0 -30
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
@@ -1,21 +0,0 @@
1
- require 'rack/mount/utils'
2
- require 'grape'
3
-
4
- module Grape
5
- module Middleware
6
- class Prefixer < Base
7
- def prefix
8
- prefix = options[:prefix] || ""
9
- prefix = Rack::Mount::Utils.normalize_path(prefix)
10
- prefix
11
- end
12
-
13
- def before
14
- if env['PATH_INFO'].index(prefix) == 0
15
- env['PATH_INFO'].sub!(prefix, '')
16
- env['PATH_INFO'] = Rack::Mount::Utils.normalize_path(env['PATH_INFO'])
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Grape::Middleware::Prefixer do
4
- let(:app){ lambda{|env| [200, {}, env['PATH_INFO']]} }
5
- subject{ Grape::Middleware::Prefixer.new(app, @options || {}) }
6
-
7
- it 'should lop off a prefix (without a slash)' do
8
- @options = {:prefix => 'monkey'}
9
- subject.call('PATH_INFO' => '/monkey/beeswax').last.should == '/beeswax'
10
- end
11
-
12
- it 'should lop off a prefix (with a slash)' do
13
- @options = {:prefix => '/banana'}
14
- subject.call('PATH_INFO' => '/banana/peel').last.should == '/peel'
15
- end
16
-
17
- it 'should not lop off non-prefixes' do
18
- @options = {:prefix => '/monkey'}
19
- subject.call('PATH_INFO' => '/banana/peel').last.should == '/banana/peel'
20
- end
21
-
22
- it 'should pass through unaltered if there is no prefix' do
23
- subject.call('PATH_INFO' => '/awesome').last.should == '/awesome'
24
- end
25
-
26
- it 'should only remove the first instance of the prefix' do
27
- @options = {:prefix => 'api'}
28
- subject.call('PATH_INFO' => '/api/v1/api/awesome').last.should == '/v1/api/awesome'
29
- end
30
- end