module ValidateMyRoutes::Validate

Module for validation. Provides method to validate value by specified rule.

Public Class Methods

validate!(app, rule, *args) { |message| ... } click to toggle source

Perform validation of a single rule in-place Note: this method is not validating that rule is for all parameters or just a single Example:

get 'some/:id' do |id|
  ValidateMyRoutes::Validate.validate!(self, greater_than(5), id.to_i, 'id') do |msg|
    halt 400, "Id <#{id}> failed validation: #{msg}"
  end
end
# File lib/validate_my_routes/validate.rb, line 17
def validate!(app, rule, *args)
  rule.validate!(app, *args)
rescue Errors::ConditionalValidationError
  false
rescue Errors::ValidationError => failure
  app.halt failure.status_code, failure.message unless block_given?
  yield failure.message
end