paper_trail-rails 0.3.0 → 0.5.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/Changelog.md +7 -0
- data/Readme.md +1 -0
- data/lib/paper_trail/rails/configuration.rb +6 -2
- data/lib/paper_trail/rails/console.rb +4 -4
- data/lib/paper_trail/rails/general.rb +13 -5
- data/lib/paper_trail/rails/railtie.rb +7 -5
- data/lib/paper_trail/rails/version.rb +1 -1
- data/paper_trail-rails.gemspec +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df6b12e02d1b44eabbb7c41961258e502db07a2b7f1078d48f72b56def92f948
|
4
|
+
data.tar.gz: d5eba93e47293263d99c743e280ca385d2773c5752eaff08090f5fbe0d023466
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33952094c64fd705018a4b33108c7e398ab5dc624449402e1a95cd4dc70a65544372e41906cb697b326b66fb7dc688c6ca2bfe35d82aecb7d8197a585358b064
|
7
|
+
data.tar.gz: b26c1c50f90b35dddf67291024beeacab8b4d37578f7450cb169f9c83d4794c455d66fadf6dd8d75ed9f9ad51dce589cb29b969818eaf5d6a5a1e71f410d8a97
|
data/Changelog.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 0.4.0 (2020-04-23)
|
2
|
+
- Allow user to be selected by index in addition to id
|
3
|
+
- Add config.select_user_inspect
|
4
|
+
- Fix: Remove .default_order which may not be defined. Included as config example instead.
|
5
|
+
- Fix: Replace respond.id with respond_to?(:id)
|
6
|
+
- Fix: Should use require_user rather than require_reason
|
7
|
+
|
1
8
|
## 0.3.0 (2019-09-16)
|
2
9
|
- Fix: When running db:migrate:redo, command got recorded as "rails db:migrate:redo VERSION=2019…"
|
3
10
|
instead of as "rails db:migrate: MigrationName (up)" as intended.
|
data/Readme.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# PaperTrail::Rails
|
2
2
|
|
3
3
|
[![Gem Version][1]][2]
|
4
|
+
[](https://rdoc.info/github/TylerRick/paper_trail-rails/master)
|
4
5
|
|
5
6
|
An extension to [PaperTrail](https://github.com/paper-trail-gem/paper_trail)
|
6
7
|
that adds some useful automatic integrations with Rails:
|
@@ -4,18 +4,22 @@ module PaperTrail
|
|
4
4
|
def initialize
|
5
5
|
config = self
|
6
6
|
|
7
|
+
#config.user_model = User
|
7
8
|
config.select_user_filter = :itself
|
9
|
+
config.select_user_inspect = :inspect
|
8
10
|
config.select_user_other_allowed_values = ['system', 'admin']
|
9
11
|
config.source_location_filter = ->(line) { !line.match /paper_trail/ }
|
10
12
|
end
|
11
13
|
|
12
14
|
# Filter proc to use to show a list of users in select_user helper. For example:
|
13
|
-
# ->(users) { users.admins
|
15
|
+
# ->(users) { users.admins.default_order }
|
14
16
|
# or
|
15
|
-
# ->(users) { users.none
|
17
|
+
# ->(users) { users.none }
|
16
18
|
# Can be also be a symbol or anything that responds to to_proc.
|
17
19
|
attr_accessor :select_user_filter
|
18
20
|
|
21
|
+
attr_accessor :select_user_inspect
|
22
|
+
|
19
23
|
attr_accessor :select_user_other_allowed_values
|
20
24
|
|
21
25
|
attr_accessor :source_location_filter
|
@@ -50,7 +50,7 @@ module PaperTrail
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
class
|
53
|
+
class Railtie
|
54
54
|
initializer "paper_trail-rails.set_default_metadata" do |app|
|
55
55
|
# There's no way to set up deferred evaluation of PaperTrail.request.controller_info from
|
56
56
|
# here like we can with whodunnit, so abuse that property of PaperTrail.request.whodunnit to
|
@@ -73,14 +73,14 @@ module PaperTrail
|
|
73
73
|
user = config.console.user_for_test.(User.all)
|
74
74
|
else
|
75
75
|
puts "Before you make any changes... We need to know who is making the changes, to store in the PaperTrail version history."
|
76
|
-
user = PaperTrail::Rails.select_user(required: config.console.
|
76
|
+
user = PaperTrail::Rails.select_user(required: config.console.require_user)
|
77
77
|
puts "Thank you, #{user}! Have a wonderful time!" if user
|
78
78
|
end
|
79
|
-
user.
|
79
|
+
user.respond_to?(:id) ? user.id : user
|
80
80
|
end
|
81
81
|
)
|
82
82
|
|
83
|
-
if config.console.ask_for_reason
|
83
|
+
if config.console.ask_for_reason && PaperTrail.request.controller_info[:reason].nil?
|
84
84
|
@paper_trail_reason ||= PaperTrail::Rails.get_reason(required: config.console.require_reason)
|
85
85
|
end
|
86
86
|
PaperTrail.update_metadata reason: @paper_trail_reason
|
@@ -4,11 +4,15 @@ module PaperTrail
|
|
4
4
|
module Rails
|
5
5
|
module General
|
6
6
|
class << self
|
7
|
-
def select_user(filter: :itself, other_allowed_values: [], prompt: 'Please enter a User id', required: true)
|
7
|
+
def select_user(filter: :itself, other_allowed_values: [], prompt: '"Please enter the index of one of the users above, or a valid User id', required: true)
|
8
|
+
config = PaperTrail::Rails.config
|
9
|
+
|
10
|
+
user_options = nil
|
8
11
|
User.logger.silence do
|
9
|
-
puts '
|
10
|
-
filter.to_proc.(User.all)
|
11
|
-
|
12
|
+
puts 'index. user'
|
13
|
+
user_options = filter.to_proc.(User.all)
|
14
|
+
user_options.each.with_index do |user, i|
|
15
|
+
puts "%2s. %s" % [i + 1, user.inspect]
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
@@ -20,7 +24,11 @@ module PaperTrail
|
|
20
24
|
when *other_allowed_values
|
21
25
|
user = input
|
22
26
|
else
|
23
|
-
|
27
|
+
if (i = Integer(input) rescue nil)
|
28
|
+
user = user_options[i - 1] || (User.find(input) rescue nil)
|
29
|
+
else # allow for non-numeric ids like uuids
|
30
|
+
user = User.find(input) rescue nil
|
31
|
+
end
|
24
32
|
end
|
25
33
|
break unless required
|
26
34
|
end
|
@@ -1,12 +1,14 @@
|
|
1
|
-
# paper_trail gem also provides a Railtie (Engine) in this require. It seems to
|
2
|
-
# work to just add initializers to that existing Railtie. If needed, though, we
|
3
|
-
# could define a different one, like "Railtie".
|
4
1
|
require 'rails'
|
5
|
-
require 'paper_trail/frameworks/rails
|
2
|
+
require 'paper_trail/frameworks/rails'
|
6
3
|
|
7
4
|
module PaperTrail
|
8
5
|
module Rails
|
9
|
-
|
6
|
+
# lib/paper_trail/rails/console.rb adds an initializer to this Railtie.
|
7
|
+
#
|
8
|
+
# paper_trail gem also provides a Railtie, PaperTrail::Railtie
|
9
|
+
# (paper_trail/frameworks/rails/railtie.rb), but that is different from this one.
|
10
|
+
#
|
11
|
+
class Railtie < ::Rails::Railtie
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
data/paper_trail-rails.gemspec
CHANGED
@@ -30,6 +30,6 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "rails"
|
31
31
|
|
32
32
|
spec.add_development_dependency "bundler", "~> 2.0"
|
33
|
-
spec.add_development_dependency
|
33
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
35
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Rick
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: paper_trail
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 12.3.3
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 12.3.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
requirements: []
|
131
|
-
rubygems_version: 3.
|
131
|
+
rubygems_version: 3.3.3
|
132
132
|
signing_key:
|
133
133
|
specification_version: 4
|
134
134
|
summary: Integrate with rails console and migrations. In rails console, ask who is
|