Sha256: 2c3827f965186f8fd9ee56e74449a33e168087217fff1c72d17623a4cd22bc81

Contents?: true

Size: 1.76 KB

Versions: 6

Compression:

Stored size: 1.76 KB

Contents

require "action_controller"
require "active_support/hash_with_indifferent_access"

require "weak_parameters/base_validator"
require "weak_parameters/array_validator"
require "weak_parameters/boolean_validator"
require "weak_parameters/hash_validator"
require "weak_parameters/integer_validator"
require "weak_parameters/string_validator"
require "weak_parameters/controller"
require "weak_parameters/validation_error"
require "weak_parameters/validator"
require "weak_parameters/version"

# Provides `validates` DSL to controllers to validate params.
#
# Examples
#
#   # POST /recipes { name: "alice" }              #=> 201
#   # POST /recipes { name: "alice", type: 1 }     #=> 201
#   # POST /recipes { name: "alice", type: "bob" } #=> 400
#   # POST /recipes { type: 1 }                    #=> 400
#   class RecipesController < ApplicationController
#     rescue_from WeakParameters::ValidationError do |exception|
#       render text: exception.message, status: 400
#     end
#
#     validates :create do
#       string :name, required: true
#       integer :type
#     end
#
#     def create
#       respond_with Recipe.create(params.slice(:name, :type))
#     end
#   end
#
#   # WeakParameters.stats has its definitions.
#   WeakParameters::stats[:recipes][:create].validators[0].key       #=> :name
#   WeakParameters::stats[:recipes][:create].validators[0].required? #=> true
#   WeakParameters::stats[:recipes][:create].validators[1].key       #=> :type
#   WeakParameters::stats[:recipes][:create].validators[1].required? #=> false
#
module WeakParameters
  def self.stats
    @stats ||= ActiveSupport::HashWithIndifferentAccess.new do |hash, key|
      hash[key] = ActiveSupport::HashWithIndifferentAccess.new
    end
  end
end

ActionController::Base.extend WeakParameters::Controller

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
weak_parameters-0.0.7 lib/weak_parameters.rb
weak_parameters-0.0.6 lib/weak_parameters.rb
weak_parameters-0.0.5 lib/weak_parameters.rb
weak_parameters-0.0.4 lib/weak_parameters.rb
weak_parameters-0.0.3 lib/weak_parameters.rb
weak_parameters-0.0.2 lib/weak_parameters.rb