class Mv::Core::Validation::Builder::Inclusion
Public Instance Methods
conditions()
click to toggle source
# File lib/mv/core/validation/builder/inclusion.rb, line 10 def conditions [{ statement: apply_allow_nil_and_blank(apply_in(column_reference)), message: message }] end
Protected Instance Methods
apply_in(stmt)
click to toggle source
# File lib/mv/core/validation/builder/inclusion.rb, line 29 def apply_in stmt if self.in.is_a?(Range) "#{stmt} BETWEEN #{db_value(self.in.min)} AND #{db_value(self.in.max)}" else prepared_in = self.in.to_a.collect{ |v| db_value(v) } "#{stmt} IN (#{prepared_in.join(', ')})" end end
db_value(value)
click to toggle source
# File lib/mv/core/validation/builder/inclusion.rb, line 19 def db_value value return value if value.is_a?(Integer) or value.is_a?(Float) return "'#{value.to_s}'" if value.is_a?(String) raise Mv::Core::Error.new(table_name: table_name, column_name: column_name, validation_type: :inclusion, options: { in: value }, error: "#{value.class} is not supported as :in value") end