Sha256: b4a881277c32116ead5e245ea137b14683d5b58ff760ee69f60a89ac326165a8

Contents?: true

Size: 780 Bytes

Versions: 1

Compression:

Stored size: 780 Bytes

Contents

module FieldsValidator 

  extend ActiveSupport::Concern

  included do
    validate :validate_column_names
  end

  class_methods do 
    def validate_required_attributes
      required_attributes.each do |a|
        validates a.to_sym, presence: true 
      end
    end
    def load_required_attributes(*_attrs)
      @required_attributes=_attrs.any? ? _attrs : []
      @required_attributes.uniq!
    end

    def required_attributes
      @required_attributes
    end
  end

  private

  def required_database_fields
    defined?(super) ? super : []
  end

  def validate_column_names
    required_database_fields.each { |rdf| errors_add(rdf, "does not have a column in the database.")  unless self.class.column_names.include?(rdf)} if required_database_fields.any?
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
morse_fields_validator-1.0.0 lib/morse_fields_validator/fields_validator.rb