paper_trail_manager 0.7.0 → 0.9.0

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +13 -47
  3. data/.gitignore +2 -2
  4. data/.ruby-version +1 -0
  5. data/Appraisals +9 -17
  6. data/CHANGES.md +29 -0
  7. data/README.md +130 -66
  8. data/Rakefile +5 -3
  9. data/app/controllers/paper_trail_manager/changes_controller.rb +24 -9
  10. data/app/helpers/paper_trail_manager/changes_helper.rb +2 -2
  11. data/app/views/paper_trail_manager/changes/_version.html.erb +5 -5
  12. data/app/views/paper_trail_manager/changes/index.html.erb +44 -30
  13. data/app/views/paper_trail_manager/changes/show.html.erb +10 -7
  14. data/config/locales/en.yml +30 -0
  15. data/gemfiles/rails_6.1_paper_trail_12.0_kaminari.gemfile +10 -0
  16. data/gemfiles/rails_6.1_paper_trail_12.0_will_paginate.gemfile +10 -0
  17. data/gemfiles/rails_7.0_paper_trail_12.0_kaminari.gemfile +10 -0
  18. data/gemfiles/rails_7.0_paper_trail_12.0_will_paginate.gemfile +10 -0
  19. data/gemfiles/rails_7.0_paper_trail_15.0_kaminari.gemfile +10 -0
  20. data/gemfiles/rails_7.0_paper_trail_15.0_will_paginate.gemfile +10 -0
  21. data/gemfiles/rails_7.1_paper_trail_15.0_kaminari.gemfile +10 -0
  22. data/gemfiles/rails_7.1_paper_trail_15.0_will_paginate.gemfile +10 -0
  23. data/lib/generators/paper_trail_manager/install/install_generator.rb +36 -0
  24. data/lib/generators/paper_trail_manager/install/templates/initializer.rb +35 -0
  25. data/lib/paper_trail_manager.rb +8 -2
  26. data/paper_trail_manager.gemspec +14 -14
  27. data/spec/app_template.rb +19 -10
  28. data/spec/integration/authorization_spec.rb +84 -0
  29. data/spec/integration/date_filter_spec.rb +84 -0
  30. data/spec/integration/navigation_spec.rb +1 -1
  31. data/spec/integration/paper_trail_manager_spec.rb +6 -6
  32. data/spec/integration/response_formats_spec.rb +73 -0
  33. data/spec/support/factories.rb +2 -2
  34. data/spec/unit/authorization_spec.rb +42 -0
  35. data/spec/unit/changes_helper_spec.rb +81 -0
  36. metadata +78 -59
  37. data/gemfiles/rails_4.2.2_paper_trail_3.0_kaminari.gemfile +0 -13
  38. data/gemfiles/rails_4.2.2_paper_trail_3.0_will_paginate.gemfile +0 -13
  39. data/gemfiles/rails_4.2.2_paper_trail_4.0_kaminari.gemfile +0 -13
  40. data/gemfiles/rails_4.2.2_paper_trail_4.0_will_paginate.gemfile +0 -13
  41. data/gemfiles/rails_4.2.2_paper_trail_5.0_kaminari.gemfile +0 -13
  42. data/gemfiles/rails_4.2.2_paper_trail_5.0_will_paginate.gemfile +0 -13
  43. data/gemfiles/rails_4.2.2_paper_trail_6.0_kaminari.gemfile +0 -13
  44. data/gemfiles/rails_4.2.2_paper_trail_6.0_will_paginate.gemfile +0 -13
  45. data/gemfiles/rails_4.2.2_paper_trail_7.0_kaminari.gemfile +0 -13
  46. data/gemfiles/rails_4.2.2_paper_trail_7.0_will_paginate.gemfile +0 -13
  47. data/gemfiles/rails_4.2.2_paper_trail_8.0_kaminari.gemfile +0 -13
  48. data/gemfiles/rails_4.2.2_paper_trail_8.0_will_paginate.gemfile +0 -13
  49. data/gemfiles/rails_5.0.0_paper_trail_5.0_kaminari.gemfile +0 -13
  50. data/gemfiles/rails_5.0.0_paper_trail_5.0_will_paginate.gemfile +0 -13
  51. data/gemfiles/rails_5.0.0_paper_trail_6.0_kaminari.gemfile +0 -13
  52. data/gemfiles/rails_5.0.0_paper_trail_6.0_will_paginate.gemfile +0 -13
  53. data/gemfiles/rails_5.0.0_paper_trail_7.0_kaminari.gemfile +0 -13
  54. data/gemfiles/rails_5.0.0_paper_trail_7.0_will_paginate.gemfile +0 -13
  55. data/gemfiles/rails_5.0.0_paper_trail_8.0_kaminari.gemfile +0 -13
  56. data/gemfiles/rails_5.0.0_paper_trail_8.0_will_paginate.gemfile +0 -13
  57. data/gemfiles/rails_5.1.0_paper_trail_10.0_kaminari.gemfile +0 -13
  58. data/gemfiles/rails_5.1.0_paper_trail_10.0_will_paginate.gemfile +0 -13
  59. data/gemfiles/rails_5.1.0_paper_trail_7.0_kaminari.gemfile +0 -13
  60. data/gemfiles/rails_5.1.0_paper_trail_7.0_will_paginate.gemfile +0 -13
  61. data/gemfiles/rails_5.1.0_paper_trail_8.0_kaminari.gemfile +0 -13
  62. data/gemfiles/rails_5.1.0_paper_trail_8.0_will_paginate.gemfile +0 -13
  63. data/gemfiles/rails_5.1.0_paper_trail_9.0_kaminari.gemfile +0 -13
  64. data/gemfiles/rails_5.1.0_paper_trail_9.0_will_paginate.gemfile +0 -13
  65. data/gemfiles/rails_5.2.0_paper_trail_10.0_kaminari.gemfile +0 -13
  66. data/gemfiles/rails_5.2.0_paper_trail_10.0_will_paginate.gemfile +0 -13
  67. data/gemfiles/rails_5.2.0_paper_trail_9.0_kaminari.gemfile +0 -13
  68. data/gemfiles/rails_5.2.0_paper_trail_9.0_will_paginate.gemfile +0 -13
  69. data/gemfiles/rails_6.0.0_paper_trail_10.0_kaminari.gemfile +0 -14
  70. data/gemfiles/rails_6.0.0_paper_trail_10.0_will_paginate.gemfile +0 -15
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PaperTrailManager, 'response formats', versioning: true do
6
+ let(:entity) { FactoryBot.create(:entity, name: 'Format Test', status: 'Active') }
7
+
8
+ before do
9
+ entity
10
+ entity.update(status: 'Updated')
11
+ end
12
+
13
+ describe 'JSON format' do
14
+ context 'index' do
15
+ it 'returns valid JSON with version data' do
16
+ get changes_path(format: :json)
17
+ expect(response.content_type).to include('application/json')
18
+ json = JSON.parse(response.body)
19
+ expect(json).to be_an(Array)
20
+ expect(json.length).to be >= 2
21
+ end
22
+
23
+ it 'respects type filter' do
24
+ get changes_path(format: :json, type: 'Entity')
25
+ json = JSON.parse(response.body)
26
+ json.each do |version|
27
+ expect(version['item_type']).to eq('Entity')
28
+ end
29
+ end
30
+
31
+ it 'respects id filter' do
32
+ get changes_path(format: :json, type: 'Entity', id: entity.id)
33
+ json = JSON.parse(response.body)
34
+ json.each do |version|
35
+ expect(version['item_id']).to eq(entity.id)
36
+ end
37
+ end
38
+ end
39
+
40
+ context 'show' do
41
+ it 'returns valid JSON for a single version' do
42
+ version = entity.versions.last
43
+ get change_path(version, format: :json)
44
+ expect(response.content_type).to include('application/json')
45
+ json = JSON.parse(response.body)
46
+ expect(json['id']).to eq(version.id)
47
+ expect(json['item_type']).to eq('Entity')
48
+ end
49
+ end
50
+ end
51
+
52
+ describe 'Atom format' do
53
+ context 'index' do
54
+ it 'returns valid XML' do
55
+ get changes_path(format: :atom)
56
+ expect(response.content_type).to include('application/atom+xml')
57
+ expect(response.body).to include('<feed')
58
+ expect(response.body).to include('<entry>')
59
+ end
60
+
61
+ it 'includes version entries' do
62
+ get changes_path(format: :atom)
63
+ expect(response.body).to include('Entity')
64
+ end
65
+
66
+ it 'respects type filter' do
67
+ get changes_path(format: :atom, type: 'Entity')
68
+ expect(response.body).to include('Entity')
69
+ expect(response.body).not_to include('Platform')
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'factory_girl_rails'
3
+ require 'factory_bot_rails'
4
4
 
5
- FactoryGirl.define do
5
+ FactoryBot.define do
6
6
  factory :entity do
7
7
  sequence(:name) { |n| "name_#{n}" }
8
8
  sequence(:status) { |n| "status_#{n}" }
@@ -0,0 +1,42 @@
1
+ begin
2
+ require 'kaminari/core'
3
+ rescue LoadError
4
+ require 'will_paginate'
5
+ end
6
+ require 'paper_trail_manager'
7
+
8
+ RSpec.describe PaperTrailManager, 'authorization' do
9
+ let(:controller) { double('controller') }
10
+ let(:version) { double('version') }
11
+
12
+ after do
13
+ # Reset blocks to defaults
14
+ default = proc { true }
15
+ PaperTrailManager.allow_index_block = default
16
+ PaperTrailManager.allow_show_block = default
17
+ end
18
+
19
+ describe '.allow_show?' do
20
+ it 'uses allow_show_block, not allow_index_block' do
21
+ PaperTrailManager.allow_index_when { |_controller| false }
22
+ PaperTrailManager.allow_show_when { |_controller, _version| true }
23
+
24
+ expect(PaperTrailManager.allow_show?(controller, version)).to be true
25
+ end
26
+
27
+ it 'does not fall through to allow_index_block' do
28
+ PaperTrailManager.allow_index_when { |_controller| true }
29
+ PaperTrailManager.allow_show_when { |_controller, _version| false }
30
+
31
+ expect(PaperTrailManager.allow_show?(controller, version)).to be false
32
+ end
33
+ end
34
+
35
+ describe '.allow_index?' do
36
+ it 'uses allow_index_block' do
37
+ PaperTrailManager.allow_index_when { |_controller| true }
38
+
39
+ expect(PaperTrailManager.allow_index?(controller)).to be true
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PaperTrailManager::ChangesHelper, versioning: true do
6
+ # Use a view context to get access to content_tag, h, etc.
7
+ let(:helper) { ApplicationController.new.view_context }
8
+
9
+ describe '#text_or_nil' do
10
+ it 'returns styled nil for nil values' do
11
+ result = helper.text_or_nil(nil)
12
+ expect(result).to include('em')
13
+ expect(result).to include('nil')
14
+ end
15
+
16
+ it 'returns escaped text for non-nil values' do
17
+ result = helper.text_or_nil('hello')
18
+ expect(result).to eq('hello')
19
+ end
20
+
21
+ it 'escapes HTML in values' do
22
+ result = helper.text_or_nil('<script>alert("xss")</script>')
23
+ expect(result).not_to include('<script>')
24
+ end
25
+ end
26
+
27
+ describe '#changes_for' do
28
+ let(:entity) { FactoryBot.create(:entity, name: 'Test', status: 'Active') }
29
+
30
+ context 'for a create event' do
31
+ it 'returns a hash' do
32
+ version = entity.versions.first
33
+ changes = helper.changes_for(version)
34
+ expect(changes).to be_a(Hash)
35
+ end
36
+ end
37
+
38
+ context 'for an update event' do
39
+ before { entity.update(status: 'Updated') }
40
+
41
+ it 'returns a hash' do
42
+ version = entity.versions.last
43
+ changes = helper.changes_for(version)
44
+ expect(changes).to be_a(Hash)
45
+ end
46
+ end
47
+
48
+ context 'for a destroy event' do
49
+ before { entity.destroy }
50
+
51
+ it 'returns changes with previous values' do
52
+ version = PaperTrail::Version.where(item_type: 'Entity', event: 'destroy').last
53
+ changes = helper.changes_for(version)
54
+ expect(changes).to be_a(Hash)
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '#change_item_types' do
60
+ it 'returns a sorted array of versioned model names' do
61
+ # Ensure models are loaded
62
+ Entity.new
63
+ types = helper.change_item_types
64
+ expect(types).to be_an(Array)
65
+ expect(types).to include('Entity')
66
+ expect(types).to eq(types.sort)
67
+ end
68
+ end
69
+
70
+ describe '#version_reify' do
71
+ let(:entity) { FactoryBot.create(:entity, name: 'Test', status: 'Active') }
72
+
73
+ it 'returns the reified record for an update' do
74
+ entity.update(status: 'Updated')
75
+ version = entity.versions.last
76
+ record = helper.version_reify(version)
77
+ expect(record).to be_a(Entity)
78
+ expect(record.status).to eq('Active')
79
+ end
80
+ end
81
+ end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paper_trail_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
- - mail@reidbeels.com
7
+ - Igal Koshevoy
8
+ - Reid Beels
8
9
  bindir: bin
9
10
  cert_chain: []
10
11
  date: 2026-03-18 00:00:00.000000000 Z
@@ -15,76 +16,104 @@ dependencies:
15
16
  requirements:
16
17
  - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: '3.0'
19
+ version: '12.0'
19
20
  type: :runtime
20
21
  prerelease: false
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
24
  - - ">="
24
25
  - !ruby/object:Gem::Version
25
- version: '3.0'
26
+ version: '12.0'
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: rails
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
- version: '3.0'
33
+ version: '6.1'
33
34
  - - "<"
34
35
  - !ruby/object:Gem::Version
35
- version: '7.0'
36
+ version: '8.0'
36
37
  type: :runtime
37
38
  prerelease: false
38
39
  version_requirements: !ruby/object:Gem::Requirement
39
40
  requirements:
40
41
  - - ">="
41
42
  - !ruby/object:Gem::Version
42
- version: '3.0'
43
+ version: '6.1'
43
44
  - - "<"
44
45
  - !ruby/object:Gem::Version
45
- version: '7.0'
46
+ version: '8.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: nokogiri
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.18.3
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.18.3
61
+ - !ruby/object:Gem::Dependency
62
+ name: rails-html-sanitizer
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.6.1
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.6.1
46
75
  - !ruby/object:Gem::Dependency
47
76
  name: appraisal
48
77
  requirement: !ruby/object:Gem::Requirement
49
78
  requirements:
50
79
  - - "~>"
51
80
  - !ruby/object:Gem::Version
52
- version: '1.0'
81
+ version: '2.0'
53
82
  type: :development
54
83
  prerelease: false
55
84
  version_requirements: !ruby/object:Gem::Requirement
56
85
  requirements:
57
86
  - - "~>"
58
87
  - !ruby/object:Gem::Version
59
- version: '1.0'
88
+ version: '2.0'
60
89
  - !ruby/object:Gem::Dependency
61
- name: factory_girl_rails
90
+ name: factory_bot_rails
62
91
  requirement: !ruby/object:Gem::Requirement
63
92
  requirements:
64
93
  - - "~>"
65
94
  - !ruby/object:Gem::Version
66
- version: '4.0'
95
+ version: '6.0'
67
96
  type: :development
68
97
  prerelease: false
69
98
  version_requirements: !ruby/object:Gem::Requirement
70
99
  requirements:
71
100
  - - "~>"
72
101
  - !ruby/object:Gem::Version
73
- version: '4.0'
102
+ version: '6.0'
74
103
  - !ruby/object:Gem::Dependency
75
104
  name: rake
76
105
  requirement: !ruby/object:Gem::Requirement
77
106
  requirements:
78
107
  - - "~>"
79
108
  - !ruby/object:Gem::Version
80
- version: '10.4'
109
+ version: '13.0'
81
110
  type: :development
82
111
  prerelease: false
83
112
  version_requirements: !ruby/object:Gem::Requirement
84
113
  requirements:
85
114
  - - "~>"
86
115
  - !ruby/object:Gem::Version
87
- version: '10.4'
116
+ version: '13.0'
88
117
  - !ruby/object:Gem::Dependency
89
118
  name: rspec-activemodel-mocks
90
119
  requirement: !ruby/object:Gem::Requirement
@@ -105,14 +134,14 @@ dependencies:
105
134
  requirements:
106
135
  - - "~>"
107
136
  - !ruby/object:Gem::Version
108
- version: 0.9.2
137
+ version: '0.10'
109
138
  type: :development
110
139
  prerelease: false
111
140
  version_requirements: !ruby/object:Gem::Requirement
112
141
  requirements:
113
142
  - - "~>"
114
143
  - !ruby/object:Gem::Version
115
- version: 0.9.2
144
+ version: '0.10'
116
145
  - !ruby/object:Gem::Dependency
117
146
  name: rspec-its
118
147
  requirement: !ruby/object:Gem::Requirement
@@ -133,30 +162,32 @@ dependencies:
133
162
  requirements:
134
163
  - - "~>"
135
164
  - !ruby/object:Gem::Version
136
- version: '3.0'
165
+ version: '6.0'
137
166
  type: :development
138
167
  prerelease: false
139
168
  version_requirements: !ruby/object:Gem::Requirement
140
169
  requirements:
141
170
  - - "~>"
142
171
  - !ruby/object:Gem::Version
143
- version: '3.0'
172
+ version: '6.0'
144
173
  - !ruby/object:Gem::Dependency
145
174
  name: sqlite3
146
175
  requirement: !ruby/object:Gem::Requirement
147
176
  requirements:
148
- - - ">="
177
+ - - "~>"
149
178
  - !ruby/object:Gem::Version
150
- version: 1.3.6
179
+ version: '1.7'
151
180
  type: :development
152
181
  prerelease: false
153
182
  version_requirements: !ruby/object:Gem::Requirement
154
183
  requirements:
155
- - - ">="
184
+ - - "~>"
156
185
  - !ruby/object:Gem::Version
157
- version: 1.3.6
186
+ version: '1.7'
158
187
  description: Browse, subscribe, view and revert changes to records when using Rails
159
188
  and the `paper_trail` gem.
189
+ email:
190
+ - mail@reidbeels.com
160
191
  executables: []
161
192
  extensions: []
162
193
  extra_rdoc_files: []
@@ -164,6 +195,7 @@ files:
164
195
  - ".github/workflows/test.yml"
165
196
  - ".gitignore"
166
197
  - ".rubocop.yml"
198
+ - ".ruby-version"
167
199
  - Appraisals
168
200
  - CHANGES.md
169
201
  - Gemfile
@@ -176,50 +208,32 @@ files:
176
208
  - app/views/paper_trail_manager/changes/index.atom.builder
177
209
  - app/views/paper_trail_manager/changes/index.html.erb
178
210
  - app/views/paper_trail_manager/changes/show.html.erb
179
- - gemfiles/rails_4.2.2_paper_trail_3.0_kaminari.gemfile
180
- - gemfiles/rails_4.2.2_paper_trail_3.0_will_paginate.gemfile
181
- - gemfiles/rails_4.2.2_paper_trail_4.0_kaminari.gemfile
182
- - gemfiles/rails_4.2.2_paper_trail_4.0_will_paginate.gemfile
183
- - gemfiles/rails_4.2.2_paper_trail_5.0_kaminari.gemfile
184
- - gemfiles/rails_4.2.2_paper_trail_5.0_will_paginate.gemfile
185
- - gemfiles/rails_4.2.2_paper_trail_6.0_kaminari.gemfile
186
- - gemfiles/rails_4.2.2_paper_trail_6.0_will_paginate.gemfile
187
- - gemfiles/rails_4.2.2_paper_trail_7.0_kaminari.gemfile
188
- - gemfiles/rails_4.2.2_paper_trail_7.0_will_paginate.gemfile
189
- - gemfiles/rails_4.2.2_paper_trail_8.0_kaminari.gemfile
190
- - gemfiles/rails_4.2.2_paper_trail_8.0_will_paginate.gemfile
191
- - gemfiles/rails_5.0.0_paper_trail_5.0_kaminari.gemfile
192
- - gemfiles/rails_5.0.0_paper_trail_5.0_will_paginate.gemfile
193
- - gemfiles/rails_5.0.0_paper_trail_6.0_kaminari.gemfile
194
- - gemfiles/rails_5.0.0_paper_trail_6.0_will_paginate.gemfile
195
- - gemfiles/rails_5.0.0_paper_trail_7.0_kaminari.gemfile
196
- - gemfiles/rails_5.0.0_paper_trail_7.0_will_paginate.gemfile
197
- - gemfiles/rails_5.0.0_paper_trail_8.0_kaminari.gemfile
198
- - gemfiles/rails_5.0.0_paper_trail_8.0_will_paginate.gemfile
199
- - gemfiles/rails_5.1.0_paper_trail_10.0_kaminari.gemfile
200
- - gemfiles/rails_5.1.0_paper_trail_10.0_will_paginate.gemfile
201
- - gemfiles/rails_5.1.0_paper_trail_7.0_kaminari.gemfile
202
- - gemfiles/rails_5.1.0_paper_trail_7.0_will_paginate.gemfile
203
- - gemfiles/rails_5.1.0_paper_trail_8.0_kaminari.gemfile
204
- - gemfiles/rails_5.1.0_paper_trail_8.0_will_paginate.gemfile
205
- - gemfiles/rails_5.1.0_paper_trail_9.0_kaminari.gemfile
206
- - gemfiles/rails_5.1.0_paper_trail_9.0_will_paginate.gemfile
207
- - gemfiles/rails_5.2.0_paper_trail_10.0_kaminari.gemfile
208
- - gemfiles/rails_5.2.0_paper_trail_10.0_will_paginate.gemfile
209
- - gemfiles/rails_5.2.0_paper_trail_9.0_kaminari.gemfile
210
- - gemfiles/rails_5.2.0_paper_trail_9.0_will_paginate.gemfile
211
- - gemfiles/rails_6.0.0_paper_trail_10.0_kaminari.gemfile
212
- - gemfiles/rails_6.0.0_paper_trail_10.0_will_paginate.gemfile
211
+ - config/locales/en.yml
212
+ - gemfiles/rails_6.1_paper_trail_12.0_kaminari.gemfile
213
+ - gemfiles/rails_6.1_paper_trail_12.0_will_paginate.gemfile
214
+ - gemfiles/rails_7.0_paper_trail_12.0_kaminari.gemfile
215
+ - gemfiles/rails_7.0_paper_trail_12.0_will_paginate.gemfile
216
+ - gemfiles/rails_7.0_paper_trail_15.0_kaminari.gemfile
217
+ - gemfiles/rails_7.0_paper_trail_15.0_will_paginate.gemfile
218
+ - gemfiles/rails_7.1_paper_trail_15.0_kaminari.gemfile
219
+ - gemfiles/rails_7.1_paper_trail_15.0_will_paginate.gemfile
220
+ - lib/generators/paper_trail_manager/install/install_generator.rb
221
+ - lib/generators/paper_trail_manager/install/templates/initializer.rb
213
222
  - lib/paper_trail_manager.rb
214
223
  - paper_trail_manager.gemspec
215
224
  - spec/app_template.rb
225
+ - spec/integration/authorization_spec.rb
226
+ - spec/integration/date_filter_spec.rb
216
227
  - spec/integration/navigation_spec.rb
217
228
  - spec/integration/paper_trail_manager_spec.rb
229
+ - spec/integration/response_formats_spec.rb
218
230
  - spec/rails_helper.rb
219
231
  - spec/spec_helper.rb
220
232
  - spec/support/factories.rb
221
233
  - spec/support/rspec_html_matchers.rb
222
- homepage: https://github.com/fusion94/paper_trail_manager
234
+ - spec/unit/authorization_spec.rb
235
+ - spec/unit/changes_helper_spec.rb
236
+ homepage: https://github.com/DamageLabs/paper_trail_manager
223
237
  licenses:
224
238
  - MIT
225
239
  metadata: {}
@@ -230,7 +244,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
244
  requirements:
231
245
  - - ">="
232
246
  - !ruby/object:Gem::Version
233
- version: '0'
247
+ version: '3.1'
234
248
  required_rubygems_version: !ruby/object:Gem::Requirement
235
249
  requirements:
236
250
  - - ">="
@@ -242,9 +256,14 @@ specification_version: 4
242
256
  summary: A user interface for `paper_trail` versioning data in Rails applications.
243
257
  test_files:
244
258
  - spec/app_template.rb
259
+ - spec/integration/authorization_spec.rb
260
+ - spec/integration/date_filter_spec.rb
245
261
  - spec/integration/navigation_spec.rb
246
262
  - spec/integration/paper_trail_manager_spec.rb
263
+ - spec/integration/response_formats_spec.rb
247
264
  - spec/rails_helper.rb
248
265
  - spec/spec_helper.rb
249
266
  - spec/support/factories.rb
250
267
  - spec/support/rspec_html_matchers.rb
268
+ - spec/unit/authorization_spec.rb
269
+ - spec/unit/changes_helper_spec.rb
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 3.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 3.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 4.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 4.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 5.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 5.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 6.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 6.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 7.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 7.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'kaminari', '>= 0.16'
9
- gem 'paper_trail', '~> 8.0'
10
- gem 'rails', '~> 4.2.2'
11
- gem 'sqlite3', '~> 1.3.6'
12
-
13
- gemspec path: '../'
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'jquery-rails'
8
- gem 'paper_trail', '~> 8.0'
9
- gem 'rails', '~> 4.2.2'
10
- gem 'sqlite3', '~> 1.3.6'
11
- gem 'will_paginate', '~> 3.0'
12
-
13
- gemspec path: '../'