paper_trail-rails 0.3.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c131d41ac82f9058ed9bfbf6bbb0ec4c41d81bb0831213354a8a489d13ab02fa
4
- data.tar.gz: ad5bc11f3012ff9155c6891a4cdd5b55a424c505aaa6872f38a4a9bae2a0e776
3
+ metadata.gz: df6b12e02d1b44eabbb7c41961258e502db07a2b7f1078d48f72b56def92f948
4
+ data.tar.gz: d5eba93e47293263d99c743e280ca385d2773c5752eaff08090f5fbe0d023466
5
5
  SHA512:
6
- metadata.gz: ecf6879903c63aeca60556f75877f4bf709022a7953975610c732bb13819e4f0939e19f3c220b8aad562c1d6516c900b90b12b71666a4284d7b4dfc32c9c5309
7
- data.tar.gz: d8956bd5abfe35a712cfec8f24df52319e1d3cbbb9a06162eab2582c4dcba0f05f2f422a9d7b7d4c8ddf62e09103c08111a046ff83f11f0ddf3a249ef0ab7336
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
+ [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](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 Engine
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.require_reason)
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.respond.id
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 'id. user'
10
- filter.to_proc.(User.all).default_order.each do |user|
11
- puts "%4s. %s" % [user.id, user.inspect]
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
- user = User.find(input) rescue nil
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/engine'
2
+ require 'paper_trail/frameworks/rails'
6
3
 
7
4
  module PaperTrail
8
5
  module Rails
9
- class Engine
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
@@ -1,7 +1,7 @@
1
1
  module PaperTrail
2
2
  module Rails
3
3
  def self.version
4
- "0.3.0"
4
+ "0.5.1"
5
5
  end
6
6
  end
7
7
  end
@@ -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 "rake", "~> 10.0"
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.3.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: 2019-09-16 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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.0.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