class PrettyValidation::Validation
Attributes
column_name[R]
method_name[R]
options[R]
Public Class Methods
new(method_name, column_name, options = nil)
click to toggle source
# File lib/pretty_validation/validation.rb, line 36 def initialize(method_name, column_name, options = nil) @method_name = method_name @column_name = column_name @options = options end
sexy_validations(table_name)
click to toggle source
# File lib/pretty_validation/validation.rb, line 9 def self.sexy_validations(table_name) columns = Schema.columns(table_name) columns = columns.reject { |x| x.name.in? %w(id created_at updated_at) } columns.map do |column| options = {} options[:presence] = true unless column.null options[:numericality] = true if column.type == :integer Validation.new('validates', column.name.to_sym, options) if options.present? end.compact end
unique_validations(table_name)
click to toggle source
# File lib/pretty_validation/validation.rb, line 22 def self.unique_validations(table_name) Schema.indexes(table_name).select(&:unique).reverse.map do |x| column_name = x.columns[0] scope = x.columns[1..-1].map(&:to_sym) options = if scope.size > 1 { scope: scope } elsif scope.size == 1 { scope: scope[0] } end Validation.new('validates_uniqueness_of', column_name.to_sym, options) end end
Public Instance Methods
==(other)
click to toggle source
# File lib/pretty_validation/validation.rb, line 42 def ==(other) method_name == other.method_name && column_name == other.column_name && options == other.options end
to_s()
click to toggle source
# File lib/pretty_validation/validation.rb, line 48 def to_s if options.blank? "#{method_name} #{column_name.inspect}" else "#{method_name} #{column_name.inspect}, #{options.to_s}" end end