Sha256: dc5d1dcc9f1b66ac93b523c5bbb68c9b24b5416788f1bcfe8a01e6992f916768
Contents?: true
Size: 904 Bytes
Versions: 3
Compression:
Stored size: 904 Bytes
Contents
require 'uri' module Judge module Controller def self.included(base) base.clear_respond_to base.respond_to(:json) end def validation(params) params = normalize_validation_params(params) if params[:klass] && Judge.config.exposed?(params[:klass], params[:attribute]) Validation.new(params) else NullValidation.new(params) end end private def normalize_validation_params(params) params.keep_if { |key| %w{klass attribute value kind}.include?(key) } params[:klass] = find_klass(params[:klass]) params[:attribute] = params[:attribute].to_sym params[:value] = URI.decode(params[:value]) params[:kind] = params[:kind].to_sym params end def find_klass(name) Module.const_get(name.classify) rescue NameError nil end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
judge-2.0.3 | lib/judge/controller.rb |
judge-2.0.2 | lib/judge/controller.rb |
judge-2.0.1 | lib/judge/controller.rb |