Sha256: 3723868460f8b9c6e54640bc774057143502bf65aecf2da7d5f8eed7141a7cc1

Contents?: true

Size: 1.14 KB

Versions: 26

Compression:

Stored size: 1.14 KB

Contents

module Knitkit
  module Extensions
    module ActiveRecord
      module ActsAsPublishable
        def self.included(base)
          base.extend(ClassMethods)
        end

        module ClassMethods

          def can_be_published
            after_destroy :destroy_published_elements

            extend ActsAsPublishable::SingletonMethods
            include ActsAsPublishable::InstanceMethods
          end

        end

        module SingletonMethods
        end

        module InstanceMethods
          def publish(site, comment, version, current_user)
            site.publish_element(comment, self, version, current_user)
          end

          def destroy_published_elements
            published_elements = PublishedElement.where('published_element_record_id = ? and (published_element_record_type = ? or published_element_record_type = ?)', self.id, self.class.to_s, self.class.superclass.to_s)
            published_elements.each do |published_element|
              published_element.destroy
            end
          end
        end

      end#ActsAsPublishable
    end#ActiveRecord
  end#Extensions
end#Knitkit

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
knitkit-2.1.15 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.14 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.13 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.12 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.11 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.10 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.9 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.8 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.7 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.6 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.5 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.4 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.3 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.2 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.1 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.1.0 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.0.11 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.0.10 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.0.9 lib/knitkit/extensions/active_record/acts_as_publishable.rb
knitkit-2.0.7 lib/knitkit/extensions/active_record/acts_as_publishable.rb