mongo_mapper_acts_as_versioned 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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