paper_trail 6.0.2 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CONTRIBUTING.md +20 -0
- data/.rubocop.yml +30 -2
- data/.rubocop_todo.yml +20 -0
- data/.travis.yml +3 -5
- data/Appraisals +5 -6
- data/CHANGELOG.md +33 -0
- data/README.md +43 -81
- data/Rakefile +1 -1
- data/doc/bug_report_template.rb +4 -2
- data/gemfiles/ar_4.0.gemfile +7 -0
- data/gemfiles/ar_4.2.gemfile +0 -1
- data/lib/generators/paper_trail/templates/create_version_associations.rb +1 -1
- data/lib/generators/paper_trail/templates/create_versions.rb +1 -1
- data/lib/paper_trail.rb +7 -9
- data/lib/paper_trail/config.rb +0 -15
- data/lib/paper_trail/frameworks/rspec.rb +8 -2
- data/lib/paper_trail/model_config.rb +6 -2
- data/lib/paper_trail/record_trail.rb +3 -1
- data/lib/paper_trail/reifier.rb +43 -354
- data/lib/paper_trail/reifiers/belongs_to.rb +48 -0
- data/lib/paper_trail/reifiers/has_and_belongs_to_many.rb +50 -0
- data/lib/paper_trail/reifiers/has_many.rb +110 -0
- data/lib/paper_trail/reifiers/has_many_through.rb +90 -0
- data/lib/paper_trail/reifiers/has_one.rb +76 -0
- data/lib/paper_trail/serializers/yaml.rb +2 -25
- data/lib/paper_trail/version_concern.rb +5 -5
- data/lib/paper_trail/version_number.rb +7 -3
- data/paper_trail.gemspec +7 -34
- data/spec/controllers/articles_controller_spec.rb +1 -1
- data/spec/generators/install_generator_spec.rb +40 -34
- data/spec/models/animal_spec.rb +50 -25
- data/spec/models/boolit_spec.rb +8 -7
- data/spec/models/callback_modifier_spec.rb +13 -13
- data/spec/models/document_spec.rb +21 -0
- data/spec/models/gadget_spec.rb +35 -39
- data/spec/models/joined_version_spec.rb +4 -4
- data/spec/models/json_version_spec.rb +14 -15
- data/spec/models/not_on_update_spec.rb +1 -1
- data/spec/models/post_with_status_spec.rb +2 -2
- data/spec/models/skipper_spec.rb +4 -4
- data/spec/models/thing_spec.rb +1 -1
- data/spec/models/truck_spec.rb +1 -1
- data/spec/models/vehicle_spec.rb +1 -1
- data/spec/models/version_spec.rb +152 -168
- data/spec/models/widget_spec.rb +170 -196
- data/spec/modules/paper_trail_spec.rb +3 -3
- data/spec/modules/version_concern_spec.rb +5 -8
- data/spec/modules/version_number_spec.rb +11 -36
- data/spec/paper_trail/cleaner_spec.rb +152 -0
- data/spec/paper_trail/config_spec.rb +1 -1
- data/spec/paper_trail/serializers/custom_yaml_serializer_spec.rb +45 -0
- data/spec/paper_trail/serializers/json_spec.rb +57 -0
- data/spec/paper_trail/version_limit_spec.rb +55 -0
- data/spec/paper_trail_spec.rb +45 -32
- data/spec/requests/articles_spec.rb +4 -4
- data/test/dummy/app/models/custom_primary_key_record.rb +4 -2
- data/test/dummy/app/models/document.rb +1 -1
- data/test/dummy/app/models/not_on_update.rb +1 -1
- data/test/dummy/app/models/on/create.rb +6 -0
- data/test/dummy/app/models/on/destroy.rb +6 -0
- data/test/dummy/app/models/on/empty_array.rb +6 -0
- data/test/dummy/app/models/on/update.rb +6 -0
- data/test/dummy/app/models/person.rb +1 -0
- data/test/dummy/app/models/song.rb +19 -28
- data/test/dummy/config/application.rb +10 -43
- data/test/dummy/config/routes.rb +1 -1
- data/test/dummy/db/migrate/20110208155312_set_up_test_tables.rb +25 -51
- data/test/dummy/db/schema.rb +29 -19
- data/test/test_helper.rb +0 -16
- data/test/unit/associations_test.rb +81 -81
- data/test/unit/model_test.rb +48 -131
- data/test/unit/serializer_test.rb +34 -45
- data/test/unit/serializers/mixin_json_test.rb +3 -1
- data/test/unit/serializers/yaml_test.rb +1 -5
- metadata +44 -19
- data/lib/paper_trail/frameworks/sinatra.rb +0 -40
- data/test/functional/modular_sinatra_test.rb +0 -46
- data/test/functional/sinatra_test.rb +0 -51
- data/test/unit/cleaner_test.rb +0 -151
- data/test/unit/inheritance_column_test.rb +0 -41
- data/test/unit/serializers/json_test.rb +0 -95
- data/test/unit/serializers/mixin_yaml_test.rb +0 -53
data/test/unit/model_test.rb
CHANGED
@@ -2,8 +2,6 @@ require "test_helper"
|
|
2
2
|
require "time_travel_helper"
|
3
3
|
|
4
4
|
class HasPaperTrailModelTest < ActiveSupport::TestCase
|
5
|
-
extend CleanupCallbacks
|
6
|
-
|
7
5
|
context "A record with defined 'only' and 'ignore' attributes" do
|
8
6
|
setup { @article = Article.create }
|
9
7
|
|
@@ -319,9 +317,7 @@ class HasPaperTrailModelTest < ActiveSupport::TestCase
|
|
319
317
|
end
|
320
318
|
|
321
319
|
should "have versions that are not live" do
|
322
|
-
assert
|
323
|
-
!w.paper_trail.live?
|
324
|
-
}
|
320
|
+
assert(@widget.versions.map(&:reify).compact.all? { |w| !w.paper_trail.live? })
|
325
321
|
end
|
326
322
|
|
327
323
|
should "have stored changes" do
|
@@ -1269,114 +1265,62 @@ class HasPaperTrailModelTest < ActiveSupport::TestCase
|
|
1269
1265
|
|
1270
1266
|
context "The `on` option" do
|
1271
1267
|
context "on create" do
|
1272
|
-
cleanup_callbacks(Fluxor, :create)
|
1273
|
-
cleanup_callbacks(Fluxor, :update)
|
1274
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1275
|
-
cleanup_callbacks(Fluxor, :save)
|
1276
|
-
|
1277
|
-
setup do
|
1278
|
-
Fluxor.instance_eval <<-END
|
1279
|
-
has_paper_trail :on => [:create]
|
1280
|
-
END
|
1281
|
-
@fluxor = Fluxor.create
|
1282
|
-
@fluxor.update_attributes name: "blah"
|
1283
|
-
@fluxor.destroy
|
1284
|
-
end
|
1285
|
-
|
1286
1268
|
should "only have a version for the create event" do
|
1287
|
-
|
1288
|
-
|
1269
|
+
record = ::On::Create.create(name: "Alice")
|
1270
|
+
record.update_attributes name: "blah"
|
1271
|
+
record.destroy
|
1272
|
+
assert_equal 1, record.versions.length
|
1273
|
+
assert_equal "create", record.versions.last.event
|
1289
1274
|
end
|
1290
1275
|
end
|
1291
1276
|
|
1292
1277
|
context "on update" do
|
1293
|
-
cleanup_callbacks(Fluxor, :create)
|
1294
|
-
cleanup_callbacks(Fluxor, :update)
|
1295
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1296
|
-
cleanup_callbacks(Fluxor, :save)
|
1297
|
-
|
1298
|
-
setup do
|
1299
|
-
Fluxor.instance_eval <<-END
|
1300
|
-
has_paper_trail :on => [:update]
|
1301
|
-
END
|
1302
|
-
@fluxor = Fluxor.create
|
1303
|
-
@fluxor.update_attributes name: "blah"
|
1304
|
-
@fluxor.destroy
|
1305
|
-
end
|
1306
|
-
|
1307
1278
|
should "only have a version for the update event" do
|
1308
|
-
|
1309
|
-
|
1279
|
+
record = ::On::Update.create(name: "Alice")
|
1280
|
+
record.update_attributes name: "blah"
|
1281
|
+
record.destroy
|
1282
|
+
assert_equal 1, record.versions.length
|
1283
|
+
assert_equal "update", record.versions.last.event
|
1310
1284
|
end
|
1311
1285
|
end
|
1312
1286
|
|
1313
1287
|
context "on destroy" do
|
1314
|
-
cleanup_callbacks(Fluxor, :create)
|
1315
|
-
cleanup_callbacks(Fluxor, :update)
|
1316
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1317
|
-
cleanup_callbacks(Fluxor, :save)
|
1318
|
-
|
1319
|
-
setup do
|
1320
|
-
Fluxor.instance_eval <<-END
|
1321
|
-
has_paper_trail :on => [:destroy]
|
1322
|
-
END
|
1323
|
-
@fluxor = Fluxor.create
|
1324
|
-
@fluxor.update_attributes name: "blah"
|
1325
|
-
@fluxor.destroy
|
1326
|
-
end
|
1327
|
-
|
1328
1288
|
should "only have a version for the destroy event" do
|
1329
|
-
|
1330
|
-
|
1289
|
+
record = ::On::Destroy.create(name: "Alice")
|
1290
|
+
record.update_attributes name: "blah"
|
1291
|
+
record.destroy
|
1292
|
+
assert_equal 1, record.versions.length
|
1293
|
+
assert_equal "destroy", record.versions.last.event
|
1331
1294
|
end
|
1332
1295
|
end
|
1333
1296
|
|
1334
1297
|
context "on []" do
|
1335
|
-
cleanup_callbacks(Fluxor, :create)
|
1336
|
-
cleanup_callbacks(Fluxor, :update)
|
1337
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1338
|
-
cleanup_callbacks(Fluxor, :save)
|
1339
|
-
|
1340
1298
|
setup do
|
1341
|
-
|
1342
|
-
|
1343
|
-
END
|
1344
|
-
@fluxor = Fluxor.create
|
1345
|
-
@fluxor.update_attributes name: "blah"
|
1299
|
+
@record = ::On::EmptyArray.create(name: "Alice")
|
1300
|
+
@record.update_attributes name: "blah"
|
1346
1301
|
end
|
1347
1302
|
|
1348
1303
|
teardown do
|
1349
|
-
@
|
1304
|
+
@record.destroy
|
1350
1305
|
end
|
1351
1306
|
|
1352
1307
|
should "not have any versions" do
|
1353
|
-
assert_equal 0, @
|
1308
|
+
assert_equal 0, @record.versions.length
|
1354
1309
|
end
|
1355
1310
|
|
1356
1311
|
should "still respond to touch_with_version" do
|
1357
|
-
@
|
1358
|
-
assert_equal 1, @
|
1312
|
+
@record.paper_trail.touch_with_version
|
1313
|
+
assert_equal 1, @record.versions.length
|
1359
1314
|
end
|
1360
1315
|
end
|
1361
1316
|
|
1362
1317
|
context "allows a symbol to be passed" do
|
1363
|
-
cleanup_callbacks(Fluxor, :create)
|
1364
|
-
cleanup_callbacks(Fluxor, :update)
|
1365
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1366
|
-
cleanup_callbacks(Fluxor, :save)
|
1367
|
-
|
1368
|
-
setup do
|
1369
|
-
Fluxor.instance_eval <<-END
|
1370
|
-
has_paper_trail :on => :create
|
1371
|
-
END
|
1372
|
-
@fluxor = Fluxor.create
|
1373
|
-
@fluxor.update_attributes name: "blah"
|
1374
|
-
@fluxor.destroy
|
1375
|
-
end
|
1376
|
-
|
1377
1318
|
should "only have a version for hte create event" do
|
1378
|
-
|
1379
|
-
|
1319
|
+
record = ::On::Create.create(name: "Alice")
|
1320
|
+
record.update_attributes name: "blah"
|
1321
|
+
record.destroy
|
1322
|
+
assert_equal 1, record.versions.length
|
1323
|
+
assert_equal "create", record.versions.last.event
|
1380
1324
|
end
|
1381
1325
|
end
|
1382
1326
|
end
|
@@ -1419,65 +1363,38 @@ class HasPaperTrailModelTest < ActiveSupport::TestCase
|
|
1419
1363
|
|
1420
1364
|
context "custom events" do
|
1421
1365
|
context "on create" do
|
1422
|
-
cleanup_callbacks(Fluxor, :create)
|
1423
|
-
cleanup_callbacks(Fluxor, :update)
|
1424
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1425
|
-
cleanup_callbacks(Fluxor, :save)
|
1426
|
-
|
1427
|
-
setup do
|
1428
|
-
Fluxor.instance_eval <<-END
|
1429
|
-
has_paper_trail :on => [:create]
|
1430
|
-
END
|
1431
|
-
@fluxor = Fluxor.new.tap { |model| model.paper_trail_event = "created" }
|
1432
|
-
@fluxor.update_attributes name: "blah"
|
1433
|
-
@fluxor.destroy
|
1434
|
-
end
|
1435
|
-
|
1436
1366
|
should "only have a version for the created event" do
|
1437
|
-
|
1438
|
-
|
1367
|
+
record = ::On::Create.new.tap { |model|
|
1368
|
+
model.paper_trail_event = "created"
|
1369
|
+
}
|
1370
|
+
record.update_attributes name: "blah"
|
1371
|
+
record.destroy
|
1372
|
+
assert_equal 1, record.versions.length
|
1373
|
+
assert_equal "created", record.versions.last.event
|
1439
1374
|
end
|
1440
1375
|
end
|
1441
1376
|
|
1442
1377
|
context "on update" do
|
1443
|
-
cleanup_callbacks(Fluxor, :create)
|
1444
|
-
cleanup_callbacks(Fluxor, :update)
|
1445
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1446
|
-
cleanup_callbacks(Fluxor, :save)
|
1447
|
-
|
1448
|
-
setup do
|
1449
|
-
Fluxor.instance_eval <<-END
|
1450
|
-
has_paper_trail :on => [:update]
|
1451
|
-
END
|
1452
|
-
@fluxor = Fluxor.create.tap { |model| model.paper_trail_event = "name_updated" }
|
1453
|
-
@fluxor.update_attributes name: "blah"
|
1454
|
-
@fluxor.destroy
|
1455
|
-
end
|
1456
|
-
|
1457
1378
|
should "only have a version for the name_updated event" do
|
1458
|
-
|
1459
|
-
|
1379
|
+
record = ::On::Update.create(name: "Alice").tap { |model|
|
1380
|
+
model.paper_trail_event = "name_updated"
|
1381
|
+
}
|
1382
|
+
record.update_attributes name: "blah"
|
1383
|
+
record.destroy
|
1384
|
+
assert_equal 1, record.versions.length
|
1385
|
+
assert_equal "name_updated", record.versions.last.event
|
1460
1386
|
end
|
1461
1387
|
end
|
1462
1388
|
|
1463
1389
|
context "on destroy" do
|
1464
|
-
cleanup_callbacks(Fluxor, :create)
|
1465
|
-
cleanup_callbacks(Fluxor, :update)
|
1466
|
-
cleanup_callbacks(Fluxor, :destroy)
|
1467
|
-
cleanup_callbacks(Fluxor, :save)
|
1468
|
-
|
1469
|
-
setup do
|
1470
|
-
Fluxor.instance_eval <<-END
|
1471
|
-
has_paper_trail :on => [:destroy]
|
1472
|
-
END
|
1473
|
-
@fluxor = Fluxor.create.tap { |model| model.paper_trail_event = "destroyed" }
|
1474
|
-
@fluxor.update_attributes name: "blah"
|
1475
|
-
@fluxor.destroy
|
1476
|
-
end
|
1477
|
-
|
1478
1390
|
should "only have a version for the destroy event" do
|
1479
|
-
|
1480
|
-
|
1391
|
+
record = ::On::Destroy.create(name: "Alice").tap { |model|
|
1392
|
+
model.paper_trail_event = "destroyed"
|
1393
|
+
}
|
1394
|
+
record.update_attributes name: "blah"
|
1395
|
+
record.destroy
|
1396
|
+
assert_equal 1, record.versions.length
|
1397
|
+
assert_equal "destroyed", record.versions.last.event
|
1481
1398
|
end
|
1482
1399
|
end
|
1483
1400
|
end
|
@@ -2,36 +2,25 @@ require "test_helper"
|
|
2
2
|
require "custom_json_serializer"
|
3
3
|
|
4
4
|
class SerializerTest < ActiveSupport::TestCase
|
5
|
-
extend CleanupCallbacks
|
6
|
-
|
7
|
-
cleanup_callbacks(Fluxor, :create)
|
8
|
-
cleanup_callbacks(Fluxor, :update)
|
9
|
-
cleanup_callbacks(Fluxor, :destroy)
|
10
|
-
cleanup_callbacks(Fluxor, :save)
|
11
|
-
|
12
|
-
setup do
|
13
|
-
Fluxor.instance_eval "has_paper_trail"
|
14
|
-
end
|
15
|
-
|
16
5
|
context "YAML Serializer" do
|
17
6
|
setup do
|
18
|
-
@
|
7
|
+
@customer = Customer.create name: "Some text."
|
19
8
|
|
20
9
|
# this is exactly what PaperTrail serializes
|
21
|
-
@
|
10
|
+
@original_attributes = @customer.paper_trail.attributes_before_change
|
22
11
|
|
23
|
-
@
|
12
|
+
@customer.update_attributes name: "Some more text."
|
24
13
|
end
|
25
14
|
|
26
15
|
should "work with the default `YAML` serializer" do
|
27
16
|
# Normal behaviour
|
28
|
-
assert_equal 2, @
|
29
|
-
assert_nil @
|
30
|
-
assert_equal "Some text.", @
|
17
|
+
assert_equal 2, @customer.versions.length
|
18
|
+
assert_nil @customer.versions[0].reify
|
19
|
+
assert_equal "Some text.", @customer.versions[1].reify.name
|
31
20
|
|
32
21
|
# Check values are stored as `YAML`.
|
33
|
-
assert_equal @
|
34
|
-
assert_equal YAML.dump(@
|
22
|
+
assert_equal @original_attributes, YAML.load(@customer.versions[1].object)
|
23
|
+
assert_equal YAML.dump(@original_attributes), @customer.versions[1].object
|
35
24
|
end
|
36
25
|
end
|
37
26
|
|
@@ -41,12 +30,12 @@ class SerializerTest < ActiveSupport::TestCase
|
|
41
30
|
config.serializer = PaperTrail::Serializers::JSON
|
42
31
|
end
|
43
32
|
|
44
|
-
@
|
33
|
+
@customer = Customer.create name: "Some text."
|
45
34
|
|
46
35
|
# this is exactly what PaperTrail serializes
|
47
|
-
@
|
36
|
+
@original_attributes = @customer.paper_trail.attributes_before_change
|
48
37
|
|
49
|
-
@
|
38
|
+
@customer.update_attributes name: "Some more text."
|
50
39
|
end
|
51
40
|
|
52
41
|
teardown do
|
@@ -55,22 +44,22 @@ class SerializerTest < ActiveSupport::TestCase
|
|
55
44
|
|
56
45
|
should "reify with JSON serializer" do
|
57
46
|
# Normal behaviour
|
58
|
-
assert_equal 2, @
|
59
|
-
assert_nil @
|
60
|
-
assert_equal "Some text.", @
|
47
|
+
assert_equal 2, @customer.versions.length
|
48
|
+
assert_nil @customer.versions[0].reify
|
49
|
+
assert_equal "Some text.", @customer.versions[1].reify.name
|
61
50
|
|
62
51
|
# Check values are stored as JSON.
|
63
|
-
assert_equal @
|
64
|
-
ActiveSupport::JSON.decode(@
|
65
|
-
assert_equal ActiveSupport::JSON.encode(@
|
66
|
-
@
|
52
|
+
assert_equal @original_attributes,
|
53
|
+
ActiveSupport::JSON.decode(@customer.versions[1].object)
|
54
|
+
assert_equal ActiveSupport::JSON.encode(@original_attributes),
|
55
|
+
@customer.versions[1].object
|
67
56
|
end
|
68
57
|
|
69
58
|
should "store object_changes" do
|
70
|
-
initial_changeset = { "name" => [nil, "Some text."], "id" => [nil, @
|
59
|
+
initial_changeset = { "name" => [nil, "Some text."], "id" => [nil, @customer.id] }
|
71
60
|
second_changeset = { "name" => ["Some text.", "Some more text."] }
|
72
|
-
assert_equal initial_changeset, @
|
73
|
-
assert_equal second_changeset, @
|
61
|
+
assert_equal initial_changeset, @customer.versions[0].changeset
|
62
|
+
assert_equal second_changeset, @customer.versions[1].changeset
|
74
63
|
end
|
75
64
|
end
|
76
65
|
|
@@ -80,15 +69,15 @@ class SerializerTest < ActiveSupport::TestCase
|
|
80
69
|
config.serializer = CustomJsonSerializer
|
81
70
|
end
|
82
71
|
|
83
|
-
@
|
72
|
+
@customer = Customer.create
|
84
73
|
|
85
74
|
# this is exactly what PaperTrail serializes
|
86
|
-
@
|
75
|
+
@original_attributes = @customer.
|
87
76
|
paper_trail.
|
88
77
|
attributes_before_change.
|
89
78
|
reject { |_k, v| v.nil? }
|
90
79
|
|
91
|
-
@
|
80
|
+
@customer.update_attributes name: "Some more text."
|
92
81
|
end
|
93
82
|
|
94
83
|
teardown do
|
@@ -97,22 +86,22 @@ class SerializerTest < ActiveSupport::TestCase
|
|
97
86
|
|
98
87
|
should "reify with custom serializer" do
|
99
88
|
# Normal behaviour
|
100
|
-
assert_equal 2, @
|
101
|
-
assert_nil @
|
102
|
-
assert_nil @
|
89
|
+
assert_equal 2, @customer.versions.length
|
90
|
+
assert_nil @customer.versions[0].reify
|
91
|
+
assert_nil @customer.versions[1].reify.name
|
103
92
|
|
104
93
|
# Check values are stored as JSON.
|
105
|
-
assert_equal @
|
106
|
-
ActiveSupport::JSON.decode(@
|
107
|
-
assert_equal ActiveSupport::JSON.encode(@
|
108
|
-
@
|
94
|
+
assert_equal @original_attributes,
|
95
|
+
ActiveSupport::JSON.decode(@customer.versions[1].object)
|
96
|
+
assert_equal ActiveSupport::JSON.encode(@original_attributes),
|
97
|
+
@customer.versions[1].object
|
109
98
|
end
|
110
99
|
|
111
100
|
should "store object_changes" do
|
112
|
-
initial_changeset = { "id" => [nil, @
|
101
|
+
initial_changeset = { "id" => [nil, @customer.id] }
|
113
102
|
second_changeset = { "name" => [nil, "Some more text."] }
|
114
|
-
assert_equal initial_changeset, @
|
115
|
-
assert_equal second_changeset, @
|
103
|
+
assert_equal initial_changeset, @customer.versions[0].changeset
|
104
|
+
assert_equal second_changeset, @customer.versions[1].changeset
|
116
105
|
end
|
117
106
|
end
|
118
107
|
end
|
@@ -19,8 +19,10 @@ class MixinJsonTest < ActiveSupport::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
should "`deserialize` JSON to Ruby, removing pairs with `blank` keys or values" do
|
22
|
-
assert_equal
|
22
|
+
assert_equal(
|
23
|
+
@hash.reject { |k, v| k.blank? || v.blank? },
|
23
24
|
CustomJsonSerializer.load(@hash_as_json)
|
25
|
+
)
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
@@ -44,11 +44,7 @@ class YamlTest < ActiveSupport::TestCase
|
|
44
44
|
"Val 1"
|
45
45
|
)
|
46
46
|
assert matches.instance_of?(Arel::Nodes::Matches)
|
47
|
-
|
48
|
-
assert_equal matches.right.val, "%\narg1: Val 1\n%"
|
49
|
-
else
|
50
|
-
assert_equal matches.right, "%\narg1: Val 1\n%"
|
51
|
-
end
|
47
|
+
assert_equal matches.right.val, "%\narg1: Val 1\n%"
|
52
48
|
end
|
53
49
|
end
|
54
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -197,14 +197,28 @@ dependencies:
|
|
197
197
|
requirements:
|
198
198
|
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
|
-
version: 0.
|
200
|
+
version: 0.48.0
|
201
201
|
type: :development
|
202
202
|
prerelease: false
|
203
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
204
|
requirements:
|
205
205
|
- - "~>"
|
206
206
|
- !ruby/object:Gem::Version
|
207
|
-
version: 0.
|
207
|
+
version: 0.48.0
|
208
|
+
- !ruby/object:Gem::Dependency
|
209
|
+
name: rubocop-rspec
|
210
|
+
requirement: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: 1.15.0
|
215
|
+
type: :development
|
216
|
+
prerelease: false
|
217
|
+
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - "~>"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: 1.15.0
|
208
222
|
- !ruby/object:Gem::Dependency
|
209
223
|
name: timecop
|
210
224
|
requirement: !ruby/object:Gem::Requirement
|
@@ -286,6 +300,7 @@ files:
|
|
286
300
|
- doc/bug_report_template.rb
|
287
301
|
- doc/triage.md
|
288
302
|
- doc/warning_about_not_setting_whodunnit.md
|
303
|
+
- gemfiles/ar_4.0.gemfile
|
289
304
|
- gemfiles/ar_4.2.gemfile
|
290
305
|
- gemfiles/ar_5.0.gemfile
|
291
306
|
- gemfiles/ar_master.gemfile
|
@@ -313,7 +328,6 @@ files:
|
|
313
328
|
- lib/paper_trail/frameworks/rails/engine.rb
|
314
329
|
- lib/paper_trail/frameworks/rspec.rb
|
315
330
|
- lib/paper_trail/frameworks/rspec/helpers.rb
|
316
|
-
- lib/paper_trail/frameworks/sinatra.rb
|
317
331
|
- lib/paper_trail/has_paper_trail.rb
|
318
332
|
- lib/paper_trail/model_config.rb
|
319
333
|
- lib/paper_trail/queries/versions/where_object.rb
|
@@ -321,6 +335,11 @@ files:
|
|
321
335
|
- lib/paper_trail/record_history.rb
|
322
336
|
- lib/paper_trail/record_trail.rb
|
323
337
|
- lib/paper_trail/reifier.rb
|
338
|
+
- lib/paper_trail/reifiers/belongs_to.rb
|
339
|
+
- lib/paper_trail/reifiers/has_and_belongs_to_many.rb
|
340
|
+
- lib/paper_trail/reifiers/has_many.rb
|
341
|
+
- lib/paper_trail/reifiers/has_many_through.rb
|
342
|
+
- lib/paper_trail/reifiers/has_one.rb
|
324
343
|
- lib/paper_trail/serializers/json.rb
|
325
344
|
- lib/paper_trail/serializers/yaml.rb
|
326
345
|
- lib/paper_trail/version_association_concern.rb
|
@@ -335,6 +354,7 @@ files:
|
|
335
354
|
- spec/models/callback_modifier_spec.rb
|
336
355
|
- spec/models/car_spec.rb
|
337
356
|
- spec/models/custom_primary_key_record_spec.rb
|
357
|
+
- spec/models/document_spec.rb
|
338
358
|
- spec/models/gadget_spec.rb
|
339
359
|
- spec/models/joined_version_spec.rb
|
340
360
|
- spec/models/json_version_spec.rb
|
@@ -350,7 +370,11 @@ files:
|
|
350
370
|
- spec/modules/paper_trail_spec.rb
|
351
371
|
- spec/modules/version_concern_spec.rb
|
352
372
|
- spec/modules/version_number_spec.rb
|
373
|
+
- spec/paper_trail/cleaner_spec.rb
|
353
374
|
- spec/paper_trail/config_spec.rb
|
375
|
+
- spec/paper_trail/serializers/custom_yaml_serializer_spec.rb
|
376
|
+
- spec/paper_trail/serializers/json_spec.rb
|
377
|
+
- spec/paper_trail/version_limit_spec.rb
|
354
378
|
- spec/paper_trail_spec.rb
|
355
379
|
- spec/rails_helper.rb
|
356
380
|
- spec/requests/articles_spec.rb
|
@@ -389,6 +413,10 @@ files:
|
|
389
413
|
- test/dummy/app/models/legacy_widget.rb
|
390
414
|
- test/dummy/app/models/line_item.rb
|
391
415
|
- test/dummy/app/models/not_on_update.rb
|
416
|
+
- test/dummy/app/models/on/create.rb
|
417
|
+
- test/dummy/app/models/on/destroy.rb
|
418
|
+
- test/dummy/app/models/on/empty_array.rb
|
419
|
+
- test/dummy/app/models/on/update.rb
|
392
420
|
- test/dummy/app/models/order.rb
|
393
421
|
- test/dummy/app/models/paragraph.rb
|
394
422
|
- test/dummy/app/models/person.rb
|
@@ -431,19 +459,13 @@ files:
|
|
431
459
|
- test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
|
432
460
|
- test/dummy/db/schema.rb
|
433
461
|
- test/functional/controller_test.rb
|
434
|
-
- test/functional/modular_sinatra_test.rb
|
435
|
-
- test/functional/sinatra_test.rb
|
436
462
|
- test/functional/thread_safety_test.rb
|
437
463
|
- test/test_helper.rb
|
438
464
|
- test/time_travel_helper.rb
|
439
465
|
- test/unit/associations_test.rb
|
440
|
-
- test/unit/cleaner_test.rb
|
441
|
-
- test/unit/inheritance_column_test.rb
|
442
466
|
- test/unit/model_test.rb
|
443
467
|
- test/unit/serializer_test.rb
|
444
|
-
- test/unit/serializers/json_test.rb
|
445
468
|
- test/unit/serializers/mixin_json_test.rb
|
446
|
-
- test/unit/serializers/mixin_yaml_test.rb
|
447
469
|
- test/unit/serializers/yaml_test.rb
|
448
470
|
- test/unit/version_test.rb
|
449
471
|
homepage: https://github.com/airblade/paper_trail
|
@@ -458,7 +480,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
458
480
|
requirements:
|
459
481
|
- - ">="
|
460
482
|
- !ruby/object:Gem::Version
|
461
|
-
version: 1.
|
483
|
+
version: 2.1.0
|
462
484
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
463
485
|
requirements:
|
464
486
|
- - ">="
|
@@ -466,7 +488,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
466
488
|
version: 1.3.6
|
467
489
|
requirements: []
|
468
490
|
rubyforge_project:
|
469
|
-
rubygems_version: 2.
|
491
|
+
rubygems_version: 2.6.11
|
470
492
|
signing_key:
|
471
493
|
specification_version: 4
|
472
494
|
summary: Track changes to your models.
|
@@ -479,6 +501,7 @@ test_files:
|
|
479
501
|
- spec/models/callback_modifier_spec.rb
|
480
502
|
- spec/models/car_spec.rb
|
481
503
|
- spec/models/custom_primary_key_record_spec.rb
|
504
|
+
- spec/models/document_spec.rb
|
482
505
|
- spec/models/gadget_spec.rb
|
483
506
|
- spec/models/joined_version_spec.rb
|
484
507
|
- spec/models/json_version_spec.rb
|
@@ -494,7 +517,11 @@ test_files:
|
|
494
517
|
- spec/modules/paper_trail_spec.rb
|
495
518
|
- spec/modules/version_concern_spec.rb
|
496
519
|
- spec/modules/version_number_spec.rb
|
520
|
+
- spec/paper_trail/cleaner_spec.rb
|
497
521
|
- spec/paper_trail/config_spec.rb
|
522
|
+
- spec/paper_trail/serializers/custom_yaml_serializer_spec.rb
|
523
|
+
- spec/paper_trail/serializers/json_spec.rb
|
524
|
+
- spec/paper_trail/version_limit_spec.rb
|
498
525
|
- spec/paper_trail_spec.rb
|
499
526
|
- spec/rails_helper.rb
|
500
527
|
- spec/requests/articles_spec.rb
|
@@ -533,6 +560,10 @@ test_files:
|
|
533
560
|
- test/dummy/app/models/legacy_widget.rb
|
534
561
|
- test/dummy/app/models/line_item.rb
|
535
562
|
- test/dummy/app/models/not_on_update.rb
|
563
|
+
- test/dummy/app/models/on/create.rb
|
564
|
+
- test/dummy/app/models/on/destroy.rb
|
565
|
+
- test/dummy/app/models/on/empty_array.rb
|
566
|
+
- test/dummy/app/models/on/update.rb
|
536
567
|
- test/dummy/app/models/order.rb
|
537
568
|
- test/dummy/app/models/paragraph.rb
|
538
569
|
- test/dummy/app/models/person.rb
|
@@ -575,18 +606,12 @@ test_files:
|
|
575
606
|
- test/dummy/db/migrate/20110208155312_set_up_test_tables.rb
|
576
607
|
- test/dummy/db/schema.rb
|
577
608
|
- test/functional/controller_test.rb
|
578
|
-
- test/functional/modular_sinatra_test.rb
|
579
|
-
- test/functional/sinatra_test.rb
|
580
609
|
- test/functional/thread_safety_test.rb
|
581
610
|
- test/test_helper.rb
|
582
611
|
- test/time_travel_helper.rb
|
583
612
|
- test/unit/associations_test.rb
|
584
|
-
- test/unit/cleaner_test.rb
|
585
|
-
- test/unit/inheritance_column_test.rb
|
586
613
|
- test/unit/model_test.rb
|
587
614
|
- test/unit/serializer_test.rb
|
588
|
-
- test/unit/serializers/json_test.rb
|
589
615
|
- test/unit/serializers/mixin_json_test.rb
|
590
|
-
- test/unit/serializers/mixin_yaml_test.rb
|
591
616
|
- test/unit/serializers/yaml_test.rb
|
592
617
|
- test/unit/version_test.rb
|