Sha256: 736bdf74198d5d560b5ab846e41133c3b8a06e54b4797d92ab8c126496d0ea96

Contents?: true

Size: 765 Bytes

Versions: 2

Compression:

Stored size: 765 Bytes

Contents

module ControlledVersioning
  class Version < ActiveRecord::Base
    belongs_to :versionable, polymorphic: true
    belongs_to :user
    has_many :version_attributes, as: :version
    has_many :version_children, as: :version

    scope :pending, -> { where(pending: true) }
    scope :accepted, -> { where(accepted: true) }
    scope :declined, -> { where(declined: true) }

    def accept
      if pending?
        Revision::Publisher.new(self).accept_revision unless initial?
        update_attributes(pending: false, accepted: true)
      end
    end

    def decline
      update_attributes(pending: false, declined: true) if pending?
    end

    def versionable_changes
      ChangeTracker.new(self)
    end

    def is_a_child?
      false
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
controlled_versioning-0.9.1 app/models/controlled_versioning/version.rb
controlled_versioning-0.9.0 app/models/controlled_versioning/version.rb