Sha256: 9ba9de6fe9cb9cb6806af5d3390c2438f46822c8ab7944e441d63c1d0aa52a99

Contents?: true

Size: 637 Bytes

Versions: 94

Compression:

Stored size: 637 Bytes

Contents

module Pulitzer
  class ContentElementValidator < ActiveModel::Validator
    attr_accessor :record

    def validate(record)
      self.record = record
      validate_label_presence
      validate_lable_uniqueness if record.ensure_unique
    end

    private

      def validate_label_presence
        record.errors.add(:label, "is required.") unless record.label.present?
      end

      def validate_label_uniqueness
        if record.version && record.version.content_elements.to_a.reject{|ce| ce == record}.any?{|ce| ce.label == record.label}
          record.errors.add(:label, "is already taken.")
        end
      end

  end
end

Version data entries

94 entries across 94 versions & 1 rubygems

Version Path
pulitzer-0.15.31 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.30 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.29 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.28 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.27 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.26 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.25 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.24 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.23 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.22 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.21 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.20 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.19 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.18 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.17 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.16 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.15 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.14 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.13 app/validators/pulitzer/content_element_validator.rb
pulitzer-0.15.12 app/validators/pulitzer/content_element_validator.rb