paper_trail 2.7.2 → 3.0.0.beta1

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +13 -4
  5. data/CHANGELOG.md +15 -0
  6. data/README.md +109 -38
  7. data/Rakefile +9 -3
  8. data/gemfiles/3.0.gemfile +31 -0
  9. data/lib/generators/paper_trail/install_generator.rb +7 -4
  10. data/lib/paper_trail.rb +15 -9
  11. data/lib/paper_trail/cleaner.rb +34 -0
  12. data/lib/paper_trail/frameworks/cucumber.rb +31 -0
  13. data/lib/paper_trail/frameworks/rails.rb +79 -0
  14. data/lib/paper_trail/frameworks/rspec.rb +24 -0
  15. data/lib/paper_trail/frameworks/rspec/extensions.rb +20 -0
  16. data/lib/paper_trail/frameworks/sinatra.rb +31 -0
  17. data/lib/paper_trail/has_paper_trail.rb +22 -20
  18. data/lib/paper_trail/version.rb +188 -161
  19. data/lib/paper_trail/version_number.rb +1 -1
  20. data/paper_trail.gemspec +10 -6
  21. data/spec/models/widget_spec.rb +13 -0
  22. data/spec/paper_trail_spec.rb +47 -0
  23. data/spec/spec_helper.rb +41 -0
  24. data/test/dummy/app/controllers/widgets_controller.rb +10 -2
  25. data/test/dummy/app/models/protected_widget.rb +1 -1
  26. data/test/dummy/app/models/widget.rb +6 -1
  27. data/test/dummy/app/versions/post_version.rb +1 -1
  28. data/test/dummy/config/application.rb +5 -6
  29. data/test/dummy/config/environments/development.rb +6 -4
  30. data/test/dummy/config/environments/production.rb +6 -0
  31. data/test/dummy/config/environments/test.rb +4 -4
  32. data/test/dummy/config/initializers/paper_trail.rb +4 -2
  33. data/test/functional/controller_test.rb +2 -2
  34. data/test/functional/modular_sinatra_test.rb +44 -0
  35. data/test/functional/sinatra_test.rb +45 -0
  36. data/test/functional/thread_safety_test.rb +1 -1
  37. data/test/paper_trail_test.rb +2 -2
  38. data/test/unit/cleaner_test.rb +143 -0
  39. data/test/unit/inheritance_column_test.rb +3 -3
  40. data/test/unit/model_test.rb +74 -55
  41. data/test/unit/protected_attrs_test.rb +12 -7
  42. data/test/unit/timestamp_test.rb +2 -2
  43. data/test/unit/version_test.rb +37 -20
  44. metadata +86 -26
  45. data/lib/paper_trail/controller.rb +0 -75
metadata CHANGED
@@ -1,99 +1,140 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.2
4
+ version: 3.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Stewart
8
+ - Ben Atkins
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-05-23 00:00:00.000000000 Z
12
+ date: 2013-08-30 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: railties
15
+ name: activerecord
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - ~>
18
+ - - ! '>='
18
19
  - !ruby/object:Gem::Version
19
20
  version: '3.0'
21
+ - - <
22
+ - !ruby/object:Gem::Version
23
+ version: '5.0'
20
24
  type: :runtime
21
25
  prerelease: false
22
26
  version_requirements: !ruby/object:Gem::Requirement
23
27
  requirements:
24
- - - ~>
28
+ - - ! '>='
25
29
  - !ruby/object:Gem::Version
26
30
  version: '3.0'
31
+ - - <
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
27
34
  - !ruby/object:Gem::Dependency
28
- name: activerecord
35
+ name: rake
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ - !ruby/object:Gem::Dependency
49
+ name: shoulda
29
50
  requirement: !ruby/object:Gem::Requirement
30
51
  requirements:
31
52
  - - ~>
32
53
  - !ruby/object:Gem::Version
33
- version: '3.0'
34
- type: :runtime
54
+ version: '3.5'
55
+ type: :development
35
56
  prerelease: false
36
57
  version_requirements: !ruby/object:Gem::Requirement
37
58
  requirements:
38
59
  - - ~>
39
60
  - !ruby/object:Gem::Version
40
- version: '3.0'
61
+ version: '3.5'
41
62
  - !ruby/object:Gem::Dependency
42
- name: rake
63
+ name: ffaker
43
64
  requirement: !ruby/object:Gem::Requirement
44
65
  requirements:
45
66
  - - ! '>='
46
67
  - !ruby/object:Gem::Version
47
- version: '0'
68
+ version: '1.15'
48
69
  type: :development
49
70
  prerelease: false
50
71
  version_requirements: !ruby/object:Gem::Requirement
51
72
  requirements:
52
73
  - - ! '>='
53
74
  - !ruby/object:Gem::Version
54
- version: '0'
75
+ version: '1.15'
55
76
  - !ruby/object:Gem::Dependency
56
- name: shoulda
77
+ name: railties
57
78
  requirement: !ruby/object:Gem::Requirement
58
79
  requirements:
59
- - - ~>
80
+ - - ! '>='
60
81
  - !ruby/object:Gem::Version
61
- version: '3.3'
82
+ version: '3.0'
83
+ - - <
84
+ - !ruby/object:Gem::Version
85
+ version: '5.0'
62
86
  type: :development
63
87
  prerelease: false
64
88
  version_requirements: !ruby/object:Gem::Requirement
65
89
  requirements:
66
- - - ~>
90
+ - - ! '>='
67
91
  - !ruby/object:Gem::Version
68
- version: '3.3'
92
+ version: '3.0'
93
+ - - <
94
+ - !ruby/object:Gem::Version
95
+ version: '5.0'
69
96
  - !ruby/object:Gem::Dependency
70
- name: shoulda-matchers
97
+ name: sinatra
71
98
  requirement: !ruby/object:Gem::Requirement
72
99
  requirements:
73
100
  - - ~>
74
101
  - !ruby/object:Gem::Version
75
- version: '1.5'
102
+ version: '1.0'
76
103
  type: :development
77
104
  prerelease: false
78
105
  version_requirements: !ruby/object:Gem::Requirement
79
106
  requirements:
80
107
  - - ~>
81
108
  - !ruby/object:Gem::Version
82
- version: '1.5'
109
+ version: '1.0'
83
110
  - !ruby/object:Gem::Dependency
84
- name: ffaker
111
+ name: rack-test
85
112
  requirement: !ruby/object:Gem::Requirement
86
113
  requirements:
87
114
  - - ! '>='
88
115
  - !ruby/object:Gem::Version
89
- version: '1.15'
116
+ version: '0.6'
90
117
  type: :development
91
118
  prerelease: false
92
119
  version_requirements: !ruby/object:Gem::Requirement
93
120
  requirements:
94
121
  - - ! '>='
95
122
  - !ruby/object:Gem::Version
96
- version: '1.15'
123
+ version: '0.6'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rspec-rails
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ~>
129
+ - !ruby/object:Gem::Version
130
+ version: '2.14'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: '2.14'
97
138
  - !ruby/object:Gem::Dependency
98
139
  name: sqlite3
99
140
  requirement: !ruby/object:Gem::Requirement
@@ -115,25 +156,35 @@ extensions: []
115
156
  extra_rdoc_files: []
116
157
  files:
117
158
  - .gitignore
159
+ - .rspec
118
160
  - .travis.yml
119
161
  - CHANGELOG.md
120
162
  - Gemfile
121
163
  - MIT-LICENSE
122
164
  - README.md
123
165
  - Rakefile
166
+ - gemfiles/3.0.gemfile
124
167
  - lib/generators/paper_trail/USAGE
125
168
  - lib/generators/paper_trail/install_generator.rb
126
169
  - lib/generators/paper_trail/templates/add_object_changes_column_to_versions.rb
127
170
  - lib/generators/paper_trail/templates/create_versions.rb
128
171
  - lib/paper_trail.rb
172
+ - lib/paper_trail/cleaner.rb
129
173
  - lib/paper_trail/config.rb
130
- - lib/paper_trail/controller.rb
174
+ - lib/paper_trail/frameworks/cucumber.rb
175
+ - lib/paper_trail/frameworks/rails.rb
176
+ - lib/paper_trail/frameworks/rspec.rb
177
+ - lib/paper_trail/frameworks/rspec/extensions.rb
178
+ - lib/paper_trail/frameworks/sinatra.rb
131
179
  - lib/paper_trail/has_paper_trail.rb
132
180
  - lib/paper_trail/serializers/json.rb
133
181
  - lib/paper_trail/serializers/yaml.rb
134
182
  - lib/paper_trail/version.rb
135
183
  - lib/paper_trail/version_number.rb
136
184
  - paper_trail.gemspec
185
+ - spec/models/widget_spec.rb
186
+ - spec/paper_trail_spec.rb
187
+ - spec/spec_helper.rb
137
188
  - test/custom_json_serializer.rb
138
189
  - test/dummy/Rakefile
139
190
  - test/dummy/app/controllers/application_controller.rb
@@ -191,9 +242,12 @@ files:
191
242
  - test/dummy/public/stylesheets/.gitkeep
192
243
  - test/dummy/script/rails
193
244
  - test/functional/controller_test.rb
245
+ - test/functional/modular_sinatra_test.rb
246
+ - test/functional/sinatra_test.rb
194
247
  - test/functional/thread_safety_test.rb
195
248
  - test/paper_trail_test.rb
196
249
  - test/test_helper.rb
250
+ - test/unit/cleaner_test.rb
197
251
  - test/unit/inheritance_column_test.rb
198
252
  - test/unit/model_test.rb
199
253
  - test/unit/protected_attrs_test.rb
@@ -218,9 +272,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
218
272
  version: '0'
219
273
  required_rubygems_version: !ruby/object:Gem::Requirement
220
274
  requirements:
221
- - - ! '>='
275
+ - - ! '>'
222
276
  - !ruby/object:Gem::Version
223
- version: '0'
277
+ version: 1.3.1
224
278
  requirements: []
225
279
  rubyforge_project:
226
280
  rubygems_version: 2.0.3
@@ -228,6 +282,9 @@ signing_key:
228
282
  specification_version: 4
229
283
  summary: Track changes to your models' data. Good for auditing or versioning.
230
284
  test_files:
285
+ - spec/models/widget_spec.rb
286
+ - spec/paper_trail_spec.rb
287
+ - spec/spec_helper.rb
231
288
  - test/custom_json_serializer.rb
232
289
  - test/dummy/Rakefile
233
290
  - test/dummy/app/controllers/application_controller.rb
@@ -285,9 +342,12 @@ test_files:
285
342
  - test/dummy/public/stylesheets/.gitkeep
286
343
  - test/dummy/script/rails
287
344
  - test/functional/controller_test.rb
345
+ - test/functional/modular_sinatra_test.rb
346
+ - test/functional/sinatra_test.rb
288
347
  - test/functional/thread_safety_test.rb
289
348
  - test/paper_trail_test.rb
290
349
  - test/test_helper.rb
350
+ - test/unit/cleaner_test.rb
291
351
  - test/unit/inheritance_column_test.rb
292
352
  - test/unit/model_test.rb
293
353
  - test/unit/protected_attrs_test.rb
@@ -1,75 +0,0 @@
1
- module PaperTrail
2
- module Controller
3
-
4
- def self.included(base)
5
- base.before_filter :set_paper_trail_enabled_for_controller
6
- base.before_filter :set_paper_trail_whodunnit, :set_paper_trail_controller_info
7
- end
8
-
9
- protected
10
-
11
- # Returns the user who is responsible for any changes that occur.
12
- # By default this calls `current_user` and returns the result.
13
- #
14
- # Override this method in your controller to call a different
15
- # method, e.g. `current_person`, or anything you like.
16
- def user_for_paper_trail
17
- current_user if defined?(current_user)
18
- end
19
-
20
- # Returns any information about the controller or request that you
21
- # want PaperTrail to store alongside any changes that occur. By
22
- # default this returns an empty hash.
23
- #
24
- # Override this method in your controller to return a hash of any
25
- # information you need. The hash's keys must correspond to columns
26
- # in your `versions` table, so don't forget to add any new columns
27
- # you need.
28
- #
29
- # For example:
30
- #
31
- # {:ip => request.remote_ip, :user_agent => request.user_agent}
32
- #
33
- # The columns `ip` and `user_agent` must exist in your `versions` # table.
34
- #
35
- # Use the `:meta` option to `PaperTrail::Model::ClassMethods.has_paper_trail`
36
- # to store any extra model-level data you need.
37
- def info_for_paper_trail
38
- {}
39
- end
40
-
41
- # Returns `true` (default) or `false` depending on whether PaperTrail should
42
- # be active for the current request.
43
- #
44
- # Override this method in your controller to specify when PaperTrail should
45
- # be off.
46
- def paper_trail_enabled_for_controller
47
- true
48
- end
49
-
50
- private
51
-
52
- # Tells PaperTrail whether versions should be saved in the current request.
53
- def set_paper_trail_enabled_for_controller
54
- ::PaperTrail.enabled_for_controller = paper_trail_enabled_for_controller
55
- end
56
-
57
- # Tells PaperTrail who is responsible for any changes that occur.
58
- def set_paper_trail_whodunnit
59
- ::PaperTrail.whodunnit = user_for_paper_trail if paper_trail_enabled_for_controller
60
- end
61
-
62
- # DEPRECATED: please use `set_paper_trail_whodunnit` instead.
63
- def set_whodunnit
64
- logger.warn '[PaperTrail]: the `set_whodunnit` controller method has been deprecated. Please rename to `set_paper_trail_whodunnit`.'
65
- set_paper_trail_whodunnit
66
- end
67
-
68
- # Tells PaperTrail any information from the controller you want
69
- # to store alongside any changes that occur.
70
- def set_paper_trail_controller_info
71
- ::PaperTrail.controller_info = info_for_paper_trail if paper_trail_enabled_for_controller
72
- end
73
-
74
- end
75
- end