grape 1.2.0 → 1.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4362917201381823e379e97fe0be3964a122a7d56039b34419f811c6cfe3f6e
4
- data.tar.gz: 5975d6e356d8487684f9470546e9c3e42027fb4610f879d844f1c9871e614f7e
3
+ metadata.gz: 98967e931efbc7d185d03dc983f3c1b248178e1e19de4b3179f4ed3fc7971efb
4
+ data.tar.gz: '009bd8cec6cfb9e2eb18864635b9785a36b1540efc4c838d5995c18b8b9e2b62'
5
5
  SHA512:
6
- metadata.gz: 61a0080907f18d90106ee479cba0229aee5e3e500b42310e8c7d78a95632c4f580616dcdc10947ec008ae76cef19029a69f184749de6110a54231e688c104aea
7
- data.tar.gz: 586400490332bdd096ef8f299f8ace196788268d505b76beb00a969204819940b4b5d2b1159309206c2826186e65302c19cda4f7ea2aec5ecf14109ed29362ba
6
+ metadata.gz: 7d43afee6bb67478c37c818bc7c14e0e39d04b7d1c6fed6232e5b7b42099acb1bea99c729770f93b2e8e08c028db764267eb26ce4c7d880e39e974a6f5014e01
7
+ data.tar.gz: 2ae00e36c84235da52059161f224c383ce9826878034d101c8bbaf91c94575e3c762e6d622bbd2d37b4f52c40a162c71c3c675d2e929ed4d8a161ae3364f5528
@@ -1,8 +1,26 @@
1
- ### 1.2.0 (Next)
1
+ ### 1.2.2 (Next)
2
2
 
3
3
  #### Features
4
4
 
5
5
  * Your contribution here.
6
+
7
+ #### Fixes
8
+
9
+ * Your contribution here.
10
+
11
+ ### 1.2.1 (11/28/2018)
12
+
13
+ #### Features
14
+
15
+
16
+ #### Fixes
17
+
18
+ * [#1825](https://github.com/ruby-grape/grape/pull/1825): `to_s` on a mounted class now responses with the API name - [@myxoh](https://github.com/myxoh).
19
+
20
+ ### 1.2.0 (11/26/2018)
21
+
22
+ #### Features
23
+
6
24
  * [#1813](https://github.com/ruby-grape/grape/pull/1813): Add ruby 2.5 support, drop 2.2. Update rails version in travis - [@darren987469](https://github.com/darren987469).
7
25
  * [#1803](https://github.com/ruby-grape/grape/pull/1803): Adds the ability to re-mount all endpoints in any location - [@myxoh](https://github.com/myxoh).
8
26
  * [#1795](https://github.com/ruby-grape/grape/pull/1795): Fix vendor/subtype parsing of an invalid Accept header - [@bschmeck](https://github.com/bschmeck).
@@ -10,7 +28,6 @@
10
28
 
11
29
  #### Fixes
12
30
 
13
- * Your contribution here.
14
31
  * [#1796](https://github.com/ruby-grape/grape/pull/1796): Fix crash when available locales are enforced but fallback locale unavailable - [@Morred](https://github.com/Morred).
15
32
  * [#1776](https://github.com/ruby-grape/grape/pull/1776): Validate response returned by the exception handler - [@darren987469](https://github.com/darren987469).
16
33
  * [#1787](https://github.com/ruby-grape/grape/pull/1787): Add documented but not implemented ability to `.insert` a middleware in the stack - [@michaellennox](https://github.com/michaellennox).
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grape (1.2.0)
4
+ grape (1.2.1)
5
5
  activesupport
6
6
  builder
7
7
  mustermann-grape (~> 1.0.0)
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/grape.svg)](http://badge.fury.io/rb/grape)
4
4
  [![Build Status](https://travis-ci.org/ruby-grape/grape.svg?branch=master)](https://travis-ci.org/ruby-grape/grape)
5
- [![Dependency Status](https://gemnasium.com/ruby-grape/grape.svg)](https://gemnasium.com/ruby-grape/grape)
6
5
  [![Code Climate](https://codeclimate.com/github/ruby-grape/grape.svg)](https://codeclimate.com/github/ruby-grape/grape)
7
6
  [![Coverage Status](https://coveralls.io/repos/github/ruby-grape/grape/badge.svg?branch=master)](https://coveralls.io/github/ruby-grape/grape?branch=master)
8
7
  [![Inline docs](https://inch-ci.org/github/ruby-grape/grape.svg)](https://inch-ci.org/github/ruby-grape/grape)
@@ -147,9 +146,9 @@ content negotiation, versioning and much more.
147
146
 
148
147
  ## Stable Release
149
148
 
150
- You're reading the documentation for the next release of Grape, which should be **1.1.1**.
149
+ You're reading the documentation for the next release of Grape, which should be **1.2.2**.
151
150
  Please read [UPGRADING](UPGRADING.md) when upgrading from a previous version.
152
- The current stable release is [1.1.0](https://github.com/ruby-grape/grape/blob/v1.1.0/README.md).
151
+ The current stable release is [1.2.1](https://github.com/ruby-grape/grape/blob/v1.2.1/README.md).
153
152
 
154
153
  ## Project Resources
155
154
 
@@ -1,10 +1,27 @@
1
1
  Upgrading Grape
2
2
  ===============
3
3
 
4
+ ### Upgrading to >= 1.2.1
5
+
6
+ #### Obtaining the name of a mounted class
7
+
8
+ In order to make obtaining the name of a mounted class simpler, we've delegated `.to_s` to `base.name`
9
+
10
+ **Deprecated in 1.2.0**
11
+ ```ruby
12
+ payload[:endpoint].options[:for].name
13
+ ```
14
+ **New**
15
+ ```ruby
16
+ payload[:endpoint].options[:for].to_s
17
+ ```
18
+
4
19
  ### Upgrading to >= 1.2.0
5
20
 
6
21
  #### Changes in the Grape::API class
7
22
 
23
+ ##### Patching the class
24
+
8
25
  In an effort to make APIs re-mountable, The class `Grape::API` no longer refers to an API instance,
9
26
  rather, what used to be `Grape::API` is now `Grape::API::Instance` and `Grape::API` was replaced
10
27
  with a class that can contain several instances of `Grape::API`.
@@ -29,6 +46,23 @@ class Grape::API::Instance
29
46
  end
30
47
  ```
31
48
 
49
+ ##### `name` (and other caveats) of the mounted API
50
+
51
+ After the patch, the mounted API is no longer a Named class inheriting from `Grape::API`, it is an anonymous class
52
+ which inherit from `Grape::API::Instance`.
53
+ What this means in practice, is:
54
+ - Generally: you can access the named class from the instance calling the getter `base`.
55
+ - In particular: If you need the `name`, you can use `base`.`name`
56
+
57
+ **Deprecated**
58
+ ```ruby
59
+ payload[:endpoint].options[:for].name
60
+ ```
61
+ **New**
62
+ ```ruby
63
+ payload[:endpoint].options[:for].base.name
64
+ ```
65
+
32
66
  #### Changes in rescue_from returned object
33
67
 
34
68
  Grape will now check the object returned from `rescue_from` and ensure that it is a `Rack::Response`. That makes sure response is valid and avoids exposing service information. Change any code that invoked `Rack::Response.new(...).finish` in a custom `rescue_from` block to `Rack::Response.new(...)` to comply with the validation.
@@ -17,6 +17,10 @@ module Grape
17
17
  grape_api.instances << self
18
18
  end
19
19
 
20
+ def to_s
21
+ (base && base.to_s) || super
22
+ end
23
+
20
24
  # A class-level lock to ensure the API is not compiled by multiple
21
25
  # threads simultaneously within the same process.
22
26
  LOCK = Mutex.new
@@ -1,4 +1,4 @@
1
1
  module Grape
2
2
  # The current version of Grape.
3
- VERSION = '1.2.0'.freeze
3
+ VERSION = '1.2.1'.freeze
4
4
  end
Binary file
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'A named API' do
4
+ subject(:api_name) { NamedAPI.endpoints.last.options[:for].to_s }
5
+
6
+ let(:api) do
7
+ Class.new(Grape::API) do
8
+ get 'test' do
9
+ 'response'
10
+ end
11
+ end
12
+ end
13
+
14
+ before { stub_const('NamedAPI', api) }
15
+
16
+ it 'can access the name of the API' do
17
+ expect(api_name).to eq 'NamedAPI'
18
+ end
19
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Bleigh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-26 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -321,6 +321,7 @@ files:
321
321
  - spec/grape/middleware/versioner/param_spec.rb
322
322
  - spec/grape/middleware/versioner/path_spec.rb
323
323
  - spec/grape/middleware/versioner_spec.rb
324
+ - spec/grape/named_api_spec.rb
324
325
  - spec/grape/parser_spec.rb
325
326
  - spec/grape/path_spec.rb
326
327
  - spec/grape/presenters/presenter_spec.rb
@@ -398,6 +399,7 @@ test_files:
398
399
  - spec/grape/api/patch_method_helpers_spec.rb
399
400
  - spec/grape/api/optional_parameters_in_route_spec.rb
400
401
  - spec/grape/api/invalid_format_spec.rb
402
+ - spec/grape/named_api_spec.rb
401
403
  - spec/grape/exceptions/validation_spec.rb
402
404
  - spec/grape/exceptions/validation_errors_spec.rb
403
405
  - spec/grape/exceptions/missing_option_spec.rb