module PrintingPress::Model::InstanceMethods

Public Instance Methods

destroy() click to toggle source
Calls superclass method
# File lib/printing_press/publishable.rb, line 60
def destroy
        remove_published_version
        super
end
publish() click to toggle source
# File lib/printing_press/publishable.rb, line 44
def publish
        return if published?
        
        remove_published_version if not published_version.nil?
        connection.insert("INSERT INTO #{self.class.published_table_name} SELECT * FROM #{self.class.reset_table_name} WHERE id = #{self.id}")
        
        # We need to handle belongs_to dependencies as well
        self.class.dependencies.each do |dependency|
                self.try(dependency).try(:publish)
        end
end
published?() click to toggle source
# File lib/printing_press/publishable.rb, line 56
def published?
        not published_version.nil? and published_version.updated_at == self.updated_at
end
published_at() click to toggle source
# File lib/printing_press/publishable.rb, line 65
def published_at
        published_version.nil? ? nil : published_version.updated_at
end
published_version() click to toggle source
# File lib/printing_press/publishable.rb, line 40
def published_version
        @published_version ||= self.class.find_by_sql("SELECT * FROM #{self.class.published_table_name} WHERE id = #{self.id}").first
end

Private Instance Methods

remove_published_version() click to toggle source
# File lib/printing_press/publishable.rb, line 71
def remove_published_version
        connection.delete("DELETE FROM #{self.class.published_table_name} WHERE id = #{self.id}")
end