mongo_mapper_acts_as_versioned 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/acts_as_versioned.rb +32 -30
- metadata +4 -16
data/lib/acts_as_versioned.rb
CHANGED
@@ -1,36 +1,38 @@
|
|
1
|
+
require 'active_support/concern' unless defined?(ActiveSupport)
|
2
|
+
|
1
3
|
module MongoMapper
|
2
4
|
module Acts
|
3
5
|
module Versioned
|
4
|
-
|
5
|
-
CALLBACKS = [:save_version, :save_version?, :clear_old_versions]
|
6
|
+
extend ActiveSupport::Concern
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
cattr_accessor :versioned_class_name, :non_versioned_keys, :max_version_limit
|
8
|
+
VERSION = '0.0.12'
|
9
|
+
CALLBACKS = [:save_version, :clear_old_versions]
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
self.non_versioned_keys = %w(
|
14
|
-
_id _type created_at updated_at creator_id updater_id version
|
15
|
-
)
|
11
|
+
included do
|
12
|
+
cattr_accessor :versioned_class_name, :non_versioned_keys, :max_version_limit
|
16
13
|
|
17
|
-
|
18
|
-
|
14
|
+
self.versioned_class_name = :Version
|
15
|
+
self.max_version_limit = 0
|
16
|
+
self.non_versioned_keys = %w(
|
17
|
+
_id _type created_at updated_at creator_id updater_id version
|
18
|
+
)
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
end
|
20
|
+
const_set(versioned_class_name, Class.new).class_eval do
|
21
|
+
include MongoMapper::EmbeddedDocument
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
key :version, Integer
|
24
|
+
key :modified, Hash
|
25
|
+
end
|
26
|
+
|
27
|
+
many :versions, :class => "#{self}::#{versioned_class_name}".constantize do
|
28
|
+
def [](version)
|
29
|
+
detect { |doc| doc.version.to_s == version.to_s }
|
28
30
|
end
|
29
31
|
end
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
-
|
33
|
+
key :version, Integer
|
34
|
+
before_save :save_version
|
35
|
+
before_save :clear_old_versions
|
34
36
|
end
|
35
37
|
|
36
38
|
module InstanceMethods
|
@@ -55,21 +57,21 @@ module MongoMapper
|
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
58
|
-
def revert_to(
|
59
|
-
if
|
60
|
-
return false if
|
60
|
+
def revert_to(rev)
|
61
|
+
if rev.is_a?(self.class.versioned_class)
|
62
|
+
return false if rev.new_record?
|
61
63
|
else
|
62
|
-
return false unless
|
64
|
+
return false unless rev = versions[rev]
|
63
65
|
end
|
64
66
|
|
65
|
-
clone_attributes(
|
66
|
-
self.version =
|
67
|
+
clone_attributes(rev, self)
|
68
|
+
self.version = rev.version
|
67
69
|
|
68
70
|
true
|
69
71
|
end
|
70
72
|
|
71
|
-
def revert_to!(
|
72
|
-
revert_to(
|
73
|
+
def revert_to!(rev)
|
74
|
+
revert_to(rev) and save_without_revision or false
|
73
75
|
end
|
74
76
|
|
75
77
|
def save_without_revision
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_mapper_acts_as_versioned
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 11
|
9
|
-
version: 0.0.11
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.12
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Gigamo
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
13
|
+
date: 2011-10-28 00:00:00 +02:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,8 +21,6 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
24
|
version: "0"
|
31
25
|
type: :development
|
32
26
|
version_requirements: *id001
|
@@ -59,23 +53,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
59
53
|
requirements:
|
60
54
|
- - ">="
|
61
55
|
- !ruby/object:Gem::Version
|
62
|
-
segments:
|
63
|
-
- 0
|
64
56
|
version: "0"
|
65
57
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
58
|
none: false
|
67
59
|
requirements:
|
68
60
|
- - ">="
|
69
61
|
- !ruby/object:Gem::Version
|
70
|
-
segments:
|
71
|
-
- 1
|
72
|
-
- 3
|
73
|
-
- 6
|
74
62
|
version: 1.3.6
|
75
63
|
requirements: []
|
76
64
|
|
77
65
|
rubyforge_project: mongo_mapper_acts_as_versioned
|
78
|
-
rubygems_version: 1.
|
66
|
+
rubygems_version: 1.5.0
|
79
67
|
signing_key:
|
80
68
|
specification_version: 3
|
81
69
|
summary: Basic MongoMapper port of technoweenie's acts_as_versioned
|