Module: EacRailsUtils::Models::Validations

Defined in:
lib/eac_rails_utils/models/validations.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.column_errors(model_or_record, column, value) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/eac_rails_utils/models/validations.rb', line 9

def column_errors(model_or_record, column, value)
  model = model_class_or_record_to_model(model_or_record)
  record = model.new
  model.validators_on(column).each do |validator|
    next if validator.options[:allow_blank] && value.blank?
    next if validator.options[:allow_nil] && value.nil?

    validator.validate_each(record, column, value)
  end
  record.errors
end

.column_required?(model_or_record, column) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/eac_rails_utils/models/validations.rb', line 21

def column_required?(model_or_record, column)
  !column_valid?(model_or_record, column, nil)
end

.column_valid?(model_or_record, column, value) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/eac_rails_utils/models/validations.rb', line 25

def column_valid?(model_or_record, column, value)
  column_errors(model_or_record, column, value).empty?
end

Instance Method Details

#attribute_errors(attribute) ⇒ Object



56
57
58
# File 'lib/eac_rails_utils/models/validations.rb', line 56

def attribute_errors(attribute)
  self.class.column_errors(attribute, send(attribute))
end

#attribute_required?(attribute) ⇒ Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/eac_rails_utils/models/validations.rb', line 60

def attribute_required?(attribute)
  self.class.column_required?(attribute)
end

#attribute_valid?(attribute) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/eac_rails_utils/models/validations.rb', line 64

def attribute_valid?(attribute)
  attribute_errors(attribute).empty?
end