action_tracer 0.2.1 → 0.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1d5ce6f77e55850f0208941baa76ad2e6b842fc191a45816a7acc08fdd9295b
4
- data.tar.gz: '09d69bcc6c5865871fc0ce8a560f3f41a3fb951bbd2bd08051b4ba45526b7d97'
3
+ metadata.gz: 0061b0039b327ef7923b1ccb60a49d3ecc299f93fbf13061087b90f0ae511865
4
+ data.tar.gz: bba51412925a6b3d23aeabc2e68c58ce6c572323a7ac4ba749f0de077dcc42af
5
5
  SHA512:
6
- metadata.gz: a45589c3b67d0108093a9f8e221173d64147cc2b2f06a6fa67ece389d08767e7062b0b6789a68116005944d921aef969685e0b4fe1bc074eb3dc0abb8781ef36
7
- data.tar.gz: 0aee1ec34d63aad007062478cf5c2f97df97ddbd6975a63744c6acac4aa16602d97feb5327de1131c6f5fff3d00edee1bfc707568606b115e81f0c2787619fc5
6
+ metadata.gz: 25be298bf88d787985c8b056fec084b225623de7d904b1872a541fcd3da338214ed31169492e4fceae38ca7568c2592280ce3b7483f608a3c8f6fba7cbfd717d
7
+ data.tar.gz: 4f90d3dfef39cdf116bff177057a74d8f889a33a23e66a6e68685057acef8cc4e15ae8d432d413848621d6009309f65c14718d2738c2551a02a0ff234e2d4a2f
data/.gitignore CHANGED
@@ -6,6 +6,8 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
9
+ /log/
10
+ /test/log/
11
+ /test/tmp/
12
+ Gemfile.lock
13
+ .byebug_history
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 0.2.4
2
+
3
+ * Fix bug for Rails7.x support.
4
+
5
+ ## 0.2.3
6
+
7
+ * Deal with Rails7.x.
8
+
9
+ ## 0.2.2
10
+
11
+ * Log filters even when controllers raise error.
12
+
1
13
  ## 0.2.1
2
14
 
3
15
  * Fix not to raise error when controllers does not have action definitions.
@@ -23,8 +23,6 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_dependency "activesupport"
25
25
  spec.add_dependency "actionpack"
26
-
27
- spec.add_development_dependency "bundler"
28
- spec.add_development_dependency "rake"
29
- spec.add_development_dependency "rspec"
26
+ spec.add_development_dependency "byebug"
27
+ spec.add_development_dependency "minitest"
30
28
  end
@@ -6,6 +6,7 @@ module ActionTracer
6
6
  class << self
7
7
  def log(controller)
8
8
  result = yield
9
+ ensure
9
10
  Filters.build(controller).print
10
11
  applied_filters.clear
11
12
  ActionTracer.logger.info ""
@@ -51,15 +51,23 @@ module ActionTracer
51
51
  @action = action
52
52
  end
53
53
 
54
- def self.build(controller)
55
- filters = { before: [], after: [], around: [] }
56
- raw_filters = controller.__callbacks[:process_action].send(:chain).group_by(&:kind)
57
- raw_filters.each do |kind, filter|
58
- filters[kind] = filter.map(&:raw_filter).map do |f|
59
- Filter.new(f, method: f.is_a?(Symbol) ? controller.method(f) : f)
54
+ class << self
55
+ def build(controller)
56
+ filters = { before: [], after: [], around: [] }
57
+ raw_filters = controller.__callbacks[:process_action].send(:chain).group_by(&:kind)
58
+ raw_filters.each do |kind, filter|
59
+ filters[kind] = filter.map { |f| f.__send__(filter_method) }.map do |f|
60
+ Filter.new(f, method: f.is_a?(Symbol) ? controller.method(f) : f)
61
+ end
60
62
  end
63
+ new(filters[:before], filters[:after], filters[:around], action: Action.build(controller))
64
+ end
65
+
66
+ private
67
+
68
+ def filter_method
69
+ @filter_method ||= Rails::VERSION::MAJOR > 6 ? :filter : :raw_filter
61
70
  end
62
- new(filters[:before], filters[:after], filters[:around], action: Action.build(controller))
63
71
  end
64
72
 
65
73
  def print
@@ -5,20 +5,64 @@ module ActionTracer
5
5
  module ActiveSupport
6
6
  module Callbacks
7
7
  module CallTemplate
8
- def expand(*)
9
- target, block, method, *arguments = super
10
- if target.is_a? ActionController::Base
11
- case method
12
- when :instance_exec # filter is a proc
13
- ActionTracer.applied_filters << block
14
- when String # filter is an object
15
- ActionTracer.applied_filters << block
16
- when Symbol # filter is a method
17
- ActionTracer.applied_filters << method
8
+ if Rails::VERSION::MAJOR > 6
9
+ module MethodCall
10
+ def expand(*)
11
+ super.tap { ActionTracer.applied_filters << @method_name }
12
+ end
13
+
14
+ def make_lambda
15
+ super >> proc { |result| ActionTracer.applied_filters << @method_name; result }
16
+ end
17
+
18
+ def inverted_lambda
19
+ super >> proc { |result| ActionTracer.applied_filters << @method_name; result }
20
+ end
21
+ end
22
+
23
+ module ProcCall
24
+ def expand(*)
25
+ super.tap { ActionTracer.applied_filters << @override_target }
26
+ end
27
+
28
+ def make_lambda
29
+ super >> proc { |result| ActionTracer.applied_filters << @override_target; result }
30
+ end
31
+
32
+ def inverted_lambda
33
+ super >> proc { |result| ActionTracer.applied_filters << @override_target; result }
34
+ end
35
+ end
36
+
37
+ module InstanceExec
38
+ def expand(*)
39
+ super.tap { ActionTracer.applied_filters << @override_block }
40
+ end
41
+
42
+ def make_lambda
43
+ super >> proc { |result| ActionTracer.applied_filters << @override_block; result }
44
+ end
45
+
46
+ def inverted_lambda
47
+ super >> proc { |result| ActionTracer.applied_filters << @override_block; result }
18
48
  end
19
49
  end
50
+ else
51
+ def expand(*)
52
+ target, block, method, *arguments = super
53
+ if target.is_a? ActionController::Base
54
+ case method
55
+ when :instance_exec # filter is a proc
56
+ ActionTracer.applied_filters << block
57
+ when String # filter is an object
58
+ ActionTracer.applied_filters << block
59
+ when Symbol # filter is a method
60
+ ActionTracer.applied_filters << method
61
+ end
62
+ end
20
63
 
21
- [target, block, method, *arguments]
64
+ [target, block, method, *arguments]
65
+ end
22
66
  end
23
67
  end
24
68
  end
@@ -23,7 +23,29 @@ module ActionTracer
23
23
  initializer "action_tracer" do
24
24
  ActiveSupport.on_load(:action_controller) do
25
25
  require "action_tracer/monkey_patches/active_support/callbacks"
26
- ::ActiveSupport::Callbacks::CallTemplate.prepend ActionTracer::MonkeyPatches::ActiveSupport::Callbacks::CallTemplate
26
+ if Rails::VERSION::MAJOR > 6
27
+ [
28
+ ::ActiveSupport::Callbacks::CallTemplate::MethodCall,
29
+ ::ActiveSupport::Callbacks::CallTemplate::ObjectCall,
30
+ ].each do |klass|
31
+ klass.prepend ActionTracer::MonkeyPatches::ActiveSupport::Callbacks::CallTemplate::MethodCall
32
+ end
33
+ [
34
+ ::ActiveSupport::Callbacks::CallTemplate::InstanceExec0,
35
+ ::ActiveSupport::Callbacks::CallTemplate::InstanceExec1,
36
+ ::ActiveSupport::Callbacks::CallTemplate::InstanceExec2,
37
+ ].each do |klass|
38
+ klass.prepend ActionTracer::MonkeyPatches::ActiveSupport::Callbacks::CallTemplate::InstanceExec
39
+ end
40
+ [
41
+ ::ActiveSupport::Callbacks::CallTemplate::ProcCall,
42
+ ].each do |klass|
43
+ klass.prepend ActionTracer::MonkeyPatches::ActiveSupport::Callbacks::CallTemplate::ProcCall
44
+ end
45
+ else
46
+ ::ActiveSupport::Callbacks::CallTemplate.prepend ActionTracer::MonkeyPatches::ActiveSupport::Callbacks::CallTemplate
47
+ end
48
+
27
49
  require "action_tracer/monkey_patches/abstract_controller/callbacks"
28
50
  ::ActionController::Base.prepend ActionTracer::MonkeyPatches::AbstractController::Callbacks
29
51
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionTracer
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - makicamel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-06 00:00:00.000000000 Z
11
+ date: 2022-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,21 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
56
+ name: minitest
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -113,7 +99,7 @@ homepage: https://github.com/makicamel/action_tracer
113
99
  licenses:
114
100
  - MIT
115
101
  metadata: {}
116
- post_install_message:
102
+ post_install_message:
117
103
  rdoc_options: []
118
104
  require_paths:
119
105
  - lib
@@ -128,8 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
114
  - !ruby/object:Gem::Version
129
115
  version: '0'
130
116
  requirements: []
131
- rubygems_version: 3.1.4
132
- signing_key:
117
+ rubygems_version: 3.2.32
118
+ signing_key:
133
119
  specification_version: 4
134
120
  summary: Log Rails application actions and filters when accepts a request
135
121
  test_files: []