action_tracer 0.2.1 → 0.2.4

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: 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: []