paper_trail 2.3.3 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -6,5 +6,6 @@ coverage
6
6
  pkg/*
7
7
  *.gem
8
8
  .bundle
9
+ .rbenv-version
9
10
  Gemfile.lock
10
11
  vendor/*
data/README.md CHANGED
@@ -456,7 +456,17 @@ You can store arbitrary model-level metadata alongside each version like this:
456
456
  end
457
457
  end
458
458
 
459
- PaperTrail will call your proc with the current article and store the result in the `author_id` column of the `versions` table. (Remember to add your metadata columns to the table.)
459
+ PaperTrail will call your proc with the current article and store the result in the `author_id` column of the `versions` table.
460
+
461
+ N.B. You must also:
462
+
463
+ * Add your metadata columns to the `versions` table.
464
+ * Declare your metadata columns using `attr_accessible` like this:
465
+
466
+ # config/initializers/paper_trail.rb
467
+ class Version < ActiveRecord::Base
468
+ attr_accessible :author_id, :word_count, :answer
469
+ end
460
470
 
461
471
  Why would you do this? In this example, `author_id` is an attribute of `Article` and PaperTrail will store it anyway in serialized (YAML) form in the `object` column of the `version` record. But let's say you wanted to pull out all versions for a particular author; without the metadata you would have to deserialize (reify) each `version` object to see if belonged to the author in question. Clearly this is inefficient. Using the metadata you can find just those versions you want:
462
472
 
@@ -472,7 +482,7 @@ You can also store any information you like from your controller. Just override
472
482
  end
473
483
  end
474
484
 
475
- Remember to add those extra columns to your `versions` table ;)
485
+ Remember to add those extra columns to your `versions` table and use `attr_accessible` ;)
476
486
 
477
487
 
478
488
  ## Diffing Versions
@@ -1,6 +1,7 @@
1
1
  class Version < ActiveRecord::Base
2
2
  belongs_to :item, :polymorphic => true
3
3
  validates_presence_of :event
4
+ attr_accessible :item_type, :item_id, :event, :whodunnit, :object, :object_changes
4
5
 
5
6
  def self.with_item_keys(item_type, item_id)
6
7
  scoped(:conditions => { :item_type => item_type, :item_id => item_id })
@@ -1,3 +1,3 @@
1
1
  module PaperTrail
2
- VERSION = '2.3.3'
2
+ VERSION = '2.4.0'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -47,3 +47,8 @@ def change_schema
47
47
  end
48
48
  ActiveRecord::Migration.verbose = true
49
49
  end
50
+
51
+ class Version < ActiveRecord::Base
52
+ attr_accessible :created_at, :updated_at,
53
+ :answer, :action, :question, :article_id, :ip, :user_agent
54
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease: false
4
+ hash: 31
5
+ prerelease:
6
6
  segments:
7
7
  - 2
8
- - 3
9
- - 3
10
- version: 2.3.3
8
+ - 4
9
+ - 0
10
+ version: 2.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Stewart
@@ -15,13 +15,13 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-14 00:00:00 +02:00
18
+ date: 2011-09-29 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rails
23
23
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ~>
@@ -31,11 +31,11 @@ dependencies:
31
31
  - 3
32
32
  version: "3"
33
33
  type: :runtime
34
- version_requirements: *id001
34
+ requirement: *id001
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: shoulda
37
37
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - "="
@@ -47,11 +47,11 @@ dependencies:
47
47
  - 3
48
48
  version: 2.10.3
49
49
  type: :development
50
- version_requirements: *id002
50
+ requirement: *id002
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: sqlite3-ruby
53
53
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
57
  - - ~>
@@ -62,11 +62,11 @@ dependencies:
62
62
  - 2
63
63
  version: "1.2"
64
64
  type: :development
65
- version_requirements: *id003
65
+ requirement: *id003
66
66
  - !ruby/object:Gem::Dependency
67
67
  name: capybara
68
68
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
70
  none: false
71
71
  requirements:
72
72
  - - ">="
@@ -78,11 +78,11 @@ dependencies:
78
78
  - 0
79
79
  version: 0.4.0
80
80
  type: :development
81
- version_requirements: *id004
81
+ requirement: *id004
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: turn
84
84
  prerelease: false
85
- requirement: &id005 !ruby/object:Gem::Requirement
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ">="
@@ -92,7 +92,7 @@ dependencies:
92
92
  - 0
93
93
  version: "0"
94
94
  type: :development
95
- version_requirements: *id005
95
+ requirement: *id005
96
96
  description: Track changes to your models' data. Good for auditing or versioning.
97
97
  email: boss@airbladesoftware.com
98
98
  executables: []
@@ -211,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
211
  requirements: []
212
212
 
213
213
  rubyforge_project:
214
- rubygems_version: 1.3.7
214
+ rubygems_version: 1.6.2
215
215
  signing_key:
216
216
  specification_version: 3
217
217
  summary: Track changes to your models' data. Good for auditing or versioning.