Sha256: 79f6acb744f7c6ca3362f038625aedd5cecc95d04f06432982bac5b5b756064a

Contents?: true

Size: 683 Bytes

Versions: 18

Compression:

Stored size: 683 Bytes

Contents

module Fae::PageValidatable
  extend ActiveSupport::Concern

  def validators(page_class)
    self.class.validators_on(:content).keep_if { |amv| is_valid_validator?(amv, page_class) }
  end

  def validation_json(page_class)
    validators(page_class).map { |v| Judge::Validator.new(self, :content, v).to_hash }.to_json
  end

  def is_required?(page_class)
    required = false
    validators(page_class).each do |amv|
      required = true if amv.class.name['PresenceValidator']
    end
    required
  end

  private

  def is_valid_validator?(amv, page_class)
    amv.options[:if].blank? || amv.options[:if] == "is_#{page_class.name.underscore}_#{attached_as}?".to_sym
  end

end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
fae-rails-3.0.0 app/models/concerns/fae/page_validatable.rb
fae-rails-2.2.0 app/models/concerns/fae/page_validatable.rb
fae-rails-2.1.0 app/models/concerns/fae/page_validatable.rb
fae-railsz-2.1.0 app/models/concerns/fae/page_validatable.rb
fae-rails-2.0.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.7.1 app/models/concerns/fae/page_validatable.rb
fae-rails-1.7.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.6.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.5.1 app/models/concerns/fae/page_validatable.rb
fae-rails-1.5.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.4.1 app/models/concerns/fae/page_validatable.rb
fae-rails-1.4.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.3.1 app/models/concerns/fae/page_validatable.rb
fae-rails-1.3.0 app/models/concerns/fae/page_validatable.rb
fae-rails-1.2.5 app/models/concerns/fae/page_validatable.rb
fae-rails-1.2.4 app/models/concerns/fae/page_validatable.rb
fae-rails-1.2.3 app/models/concerns/fae/page_validatable.rb
fae-rails-1.2.2 app/models/concerns/fae/page_validatable.rb