roda-parse-request
roda plugin which automatically parses JSON and url-encoded requests
Usage
In your Gemfile
:
gem 'roda-parse-request'
In your roda app:
require 'roda'
require 'roda-parse-request'
class App < Roda
plugin :parse_request
route do |r|
r.post do
# You can use request.parsed_body here
# By default, it will contain response.body parsed as a json or url-encoded
# request (if the request was sent with the appropiate content-type headers)
end
end
end
Customization
It is possible to add your own parsers to the plugin, like so:
require 'roda'
require 'roda-parse-request'
class App < Roda
plugin :parse_request, parsers: {
'upcase' => ->(data) { data.upcase },
}
route do |r|
r.post do
# You can still use json and url-encoded parsed requests in request.parsed_body
# But now, if you get a request with Content-Type = 'upcase', the body
# will be automatically set to all caps.
end
end
end
See the specs for more examples
Running specs
Clone the repo, run bundle
and then rspec
.
License
MIT License (see LICENSE)