Sha256: 8a8b11ddad7acb7c3336c8d2c0e68bf0ef1f30dfed12a1fcde9bcbdce7a6074f

Contents?: true

Size: 1.01 KB

Versions: 99

Compression:

Stored size: 1.01 KB

Contents

require "edition"

class SimpleSmartAnswerEdition < Edition
  class Node
    include Mongoid::Document
    embedded_in :edition, :class_name => "SimpleSmartAnswerEdition"
    embeds_many :options, :class_name => "SimpleSmartAnswerEdition::Node::Option"

    accepts_nested_attributes_for :options, :allow_destroy => true

    field :slug, type: String
    field :title, type: String
    field :body, type: String
    field :order, type: Integer
    field :kind, type: String

    default_scope order_by([:order, :asc])

    GOVSPEAK_FIELDS = [:body]

    KINDS = [
      'question',
      'outcome'
    ]

    validates :title, :kind, presence: true
    validates :kind, inclusion: { :in => KINDS }
    validates :slug, :presence => true, :format => {:with => /\A[a-z0-9-]+\z/}

    validate :outcomes_have_no_options

    validates_with SafeHtml

    private

    def outcomes_have_no_options
      errors.add(:options, "cannot be added for an outcome") if options.present? and options.any? and kind == "outcome"
    end
  end
end

Version data entries

99 entries across 99 versions & 1 rubygems

Version Path
govuk_content_models-28.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-27.2.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-27.1.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-27.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-26.2.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-26.1.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-26.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-25.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-24.2.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-24.1.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-24.0.1 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-24.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-23.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-22.2.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-22.1.2 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-22.1.1 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-22.1.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-22.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-21.0.0 app/models/simple_smart_answer_edition/node.rb
govuk_content_models-20.2.0 app/models/simple_smart_answer_edition/node.rb