Sha256: 0c94cada01c4772ae02ffcb842c19bc4c0d40beaf67929be471b2b9f25611701

Contents?: true

Size: 857 Bytes

Versions: 13

Compression:

Stored size: 857 Bytes

Contents

# Validations for both concepts and labels

module FirstLevelObjectValidations
  extend ActiveSupport::Concern

  included do
    validate :distinct_versions, on: :create # FIXME: on: :create?
    validate :origin_has_to_be_escaped
  end

  def origin_has_to_be_escaped
    unless Origin.new(origin).valid?
      errors.add :origin, I18n.t('txt.models.concept.origin_error')
    end
  end

  def distinct_versions
    query = self.class.by_origin(origin)
    existing_total = query.count
    if existing_total >= 2
      errors.add :base, I18n.t('txt.models.concept.version_error', origin: origin)
    elsif existing_total == 1
      unless (query.published.count == 0 && published?) or
             (query.published.count == 1 && !published?)
        errors.add :base, I18n.t('txt.models.concept.version_error', origin: origin)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
iqvoc-4.14.5 app/models/concerns/first_level_object_validations.rb
iqvoc-4.14.4 app/models/concerns/first_level_object_validations.rb
iqvoc-4.13.2 app/models/concerns/first_level_object_validations.rb
iqvoc-4.13.0 app/models/concerns/first_level_object_validations.rb
iqvoc-4.12.1 app/models/concerns/first_level_object_validations.rb
iqvoc-4.12.0 app/models/concerns/first_level_object_validations.rb
iqvoc-4.11.1 app/models/concerns/first_level_object_validations.rb
iqvoc-4.11.0 app/models/concerns/first_level_object_validations.rb
iqvoc-4.10.0 app/models/concerns/first_level_object_validations.rb
iqvoc-4.9.0 app/models/concerns/first_level_object_validations.rb
iqvoc-4.8.2 app/models/concerns/first_level_object_validations.rb
iqvoc-4.8.1 app/models/concerns/first_level_object_validations.rb
iqvoc-4.8.0 app/models/concerns/first_level_object_validations.rb