debug_logging 1.0.17 → 3.1.2
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/.rubocop.yml +107 -0
- data/.rubocop_todo.yml +167 -0
- data/.travis.yml +5 -4
- data/Gemfile +2 -13
- data/README.md +188 -45
- data/Rakefile +5 -3
- data/bin/console +4 -3
- data/debug_logging.gemspec +27 -19
- data/lib/debug_logging.rb +41 -11
- data/lib/debug_logging/active_support_notifications.rb +6 -0
- data/lib/debug_logging/argument_printer.rb +82 -36
- data/lib/debug_logging/class_logger.rb +38 -10
- data/lib/debug_logging/class_notifier.rb +64 -0
- data/lib/debug_logging/configuration.rb +74 -64
- data/lib/debug_logging/instance_logger.rb +7 -1
- data/lib/debug_logging/instance_logger_modulizer.rb +34 -6
- data/lib/debug_logging/instance_notifier.rb +18 -0
- data/lib/debug_logging/instance_notifier_modulizer.rb +66 -0
- data/lib/debug_logging/log_subscriber.rb +43 -0
- data/lib/debug_logging/version.rb +3 -1
- data/lib/simple_debug_logging.rb +9 -5
- metadata +137 -27
data/lib/simple_debug_logging.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Simpler version of what the sibling DebugLogging library does. Included as a bauble.
|
2
4
|
#
|
3
5
|
############# THIS IS A BAUBLE
|
4
6
|
############# FOR EXAMINING SEVERAL OF THE WONDERS OF RUBY
|
5
7
|
############# TO ACCOMPLISH SOMETHING PRACTICAL
|
6
|
-
############# For a more robust implementation use the gem debug_logging itself,
|
8
|
+
############# For a more robust implementation use the gem debug_logging itself,
|
7
9
|
############# which makes use of these same principles.
|
8
10
|
#
|
9
11
|
# Automatically log Class.method(arguments) as they are called at runtime (instance or singleton)!
|
@@ -19,8 +21,6 @@
|
|
19
21
|
# logged :a_class_method
|
20
22
|
# end
|
21
23
|
#
|
22
|
-
# Make sure you have the latest debug_logging gem (>= 1.0.10) installed for this to work
|
23
|
-
#
|
24
24
|
# In an irb session:
|
25
25
|
# >> require_relative 'unobtrusively_logged'
|
26
26
|
# => true
|
@@ -39,13 +39,16 @@ require 'benchmark'
|
|
39
39
|
|
40
40
|
class SimpleDebugLogging < Module
|
41
41
|
def initialize(i_methods: nil)
|
42
|
+
super()
|
42
43
|
@instance_methods_to_log = Array(i_methods) if i_methods
|
43
44
|
end
|
45
|
+
|
44
46
|
def included(base)
|
45
47
|
instance_method_logger = InstanceMethodLoggerModulizer.to_mod(@instance_methods_to_log)
|
46
48
|
base.send(:prepend, instance_method_logger)
|
47
49
|
base.send(:extend, ClassMethodLogger)
|
48
50
|
end
|
51
|
+
|
49
52
|
module ClassMethodLogger
|
50
53
|
def logged(*methods_to_log)
|
51
54
|
methods_to_log.each do |method_to_log|
|
@@ -54,7 +57,7 @@ class SimpleDebugLogging < Module
|
|
54
57
|
define_method(method_to_log.to_sym) do |*args|
|
55
58
|
method_return_value = nil
|
56
59
|
invocation_id = " ~#{args.object_id}@#{Time.now.to_i}~" if args
|
57
|
-
puts "#{self}.#{method_to_log}(#{args.map
|
60
|
+
puts "#{self}.#{method_to_log}(#{args.map(&:inspect).join(', ')})#{invocation_id}"
|
58
61
|
elapsed = Benchmark.realtime do
|
59
62
|
method_return_value = original_method.call(*args)
|
60
63
|
end
|
@@ -65,6 +68,7 @@ class SimpleDebugLogging < Module
|
|
65
68
|
end
|
66
69
|
end
|
67
70
|
end
|
71
|
+
|
68
72
|
module InstanceMethodLoggerModulizer
|
69
73
|
def self.to_mod(methods_to_log = [])
|
70
74
|
Module.new do
|
@@ -72,7 +76,7 @@ class SimpleDebugLogging < Module
|
|
72
76
|
define_method(method_to_log.to_sym) do |*args, &block|
|
73
77
|
method_return_value = nil
|
74
78
|
invocation_id = " ~#{args.object_id}@#{Time.now.to_i}~" if args
|
75
|
-
puts "#{self.class}##{method_to_log}(#{args.map
|
79
|
+
puts "#{self.class}##{method_to_log}(#{args.map(&:inspect).join(', ')})#{invocation_id}"
|
76
80
|
elapsed = Benchmark.realtime do
|
77
81
|
method_return_value = super(*args, &block)
|
78
82
|
end
|
metadata
CHANGED
@@ -1,29 +1,105 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: debug_logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 3.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
23
30
|
requirements:
|
24
31
|
- - "~>"
|
25
32
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
33
|
+
version: '5.2'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 5.2.4.4
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '5.2'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 5.2.4.4
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: byebug
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '11'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '11'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rake
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '13'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '13'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rspec
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3'
|
27
103
|
- !ruby/object:Gem::Dependency
|
28
104
|
name: rspec-pending_for
|
29
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,61 +115,89 @@ dependencies:
|
|
39
115
|
- !ruby/object:Gem::Version
|
40
116
|
version: '0'
|
41
117
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
118
|
+
name: rubocop
|
43
119
|
requirement: !ruby/object:Gem::Requirement
|
44
120
|
requirements:
|
45
121
|
- - "~>"
|
46
122
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
123
|
+
version: '1.0'
|
48
124
|
type: :development
|
49
125
|
prerelease: false
|
50
126
|
version_requirements: !ruby/object:Gem::Requirement
|
51
127
|
requirements:
|
52
128
|
- - "~>"
|
53
129
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
130
|
+
version: '1.0'
|
55
131
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
132
|
+
name: rubocop-md
|
57
133
|
requirement: !ruby/object:Gem::Requirement
|
58
134
|
requirements:
|
59
|
-
- - "
|
135
|
+
- - ">="
|
60
136
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
137
|
+
version: '0'
|
62
138
|
type: :development
|
63
139
|
prerelease: false
|
64
140
|
version_requirements: !ruby/object:Gem::Requirement
|
65
141
|
requirements:
|
66
|
-
- - "
|
142
|
+
- - ">="
|
67
143
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
144
|
+
version: '0'
|
69
145
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
146
|
+
name: rubocop-performance
|
71
147
|
requirement: !ruby/object:Gem::Requirement
|
72
148
|
requirements:
|
73
|
-
- - "
|
149
|
+
- - ">="
|
74
150
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
151
|
+
version: '0'
|
76
152
|
type: :development
|
77
153
|
prerelease: false
|
78
154
|
version_requirements: !ruby/object:Gem::Requirement
|
79
155
|
requirements:
|
80
|
-
- - "
|
156
|
+
- - ">="
|
81
157
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
158
|
+
version: '0'
|
83
159
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
160
|
+
name: rubocop-rake
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: rubocop-rspec
|
85
175
|
requirement: !ruby/object:Gem::Requirement
|
86
176
|
requirements:
|
87
177
|
- - "~>"
|
88
178
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
179
|
+
version: '2.0'
|
90
180
|
type: :development
|
91
181
|
prerelease: false
|
92
182
|
version_requirements: !ruby/object:Gem::Requirement
|
93
183
|
requirements:
|
94
184
|
- - "~>"
|
95
185
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
186
|
+
version: '2.0'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: silent_stream
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '1'
|
194
|
+
type: :development
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '1'
|
97
201
|
description: |2
|
98
202
|
|
99
203
|
Unobtrusive debug logging for Ruby. NO LITTERING.
|
@@ -107,6 +211,8 @@ files:
|
|
107
211
|
- ".coveralls.yml"
|
108
212
|
- ".gitignore"
|
109
213
|
- ".rspec"
|
214
|
+
- ".rubocop.yml"
|
215
|
+
- ".rubocop_todo.yml"
|
110
216
|
- ".travis.yml"
|
111
217
|
- Gemfile
|
112
218
|
- README.md
|
@@ -115,18 +221,23 @@ files:
|
|
115
221
|
- bin/setup
|
116
222
|
- debug_logging.gemspec
|
117
223
|
- lib/debug_logging.rb
|
224
|
+
- lib/debug_logging/active_support_notifications.rb
|
118
225
|
- lib/debug_logging/argument_printer.rb
|
119
226
|
- lib/debug_logging/class_logger.rb
|
227
|
+
- lib/debug_logging/class_notifier.rb
|
120
228
|
- lib/debug_logging/configuration.rb
|
121
229
|
- lib/debug_logging/instance_logger.rb
|
122
230
|
- lib/debug_logging/instance_logger_modulizer.rb
|
231
|
+
- lib/debug_logging/instance_notifier.rb
|
232
|
+
- lib/debug_logging/instance_notifier_modulizer.rb
|
233
|
+
- lib/debug_logging/log_subscriber.rb
|
123
234
|
- lib/debug_logging/version.rb
|
124
235
|
- lib/simple_debug_logging.rb
|
125
236
|
homepage: https://github.com/pboling/debug_logging
|
126
237
|
licenses:
|
127
238
|
- MIT
|
128
239
|
metadata: {}
|
129
|
-
post_install_message:
|
240
|
+
post_install_message:
|
130
241
|
rdoc_options: []
|
131
242
|
require_paths:
|
132
243
|
- lib
|
@@ -134,16 +245,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
245
|
requirements:
|
135
246
|
- - ">="
|
136
247
|
- !ruby/object:Gem::Version
|
137
|
-
version: 2.
|
248
|
+
version: 2.4.0
|
138
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
250
|
requirements:
|
140
251
|
- - ">="
|
141
252
|
- !ruby/object:Gem::Version
|
142
253
|
version: '0'
|
143
254
|
requirements: []
|
144
|
-
|
145
|
-
|
146
|
-
signing_key:
|
255
|
+
rubygems_version: 3.1.4
|
256
|
+
signing_key:
|
147
257
|
specification_version: 4
|
148
258
|
summary: Drop-in debug logging useful when a call stack gets unruly
|
149
259
|
test_files: []
|