All Versions
64
Latest Version
Avg Release Cycle
64 days
Latest Release
450 days ago
Changelog History
Page 4
Changelog History
Page 4
-
v0.18.0 Changes
🔋 Features
- 👕 #1480: Used the ruby-grape-danger gem for PR linting - @dblock.
- 💎 #1486: Implemented except in values validator - @jonmchan.
- 💎 #1470: Dropped support for Ruby 2.0 - @namusyaka.
- 💎 #1490: Switched to Ruby-2.x+ syntax - @namusyaka.
- 💎 #1499: Support
fail_fast
param validation option - @dgasper.
🛠 Fixes
- 💎 #1498: Fix: skip validations in inactive given blocks - @jlfaber.
- 💎 #1479: Fix: support inserting middleware before/after anonymous classes in the middleware stack - @rosa.
- 💎 #1488: Fix: ensure calling before filters when receiving OPTIONS request - @namusyaka, @jlfaber.
- 💎 #1493: Fix: coercion and lambda fails params validation - @jonmchan.
-
v0.17.0 Changes
🔋 Features
- 0️⃣ #1393: Middleware can be inserted before or after default Grape middleware - @ridiculous.
- 💎 #1390: Allowed inserting middleware at arbitrary points in the middleware stack - @rosa.
- 💎 #1366: Stored
message_key
onGrape::Exceptions::Validation
- @mkou. - #1398: Added
rescue_from :grape_exceptions
- allow Grape to use the built-inGrape::Exception
handing and userescue :all
behavior for everything else - @mmclead. - 💎 #1443: Extended
given
to receive aProc
- @glaucocustodio. - 👕 #1455: Added an automated PR linter - @orta.
🛠 Fixes
- 💎 #1463: Fix array indicies in error messages - @ffloyd.
- 💎 #1465: Fix 'before' being called twice when using not allowed method - @jsteinberg.
- 💎 #1446: Fix for
env
insidebefore
when using not allowed method - @leifg. - 0️⃣ #1438: Try to dup non-frozen default params with each use - @jlfaber.
- 💎 #1430: Fix for
declared(params)
insideroute_param
- @Arkanain. - 💎 #1405: Fix priority of
rescue_from
clauses applying - @hedgesky. - 💎 #1365: Fix finding exception handler in error middleware - @ktimothy.
- 💎 #1380: Fix
allow_blank: false
forTime
attributes with valid values causesNoMethodError
- @ipkes. - 💎 #1384: Fix parameter validation with an empty optional nested
Array
- @ipkes. - 💎 #1414: Fix multiple version definitions for path versioning - @304.
- #1415: Fix
declared(params, include_parent_namespaces: false)
- @304. - 💎 #1421: Avoid polluting
Grape::Middleware::Error
- @namusyaka. - 💎 #1422: Concat parent declared params with current one - @plukevdh, @rnubel, @namusyaka.
-
v0.16.2 Changes
🔋 Features
- 💎 #1348: Fix global functions polluting Grape::API scope - @dblock.
- 💎 #1357: Expose Route#options - @namusyaka.
🛠 Fixes
- 💎 #1357: Don't include fixed named captures as route params - @namusyaka.
- 💎 #1359: Avoid evaluating the same route twice - @namusyaka, @dblock.
- 💎 #1361: Return 405 correctly even if version is using as header and wrong request method - @namusyaka, @dblock.
-
v0.16.1 Changes
🔋 Features
- 💎 #1276: Replace rack-mount with new router - @namusyaka.
- 💎 #1321: Serve files without using FileStreamer-like object - @lfidnl.
- 💎 #1339: Implement Grape::API.recognize_path - @namusyaka.
🛠 Fixes
- 💎 #1325: Params: Fix coerce_with helper with Array types - @ngonzalez.
- 💎 #1326: Fix wrong behavior for OPTIONS and HEAD requests with catch-all - @ekampp, @namusyaka.
- 📜 #1330: Add
register
keyword for adding customized parsers and formatters - @namusyaka. - 💎 #1336: Do not modify Hash argument to
error!
- @tjwp.
-
v0.15.0 Changes
🔋 Features
- 💎 #1227: Store
message_key
onGrape::Exceptions::Validation
- @stjhimy. - 💎 #1232: Helpers are now available inside
rescue_from
- @namusyaka. - 💎 #1237: Allow multiple parameters in
given
, which behaves as if the scopes were nested in the inputted order - @ochagata. - 💎 #1238: Call
after
of middleware on error - @namusyaka. - 💎 #1243: Add
header
support for middleware - @namusyaka. - 0️⃣ #1252: Allow default to be a subset or equal to allowed values without raising IncompatibleOptionValues - @jeradphelps.
- 💎 #1255: Allow param type definition in
route_param
- @namusyaka. - 💎 #1257: Allow Proc, Symbol or String in
rescue_from with: ...
- @namusyaka. - 💎 #1280: Support
Rack::Sendfile
middleware - @lfidnl. - ⚠ #1285: Add a warning for errors appearing in
after
callbacks - @gregormelhorn. - 💎 #1295: Add custom validation messages for parameter exceptions - @railsmith.
🛠 Fixes
- 💎 #1216: Fix JSON error response when calling
error!
with non-Strings - @jrforrest. - 💎 #1225: Fix
given
with nested params not returning correct declared params - @JanStevens. - 0️⃣ #1249: Don't fail even if invalid type value is passed to default validator - @namusyaka.
- #1266: Fix
Allow
header includingOPTIONS
whendo_not_route_options!
is active - @arempe93. - 💎 #1270: Fix
param
versioning with a custom parameter - @wshatch. - 💎 #1282: Fix specs circular dependency - @304.
- 💎 #1283: Fix 500 error for xml format when method is not allowed - @304.
- 💎 #1197: Fix using JSON and Array[JSON] as groups when parameter is optional - @lukeivers.
- 💎 #1227: Store
-
v0.14.0 Changes
December 07, 2015🔋 Features
- 💎 #1218: Provide array index context in errors - @towanda.
- 💎 #1196: Allow multiple
before_each
blocks - @huynhquancam. - 💎 #1190: Bypass formatting for statuses with no entity-body - @tylerdooling.
- 💎 #1188: Allow parameters with more than one type - @dslh.
- 💎 #1179: Allow all RFC6838 valid characters in header vendor - @suan.
- 💎 #1170: Allow dashes and periods in header vendor - @suan.
- 💎 #1167: Convenience wrapper
type: File
for validating multipart file parameters - @dslh. - 🔨 #1167: Refactor and extend coercion and type validation system - @dslh.
- 💎 #1163: First-class
JSON
parameter type - @dslh. - 💎 #1161: Custom parameter coercion using
coerce_with
- @dslh.
🛠 Fixes
- 💎 #1194: Redirect as plain text with message - @tylerdooling.
- 💎 #1185: Use formatters for custom vendored content types - @tylerdooling.
- 💎 #1156: Fixed
no implicit conversion of Symbol into Integer
with nestedvalues
validation - @quickpay. - 💎 #1153: Fixes boolean declaration in an external file - @towanda.
- 💎 #1142: Makes #declared unavailable to before filters - @jrforrest.
- 💎 #1114: Fix regression which broke identical endpoints with different versions - @suan.
- 💎 #1109: Memoize Virtus attribute and fix memory leak - @marshall-lee.
- 💎 #1101: Fix: Incorrect media-type
Accept
header now correctly returns 406 withstrict: true
- @elliotlarson. - ⚠ #1108: Raise a warning when
desc
is called with options hash and block - @rngtng.
-
v0.13.0 Changes
🔋 Features
- 💎 #1039: Added support for custom parameter types - @rnubel.
- 💎 #1047: Adds
given
to DSL::Parameters, allowing for dependent params - @rnubel. - 💎 #1064: Add public
Grape::Exception::ValidationErrors#full_messages
- @romanlehnert. - 💎 #1079: Added
stream
method to take advantage ofRack::Chunked
- @zbelzer. - 💎 #1086: Added
ActiveSupport::Notifications
instrumentation - @wagenet.
🛠 Fixes
- 💎 #1062: Fix:
Grape::Exceptions::ValidationErrors
will include headers set byheader
- @yairgo. - 💎 #1038: Avoid dup-ing the
String
class when used in inherited params - @rnubel. - 💎 #1042: Fix coercion of complex arrays - @dim.
- 💎 #1045: Do not convert
Rack::Response
toRack::Response
in middleware - @dmitry. - 🚚 #1048: Only dup
InheritableValues
, remove support fordeep_dup
- @toddmazierski. - 💎 #1052: Reset
description[:params]
when resetting validations - @marshall-lee. - 💎 #1088: Support ActiveSupport 3.x by explicitly requiring
Hash#except
- @wagenet. - 💎 #1096: Fix coercion on booleans - @towanda.
-
v0.12.0 Changes
🔋 Features
- 💎 #995: Added support for coercion to Set or Set[Other] - @jordansexton @u2.
- 💎 #980: Grape is now eager-loaded - @u2.
- 💎 #956: Support
present
withGrape::Presenters::Presenter
- @u2. - 💎 #974: Added
error!
torescue_from
blocks - @whatasunnyday. - 💎 #950: Status method can now accept one of Rack::Utils status code symbols (:ok, :found, :bad_request, etc.) - @dabrorius.
- 💎 #952: Status method now raises error when called with invalid status code - @dabrorius.
- 💎 #957: Regexp validator now supports
allow_blank
,nil
value behavior changed - @calfzhou. - 0️⃣ #962: The
default
attribute withfalse
value is documented now - @ajvondrak. - 💎 #1026: Added
file
method, explicitly setting a file-like response object - @dblock.
🛠 Fixes
- 0️⃣ #994: Fixed optional Array params default to Hash - @u2.
- 💎 #988: Fixed duplicate identical endpoints - @u2.
- 0️⃣ #936: Fixed default params processing for optional groups - @dm1try.
- 💎 #942: Fixed forced presence for optional params when based on a reused entity that was also required in another context - @croeck.
- 💎 #1001: Fixed calling endpoint with specified format with format in its path - @hodak.
- 💎 #1005: Fixed the Grape::Middleware::Globals - @urkle.
- 💎 #1012: Fixed
allow_blank: false
with a Boolean value offalse
- @mfunaro. - 🔀 #1023: Fixes unexpected behavior with
present
and an object that responds tomerge
but isn't a Hash - @dblock. - 💎 #1017: Fixed
undefined method stringify_keys
with nested mutual exclusive params - @quickpay.
-
v0.11.0 Changes
- 💎 #925: Fixed
toplevel constant DateTime referenced by Virtus::Attribute::DateTime
- @u2. - 💎 #916: Added
DateTime/Date/Numeric/Boolean
type supportallow_blank
- @u2. - 💎 #871: Fixed
Grape::Middleware::Base#response
- @galathius. - 📜 #559: Added support for Rack 1.6.0, which parses requests larger than 128KB - @myitcv.
- 💎 #876: Call to
declared(params)
now returns aHashie::Mash
- @rodzyn. - 💎 #879: The
route_info
value is no longer included inparams
Hash - @rodzyn. - 💎 #881: Fixed
Grape::Validations::ValuesValidator
support forRange
type - @ajvondrak. - 💎 #901: Fix: callbacks defined in a version block are only called for the routes defined in that block - @kushkella.
- 💎 #886: Group of parameters made to require an explicit type of Hash or Array - @jrichter1.
- 📚 #912: Extended the
:using
feature for param documentation tooptional
fields - @croeck. - 📜 #906: Fix: invalid body parse errors are not rescued by handlers - @croeck.
- 💎 #913: Fix: Invalid accept headers are not processed by rescue handlers - @croeck.
- 💎 #913: Fix: Invalid accept headers cause internal processing errors (500) when http_codes are defined - @croeck.
- 💎 #917: Use HTTPS for rubygems.org - @O-I.
- 💎 #925: Fixed