Skip to content

Commit

Permalink
Update for newer MM
Browse files Browse the repository at this point in the history
  • Loading branch information
kdwinter committed May 20, 2011
1 parent 841c60d commit d4d904e
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions lib/acts_as_versioned.rb
@@ -1,36 +1,38 @@
require 'active_support/concern' unless defined?(ActiveSupport)

module MongoMapper
module Acts
module Versioned
extend ActiveSupport::Concern

VERSION = '0.0.11'
CALLBACKS = [:save_version, :save_version?, :clear_old_versions]
CALLBACKS = [:save_version, :clear_old_versions]

def self.configure(model)
model.class_eval do
cattr_accessor :versioned_class_name, :non_versioned_keys, :max_version_limit
included do
cattr_accessor :versioned_class_name, :non_versioned_keys, :max_version_limit

self.versioned_class_name = :Version
self.max_version_limit = 0
self.non_versioned_keys = %w(
_id _type created_at updated_at creator_id updater_id version
)
self.versioned_class_name = :Version
self.max_version_limit = 0
self.non_versioned_keys = %w(
_id _type created_at updated_at creator_id updater_id version
)

const_set(versioned_class_name, Class.new).class_eval do
include MongoMapper::EmbeddedDocument
const_set(versioned_class_name, Class.new).class_eval do
include MongoMapper::EmbeddedDocument

key :version, Integer
key :modified, Hash
end
key :version, Integer
key :modified, Hash
end

many :versions, :class => "#{self}::#{versioned_class_name}".constantize do
def [](version)
detect { |doc| doc.version.to_s == version.to_s }
end
many :versions, :class => "#{self}::#{versioned_class_name}".constantize do
def [](version)
detect { |doc| doc.version.to_s == version.to_s }
end
end

model.key :version, Integer
model.before_save :save_version
model.before_save :clear_old_versions
key :version, Integer
before_save :save_version
before_save :clear_old_versions
end

module InstanceMethods
Expand Down

0 comments on commit d4d904e

Please sign in to comment.