Sha256: 1903b3a62a52a7b5ab9a68e61567129a0975274fe3d67dda0ca08409c8489589

Contents?: true

Size: 1.2 KB

Versions: 28

Compression:

Stored size: 1.2 KB

Contents

module Workarea
  class Release
    module Activation
      extend ActiveSupport::Concern

      included do
        around_create :save_activate_with
        attr_accessor :activate_with
      end

      def save_activate_with
        self.active = false if activate_with?
        yield
        create_activation_changeset(activate_with) if activate_with?
      end

      def activate_with?
        activate_with.present? && BSON::ObjectId.legal?(activate_with)
      end

      def create_activation_changeset(release_id)
        set = changesets.find_or_initialize_by(release_id: release_id)
        set.document_path = document_path

        set.changeset = if Workarea.config.localized_active_fields
          { 'active' => { I18n.locale.to_s => true } }
        else
          { 'active' => true }
        end
        set.original = if Workarea.config.localized_active_fields
          { 'active' => { I18n.locale.to_s => false } }
        else
          { 'active' => false }
        end

        set.save!
      end

      def was_active?
        (Workarea.config.localized_active_fields && active_was[I18n.locale.to_s]) ||
          (!Workarea.config.localized_active_fields && active_was)
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/models/workarea/release/activation.rb
workarea-core-3.5.26 app/models/workarea/release/activation.rb
workarea-core-3.5.25 app/models/workarea/release/activation.rb
workarea-core-3.5.23 app/models/workarea/release/activation.rb
workarea-core-3.5.22 app/models/workarea/release/activation.rb
workarea-core-3.5.21 app/models/workarea/release/activation.rb
workarea-core-3.5.20 app/models/workarea/release/activation.rb
workarea-core-3.5.19 app/models/workarea/release/activation.rb
workarea-core-3.5.18 app/models/workarea/release/activation.rb
workarea-core-3.5.17 app/models/workarea/release/activation.rb
workarea-core-3.5.16 app/models/workarea/release/activation.rb
workarea-core-3.5.15 app/models/workarea/release/activation.rb
workarea-core-3.5.14 app/models/workarea/release/activation.rb
workarea-core-3.5.13 app/models/workarea/release/activation.rb
workarea-core-3.5.12 app/models/workarea/release/activation.rb
workarea-core-3.5.11 app/models/workarea/release/activation.rb
workarea-core-3.5.10 app/models/workarea/release/activation.rb
workarea-core-3.5.9 app/models/workarea/release/activation.rb
workarea-core-3.5.8 app/models/workarea/release/activation.rb
workarea-core-3.5.7 app/models/workarea/release/activation.rb