paper_trail 7.1.0 → 7.1.1
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.
- checksums.yaml +4 -4
- data/lib/paper_trail/record_trail.rb +1 -1
- data/lib/paper_trail/version_number.rb +1 -1
- metadata +3 -274
- data/.github/CONTRIBUTING.md +0 -151
- data/.github/ISSUE_TEMPLATE.md +0 -13
- data/.gitignore +0 -23
- data/.rspec +0 -2
- data/.rubocop.yml +0 -135
- data/.rubocop_todo.yml +0 -41
- data/.travis.yml +0 -41
- data/Appraisals +0 -26
- data/CHANGELOG.md +0 -739
- data/Gemfile +0 -2
- data/MIT-LICENSE +0 -20
- data/README.md +0 -1613
- data/Rakefile +0 -38
- data/doc/bug_report_template.rb +0 -73
- data/doc/triage.md +0 -27
- data/doc/warning_about_not_setting_whodunnit.md +0 -33
- data/gemfiles/ar_4.0.gemfile +0 -7
- data/gemfiles/ar_4.2.gemfile +0 -7
- data/gemfiles/ar_5.0.gemfile +0 -8
- data/gemfiles/ar_5.1.gemfile +0 -8
- data/gemfiles/ar_master.gemfile +0 -9
- data/lib/generators/paper_trail/default_initializer.rb +0 -0
- data/paper_trail.gemspec +0 -49
- data/spec/controllers/articles_controller_spec.rb +0 -28
- data/spec/controllers/widgets_controller_spec.rb +0 -85
- data/spec/dummy_app/Rakefile +0 -7
- data/spec/dummy_app/app/controllers/application_controller.rb +0 -30
- data/spec/dummy_app/app/controllers/articles_controller.rb +0 -16
- data/spec/dummy_app/app/controllers/test_controller.rb +0 -5
- data/spec/dummy_app/app/controllers/widgets_controller.rb +0 -28
- data/spec/dummy_app/app/models/animal.rb +0 -4
- data/spec/dummy_app/app/models/article.rb +0 -25
- data/spec/dummy_app/app/models/authorship.rb +0 -5
- data/spec/dummy_app/app/models/bar_habtm.rb +0 -4
- data/spec/dummy_app/app/models/book.rb +0 -9
- data/spec/dummy_app/app/models/boolit.rb +0 -4
- data/spec/dummy_app/app/models/callback_modifier.rb +0 -45
- data/spec/dummy_app/app/models/car.rb +0 -3
- data/spec/dummy_app/app/models/cat.rb +0 -2
- data/spec/dummy_app/app/models/chapter.rb +0 -9
- data/spec/dummy_app/app/models/citation.rb +0 -5
- data/spec/dummy_app/app/models/custom_primary_key_record.rb +0 -15
- data/spec/dummy_app/app/models/customer.rb +0 -4
- data/spec/dummy_app/app/models/document.rb +0 -8
- data/spec/dummy_app/app/models/dog.rb +0 -2
- data/spec/dummy_app/app/models/editor.rb +0 -4
- data/spec/dummy_app/app/models/editorship.rb +0 -5
- data/spec/dummy_app/app/models/elephant.rb +0 -3
- data/spec/dummy_app/app/models/fluxor.rb +0 -3
- data/spec/dummy_app/app/models/foo_habtm.rb +0 -5
- data/spec/dummy_app/app/models/foo_widget.rb +0 -2
- data/spec/dummy_app/app/models/fruit.rb +0 -5
- data/spec/dummy_app/app/models/gadget.rb +0 -3
- data/spec/dummy_app/app/models/kitchen/banana.rb +0 -5
- data/spec/dummy_app/app/models/legacy_widget.rb +0 -6
- data/spec/dummy_app/app/models/line_item.rb +0 -4
- data/spec/dummy_app/app/models/not_on_update.rb +0 -4
- data/spec/dummy_app/app/models/on/create.rb +0 -6
- data/spec/dummy_app/app/models/on/destroy.rb +0 -6
- data/spec/dummy_app/app/models/on/empty_array.rb +0 -6
- data/spec/dummy_app/app/models/on/update.rb +0 -6
- data/spec/dummy_app/app/models/order.rb +0 -5
- data/spec/dummy_app/app/models/paragraph.rb +0 -5
- data/spec/dummy_app/app/models/person.rb +0 -39
- data/spec/dummy_app/app/models/post.rb +0 -3
- data/spec/dummy_app/app/models/post_with_status.rb +0 -7
- data/spec/dummy_app/app/models/quotation.rb +0 -5
- data/spec/dummy_app/app/models/section.rb +0 -6
- data/spec/dummy_app/app/models/skipper.rb +0 -3
- data/spec/dummy_app/app/models/song.rb +0 -37
- data/spec/dummy_app/app/models/thing.rb +0 -3
- data/spec/dummy_app/app/models/translation.rb +0 -11
- data/spec/dummy_app/app/models/truck.rb +0 -4
- data/spec/dummy_app/app/models/vehicle.rb +0 -4
- data/spec/dummy_app/app/models/whatchamajigger.rb +0 -4
- data/spec/dummy_app/app/models/widget.rb +0 -8
- data/spec/dummy_app/app/models/wotsit.rb +0 -8
- data/spec/dummy_app/app/versions/custom_primary_key_record_version.rb +0 -3
- data/spec/dummy_app/app/versions/joined_version.rb +0 -6
- data/spec/dummy_app/app/versions/json_version.rb +0 -3
- data/spec/dummy_app/app/versions/kitchen/banana_version.rb +0 -5
- data/spec/dummy_app/app/versions/post_version.rb +0 -3
- data/spec/dummy_app/config.ru +0 -4
- data/spec/dummy_app/config/application.rb +0 -39
- data/spec/dummy_app/config/boot.rb +0 -24
- data/spec/dummy_app/config/database.mysql.yml +0 -19
- data/spec/dummy_app/config/database.postgres.yml +0 -15
- data/spec/dummy_app/config/database.sqlite.yml +0 -15
- data/spec/dummy_app/config/environment.rb +0 -5
- data/spec/dummy_app/config/environments/development.rb +0 -36
- data/spec/dummy_app/config/environments/production.rb +0 -74
- data/spec/dummy_app/config/environments/test.rb +0 -46
- data/spec/dummy_app/config/initializers/backtrace_silencers.rb +0 -9
- data/spec/dummy_app/config/initializers/inflections.rb +0 -10
- data/spec/dummy_app/config/initializers/mime_types.rb +0 -5
- data/spec/dummy_app/config/initializers/paper_trail.rb +0 -1
- data/spec/dummy_app/config/initializers/secret_token.rb +0 -9
- data/spec/dummy_app/config/initializers/session_store.rb +0 -8
- data/spec/dummy_app/config/locales/en.yml +0 -5
- data/spec/dummy_app/config/routes.rb +0 -4
- data/spec/dummy_app/db/migrate/20110208155312_set_up_test_tables.rb +0 -344
- data/spec/dummy_app/db/schema.rb +0 -298
- data/spec/generators/install_generator_spec.rb +0 -88
- data/spec/models/animal_spec.rb +0 -61
- data/spec/models/article_spec.rb +0 -186
- data/spec/models/boolit_spec.rb +0 -41
- data/spec/models/callback_modifier_spec.rb +0 -92
- data/spec/models/car_spec.rb +0 -13
- data/spec/models/custom_primary_key_record_spec.rb +0 -18
- data/spec/models/document_spec.rb +0 -57
- data/spec/models/gadget_spec.rb +0 -63
- data/spec/models/joined_version_spec.rb +0 -41
- data/spec/models/json_version_spec.rb +0 -101
- data/spec/models/kitchen/banana_spec.rb +0 -14
- data/spec/models/legacy_widget_spec.rb +0 -40
- data/spec/models/not_on_update_spec.rb +0 -22
- data/spec/models/on/create_spec.rb +0 -27
- data/spec/models/on/destroy_spec.rb +0 -27
- data/spec/models/on/empty_array_spec.rb +0 -30
- data/spec/models/on/update_spec.rb +0 -27
- data/spec/models/post_with_status_spec.rb +0 -46
- data/spec/models/skipper_spec.rb +0 -42
- data/spec/models/thing_spec.rb +0 -11
- data/spec/models/translation_spec.rb +0 -70
- data/spec/models/vehicle_spec.rb +0 -5
- data/spec/models/version_spec.rb +0 -282
- data/spec/models/widget_spec.rb +0 -338
- data/spec/modules/paper_trail_spec.rb +0 -27
- data/spec/modules/version_concern_spec.rb +0 -28
- data/spec/modules/version_number_spec.rb +0 -18
- data/spec/paper_trail/associations_spec.rb +0 -965
- data/spec/paper_trail/cleaner_spec.rb +0 -152
- data/spec/paper_trail/config_spec.rb +0 -45
- data/spec/paper_trail/model_spec.rb +0 -992
- data/spec/paper_trail/serializer_spec.rb +0 -85
- data/spec/paper_trail/serializers/custom_json_serializer_spec.rb +0 -18
- data/spec/paper_trail/serializers/custom_yaml_serializer_spec.rb +0 -45
- data/spec/paper_trail/serializers/json_spec.rb +0 -57
- data/spec/paper_trail/serializers/yaml_spec.rb +0 -42
- data/spec/paper_trail/thread_safety_spec.rb +0 -44
- data/spec/paper_trail/version_limit_spec.rb +0 -55
- data/spec/paper_trail/version_spec.rb +0 -96
- data/spec/paper_trail_spec.rb +0 -122
- data/spec/requests/articles_spec.rb +0 -34
- data/spec/spec_helper.rb +0 -78
- data/spec/support/alt_db_init.rb +0 -54
- data/spec/support/custom_json_serializer.rb +0 -13
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
class WidgetsController < ApplicationController
|
|
2
|
-
def paper_trail_enabled_for_controller
|
|
3
|
-
request.user_agent != "Disable User-Agent"
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
def create
|
|
7
|
-
@widget = Widget.create widget_params
|
|
8
|
-
head :ok
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def update
|
|
12
|
-
@widget = Widget.find params[:id]
|
|
13
|
-
@widget.update_attributes widget_params
|
|
14
|
-
head :ok
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def destroy
|
|
18
|
-
@widget = Widget.find params[:id]
|
|
19
|
-
@widget.destroy
|
|
20
|
-
head :ok
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
def widget_params
|
|
26
|
-
params[:widget].permit!
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Demonstrates the `only` and `ignore` attributes, among other things.
|
|
2
|
-
class Article < ActiveRecord::Base
|
|
3
|
-
has_paper_trail(
|
|
4
|
-
ignore: [
|
|
5
|
-
:title, {
|
|
6
|
-
abstract: proc { |obj|
|
|
7
|
-
["ignore abstract", "Other abstract"].include? obj.abstract
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
],
|
|
11
|
-
only: [:content, { abstract: proc { |obj| obj.abstract.present? } }],
|
|
12
|
-
skip: [:file_upload],
|
|
13
|
-
meta: {
|
|
14
|
-
answer: 42,
|
|
15
|
-
action: :action_data_provider_method,
|
|
16
|
-
question: proc { "31 + 11 = #{31 + 11}" },
|
|
17
|
-
article_id: proc { |article| article.id },
|
|
18
|
-
title: :title
|
|
19
|
-
}
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
def action_data_provider_method
|
|
23
|
-
object_id.to_s
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
class CallbackModifier < ActiveRecord::Base
|
|
2
|
-
has_paper_trail on: []
|
|
3
|
-
|
|
4
|
-
def test_destroy
|
|
5
|
-
transaction do
|
|
6
|
-
run_callbacks(:destroy) do
|
|
7
|
-
self.deleted = true
|
|
8
|
-
save!
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def flagged_deleted?
|
|
14
|
-
deleted?
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
class BeforeDestroyModifier < CallbackModifier
|
|
19
|
-
has_paper_trail on: []
|
|
20
|
-
paper_trail.on_destroy :before
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
class AfterDestroyModifier < CallbackModifier
|
|
24
|
-
has_paper_trail on: []
|
|
25
|
-
paper_trail.on_destroy :after
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
class NoArgDestroyModifier < CallbackModifier
|
|
29
|
-
has_paper_trail on: []
|
|
30
|
-
paper_trail.on_destroy
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
class UpdateModifier < CallbackModifier
|
|
34
|
-
has_paper_trail on: []
|
|
35
|
-
paper_trail.on_update
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class CreateModifier < CallbackModifier
|
|
39
|
-
has_paper_trail on: []
|
|
40
|
-
paper_trail.on_create
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
class DefaultModifier < CallbackModifier
|
|
44
|
-
has_paper_trail
|
|
45
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
require "securerandom"
|
|
2
|
-
|
|
3
|
-
class CustomPrimaryKeyRecord < ActiveRecord::Base
|
|
4
|
-
self.primary_key = :uuid
|
|
5
|
-
|
|
6
|
-
has_paper_trail class_name: "CustomPrimaryKeyRecordVersion"
|
|
7
|
-
|
|
8
|
-
# This default_scope is to test the case of the Version#item association
|
|
9
|
-
# not returning the item due to unmatched default_scope on the model.
|
|
10
|
-
default_scope { where(name: "custom_primary_key_record") }
|
|
11
|
-
|
|
12
|
-
before_create do
|
|
13
|
-
self.uuid ||= SecureRandom.uuid
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Demonstrates a "custom versions association name". Instead of the assication
|
|
2
|
-
# being named `versions`, it will be named `paper_trail_versions`.
|
|
3
|
-
class Document < ActiveRecord::Base
|
|
4
|
-
has_paper_trail(
|
|
5
|
-
versions: :paper_trail_versions,
|
|
6
|
-
on: %i[create update]
|
|
7
|
-
)
|
|
8
|
-
end
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
# The `legacy_widgets` table has a `version` column that would conflict with our
|
|
2
|
-
# `version` method. It is configured to define a method named `custom_version`
|
|
3
|
-
# instead.
|
|
4
|
-
class LegacyWidget < ActiveRecord::Base
|
|
5
|
-
has_paper_trail ignore: :version, version: "custom_version"
|
|
6
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
class Person < ActiveRecord::Base
|
|
2
|
-
has_many :authorships, foreign_key: :author_id, dependent: :destroy
|
|
3
|
-
has_many :books, through: :authorships
|
|
4
|
-
belongs_to :mentor, class_name: "Person", foreign_key: :mentor_id
|
|
5
|
-
has_paper_trail
|
|
6
|
-
|
|
7
|
-
# Convert strings to TimeZone objects when assigned
|
|
8
|
-
def time_zone=(value)
|
|
9
|
-
if value.is_a? ActiveSupport::TimeZone
|
|
10
|
-
super
|
|
11
|
-
else
|
|
12
|
-
zone = ::Time.find_zone(value) # nil if can't find time zone
|
|
13
|
-
super zone
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Store TimeZone objects as strings when serialized to database
|
|
18
|
-
class TimeZoneSerializer
|
|
19
|
-
class << self
|
|
20
|
-
def dump(zone)
|
|
21
|
-
zone.try(:name)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def load(value)
|
|
25
|
-
::Time.find_zone(value)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def dump(zone)
|
|
30
|
-
self.class.dump(zone)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def load(value)
|
|
34
|
-
self.class.load(value)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
serialize :time_zone, TimeZoneSerializer.new
|
|
39
|
-
end
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# This model tests ActiveRecord::Enum, which was added in AR 4.1
|
|
2
|
-
# http://edgeguides.rubyonrails.org/4_1_release_notes.html#active-record-enums
|
|
3
|
-
class PostWithStatus < ActiveRecord::Base
|
|
4
|
-
has_paper_trail
|
|
5
|
-
|
|
6
|
-
enum status: { draft: 0, published: 1, archived: 2 }
|
|
7
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module OverrideSongAttributesTheRails4Way
|
|
2
|
-
def attributes
|
|
3
|
-
if name
|
|
4
|
-
super.merge(name: name)
|
|
5
|
-
else
|
|
6
|
-
super
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def changed_attributes
|
|
11
|
-
if name
|
|
12
|
-
super.merge(name: name)
|
|
13
|
-
else
|
|
14
|
-
super
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
class Song < ActiveRecord::Base
|
|
20
|
-
has_paper_trail
|
|
21
|
-
|
|
22
|
-
# Uses an integer of seconds to hold the length of the song
|
|
23
|
-
def length=(minutes)
|
|
24
|
-
write_attribute(:length, minutes.to_i * 60)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def length
|
|
28
|
-
read_attribute(:length) / 60
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
if ActiveRecord::VERSION::MAJOR >= 5
|
|
32
|
-
attribute :name, :string
|
|
33
|
-
else
|
|
34
|
-
attr_accessor :name
|
|
35
|
-
prepend OverrideSongAttributesTheRails4Way
|
|
36
|
-
end
|
|
37
|
-
end
|