Sha256: f43055e13a4c2dbe9a77ae001aae556108ec18512168ff41b30e6e3b31a330ac

Contents?: true

Size: 1.06 KB

Versions: 11

Compression:

Stored size: 1.06 KB

Contents

module Cms
  module Behaviors
    module Archiving
      def self.included(model_class)
        model_class.extend(MacroMethods)
      end
      module MacroMethods
        def archivable?
          !!@is_archivable
        end
        def is_archivable(options={})
          @is_archivable = true
          include InstanceMethods

          scope :archived, ->{where(:archived => true)}
          scope :not_archived, ->{where(:archived => false)}
        end
      end
      module InstanceMethods
        def archive
          self.archived = true
          self.version_comment = "Archived"
          self.save
        end
        def archive!
          self.archived = true
          self.version_comment = "Archived"          
          self.save!
        end
        def unarchive
          self.archived = false
          self.version_comment = "Unarchived"          
          self.save
        end
        def unarchive!
          self.archived = false
          self.version_comment = "Unarchived"          
          self.save!
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
browsercms-artirix-4.0.4 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.3.3 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.3.2 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.3.1 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.3 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.2 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.1.1 lib/cms/behaviors/archiving.rb
browsercms-artirix-4.0.0.rc1.art4 lib/cms/behaviors/archiving.rb
browsercms-4.0.0.rc1 lib/cms/behaviors/archiving.rb
browsercms-4.0.0.beta lib/cms/behaviors/archiving.rb
browsercms-4.0.0.alpha lib/cms/behaviors/archiving.rb