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.
Files changed (2) hide show
  1. data/lib/acts_as_versioned.rb +32 -30
  2. metadata +4 -16
@@ -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
- VERSION = '0.0.11'
5
- CALLBACKS = [:save_version, :save_version?, :clear_old_versions]
6
+ extend ActiveSupport::Concern
6
7
 
7
- def self.configure(model)
8
- model.class_eval do
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
- self.versioned_class_name = :Version
12
- self.max_version_limit = 0
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
- const_set(versioned_class_name, Class.new).class_eval do
18
- include MongoMapper::EmbeddedDocument
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
- key :version, Integer
21
- key :modified, Hash
22
- end
20
+ const_set(versioned_class_name, Class.new).class_eval do
21
+ include MongoMapper::EmbeddedDocument
23
22
 
24
- many :versions, :class => "#{self}::#{versioned_class_name}".constantize do
25
- def [](version)
26
- detect { |doc| doc.version.to_s == version.to_s }
27
- end
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
- model.key :version, Integer
32
- model.before_save :save_version
33
- model.before_save :clear_old_versions
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(version)
59
- if version.is_a?(self.class.versioned_class)
60
- return false if version.new_record?
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 version = versions[version]
64
+ return false unless rev = versions[rev]
63
65
  end
64
66
 
65
- clone_attributes(version, self)
66
- self.version = version.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!(version)
72
- revert_to(version) and save_without_revision or false
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: false
5
- segments:
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: 2010-09-22 00:00:00 +02:00
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.3.7
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