class AllowedParams::ValidatorBuilder
Public Class Methods
model_name()
click to toggle source
# File lib/allowed_params/validator_builder.rb, line 23 def self.model_name ActiveModel::Name.new(self, nil, @controller_name) end
new(controller)
click to toggle source
# File lib/allowed_params/validator_builder.rb, line 5 def initialize(controller) @controller = controller @params = {} end
Public Instance Methods
not_white_listed()
click to toggle source
# File lib/allowed_params/validator_builder.rb, line 40 def not_white_listed @params.keys.map(&:to_s) - members.map(&:to_s) end
validates(name, options = {})
click to toggle source
# File lib/allowed_params/validator_builder.rb, line 10 def validates(name, options = {}) @params[name] = options end
validator()
click to toggle source
# File lib/allowed_params/validator_builder.rb, line 14 def validator params_options = @params controller_name = @controller.name.underscore Struct.new(*params_options.keys) do include Model attr_reader :params @controller_name = controller_name def self.model_name ActiveModel::Name.new(self, nil, @controller_name) end params_options.each_pair do |name, validations| if validations.present? validates name, validations end end def initialize(params = {}) @params = params.except(*Array(AllowedParams.config.allowed_params)).except(:controller, :action) members.each do |name| send(:"#{name}=", params[name]) end end def not_white_listed @params.keys.map(&:to_s) - members.map(&:to_s) end end end