Sha256: 78dd0931a0afc09c7ac0552ccef361231d74c2ac6481f4180e554bc103541554
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 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[@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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
judge-3.1.0 | lib/judge/validation.rb |
judge-3.0.0 | lib/judge/validation.rb |