Sha256: db12691ee8a14d4e0bdb1be3fbadbffdb35dbcb784c67db51222703e9808d320

Contents?: true

Size: 1.25 KB

Versions: 15

Compression:

Stored size: 1.25 KB

Contents

module Gluttonberg
  module Content
    # A mixin which allows for any arbitrary model to have multiple versions. It will 
    # generate the versioning models and add methods for creating, managing and 
    # retrieving different versions of a record.
    # In reality this is behaving like a wrapper on acts_as_versioned
    module Versioning
      
      def self.setup
        ::ActiveRecord::Base.send :include, Gluttonberg::Content::Versioning
      end
      
      def self.included(klass)
        klass.class_eval do
          extend  ClassMethods
          include InstanceMethods          
        end
      end
      
      module ClassMethods
        
        def is_versioned(options = {}, &extension)
          excluded_columns = options.delete(:non_versioned_columns)
          acts_as_versioned( options.merge( :limit => Gluttonberg::Setting.get_setting("number_of_revisions") ) , &extension )   
          self.non_versioned_columns << excluded_columns 
          self.non_versioned_columns.flatten!
        end
        
        def versioned?
          self.respond_to?(:versioned_class_name)
        end
        
      end
      
      module InstanceMethods
        def versioned?
          self.class.versioned?
        end
      end
      
    end
  end
end  

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gluttonberg-core-2.6.4 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.6.3 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.6.2 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.6.1 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.6.0 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.9 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.8 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.7 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.6 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.5 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.4 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.3 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.2 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5.1 lib/gluttonberg/content/versioning.rb
gluttonberg-core-2.5 lib/gluttonberg/content/versioning.rb