Sha256: 2edd5849122126679420b9efd2655e6f53060ba708d8d595463bfea4fa9c5a45

Contents?: true

Size: 1.2 KB

Versions: 28

Compression:

Stored size: 1.2 KB

Contents

module PresentationToggles
  extend ActiveSupport::Concern

  included do
    field :presentation_toggles, type: Hash, default: default_presentation_toggles
    validates_presence_of :organ_donor_registration_url, if: :promote_organ_donor_registration?
  end

  def promote_organ_donor_registration=(value)
    value = value.is_a?(Boolean) ? value : value != '0' # if assigned using a checkbox
    organ_donor_registration_key['promote_organ_donor_registration'] = value
  end

  def promote_organ_donor_registration
    organ_donor_registration_key['promote_organ_donor_registration']
  end
  alias_method :promote_organ_donor_registration?, :promote_organ_donor_registration

  def organ_donor_registration_url=(value)
    organ_donor_registration_key['organ_donor_registration_url'] = value
  end
  
  def organ_donor_registration_url
    organ_donor_registration_key['organ_donor_registration_url']
  end

  def organ_donor_registration_key
    presentation_toggles['organ_donor_registration']
  end

  module ClassMethods
    def default_presentation_toggles
      {
        'organ_donor_registration' =>
          { 'promote_organ_donor_registration' => false, 'organ_donor_registration_url' => '' }
      }
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
govuk_content_models-34.0.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-33.0.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-32.3.1 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-32.3.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-32.2.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-32.1.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-32.0.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.4.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.3.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.2.2 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.2.1 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.2.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.1.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-31.0.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-30.0.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-29.1.2 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-29.1.1 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-29.1.0 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-29.0.1 lib/govuk_content_models/presentation_toggles.rb
govuk_content_models-29.0.0 lib/govuk_content_models/presentation_toggles.rb