Sha256: 98af7981be16223e801d0e0e130b1a866999f02a629e26eea843688fc40e3125
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
module Judge class Validation def initialize(params) @klass = params[:klass] @attribute = params[:attribute] @value = params[:value] @kind = params[:kind] @original_value = params[:original_value] validate! end def amv @amv ||= begin validators = @klass.validators_on(@attribute) validators.keep_if { |amv| amv.kind == @kind } validators.first end end def record @record ||= begin rec = @klass.new rec[@attribute] = @value rec end end def validate! record.errors.delete(@attribute) amv.validate_each(record, @attribute, @value) unless amv.kind == :uniqueness && @value == @original_value && @original_value != "" self end def as_json(options = {}) record.errors.get(@attribute) || [] end end class NullValidation def initialize(params) @params = params end def as_json(options = {}) ["Judge validation for #{@params[:klass]}##{@params[:attribute]} not allowed"] end def method_missing(*args) self end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
judge-2.1.1 | lib/judge/validation.rb |
judge-2.1.0 | lib/judge/validation.rb |
judge-2.0.6 | lib/judge/validation.rb |