debug_me 1.0.6 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f1a9993af0c276f8ee37bf6cef26f6ab11174bb1735a177c45112e6963ef2a3
4
- data.tar.gz: ad89e6defd63f3b981f98c048c427d7a4d2b62851b848d2f5536f6f60809fa49
3
+ metadata.gz: 406de0bd607687bab5c7a46e6dfde187353c24dfaf0800e2b5c0cd9223a8faf8
4
+ data.tar.gz: f3f85a306a6455e2e699558a41e7d78b7eded223f862ce34c8ee02e3f487a268
5
5
  SHA512:
6
- metadata.gz: df0fda4a35106408648278a8e823b7e9c1666250cd7a0e7a8373166b7ab9bce0c7fff0db6c79a7f06b56d69247eb5317aea227fdc079dbf1c99d9c57d1fe6089
7
- data.tar.gz: 5a76a8d3e574f983a482498e620c8f9f4dba90ae9a5b815ab5a0133e56c766b112a89242b60b75a03b256a9fe5e597a0e171182e67dc8aec85fd2512faabcc28
6
+ metadata.gz: 7ae3bf7696135d7d42ee5c0894a0d8d57b1ee2e93ce1236622b17f882ceaa67b9b0ac8769a2be01dd3291947363d5323c04138e2c5fdf141d0f1efcc20aa3b4c
7
+ data.tar.gz: 3d756257d84c6e72edaf7debfb6d7100fa8a7f43a81254cbcdbdf204cf8ff118c163a7136a92be076b017b2cd411fc1075f596e140a361036c41f0ed88e2e505
data/.envrc ADDED
@@ -0,0 +1,9 @@
1
+ # .envrc
2
+ # using the tool "direnv"
3
+ # brew install direnv
4
+ #
5
+ # $RR means repository root or rails root
6
+ # alias rr='cd $RR'
7
+ #
8
+
9
+ export RR=`pwd`
data/README.md CHANGED
@@ -15,6 +15,8 @@ DebugMe::debug_me(){} works with local, instance and class variables.
15
15
 
16
16
  ## Recent Changes
17
17
 
18
+ * 1.1.1 Added global constant $DEBUG_ME as a boolean; default is true. when false the debug_me method does nothing.
19
+ * 1.1.0 Changes the output formatting w/r/t the use of levels option; add :backtrace option for full backtrace
18
20
  * 1.0.6 Added support for variable backtrack length via the :levels option
19
21
  * 1.0.5 Added support for an instance of a Logger class.
20
22
  * 1.0.4 Added :strftime to the options; changed the default format from decimal seconds since epic to something that is more easy comprehend on a clock.
@@ -46,6 +48,9 @@ debug_me # Prints only the header banner consisting of tag, method name, file na
46
48
  debug_me('INFO') # Also prints only the header but with a different tag
47
49
 
48
50
  debug_me(levels: 5) # Along with the header, show the call stack back this many levels
51
+ debug_me{:backtrace} # show the entire call stack
52
+ debug_me{[ :backtrace ]} will # show the entire call stack
53
+ debug_me(levels: 5){[ :backtrace ]} # will only show the first 5 levels of the backtrace - ie. the levels parameter supersedes :backtrace
49
54
 
50
55
  debug_me {} # prints the default header and __ALL__ variables
51
56
 
@@ -105,6 +110,8 @@ DebugMeDefaultOptions = {
105
110
  strftime: '%Y-%m-%d %H:%M:%S.%6N', # timestamp format
106
111
  header: true, # Print a header string before printing the variables
107
112
  levels: 0, # Number of additional backtrack entries to display
113
+ skip1: false, # skip 1 blank line in front of a new output block
114
+ skip2: false, # skip 2 blank lines in front of a new output block
108
115
  lvar: true, # Include local variables
109
116
  ivar: true, # Include instance variables in the output
110
117
  cvar: true, # Include class variables in the output
@@ -2,7 +2,7 @@ module DebugMe
2
2
  # I know. Its weird to duplicate the name space; but,
3
3
  # doing this allows you to include DebugMe in your code
4
4
  # to get direct access to the debug_me method without
5
- # poluting your code with an object name that is so
5
+ # polluting your code with an object name that is so
6
6
  # common.
7
- DEBUG_ME_VERSION = '1.0.6'
7
+ DEBUG_ME_VERSION = '1.1.1'
8
8
  end
data/lib/debug_me.rb CHANGED
@@ -1,12 +1,16 @@
1
1
  require 'pp'
2
2
  require_relative 'debug_me/version'
3
3
 
4
+ $DEBUG_ME = true
5
+
4
6
  DebugMeDefaultOptions = {
5
7
  tag: 'DEBUG', # A tag to prepend to each output line
6
8
  time: true, # Include a time-stamp in front of the tag
7
9
  strftime: '%Y-%m-%d %H:%M:%S.%6N', # timestamp format
8
10
  header: true, # Print a header string before printing the variables
9
11
  levels: 0, # Number of additional backtrack entries to display
12
+ skip1: false, # skip 1 lines between different outputs
13
+ skip2: false, # skip 2 lines between different outputs
10
14
  lvar: true, # Include local variables
11
15
  ivar: true, # Include instance variables in the output
12
16
  cvar: true, # Include class variables in the output
@@ -18,6 +22,7 @@ DebugMeDefaultOptions = {
18
22
 
19
23
  module DebugMe
20
24
  def debug_me(options = {}, &block)
25
+ return unless $DEBUG_ME
21
26
 
22
27
  if 'Hash' == options.class.to_s
23
28
  options = DebugMeDefaultOptions.merge(options)
@@ -25,7 +30,10 @@ module DebugMe
25
30
  options = DebugMeDefaultOptions.merge(tag: options)
26
31
  end
27
32
 
28
- out_string = ''
33
+ skip = ''
34
+ skip = "\n" if options[:skip1]
35
+ skip = "\n\n" if options[:skip2]
36
+ out_string = ''
29
37
 
30
38
  f = options[:file]
31
39
  l = options[:logger]
@@ -33,24 +41,29 @@ module DebugMe
33
41
  s += Time.now.strftime(options[:strftime])+' ' if options[:time]
34
42
  s += "#{options[:tag]}"
35
43
  bt = caller # where_from under 1.8.6 its a stack trace array under 1.8.7+ as a string
44
+ bt_out = []
36
45
 
37
46
  if options[:header]
38
47
  cf = bt.is_a?(Array) ? bt[0] : bt
39
- out_string = sprintf("%s Source: %s\n", s, cf)
48
+ out_string = sprintf("%s Source: %s\n", skip+s, cf)
40
49
  if options[:levels] > 0
41
50
  levels = options[:levels].to_i
42
- bt[1..levels].each_with_index do |cff, level|
43
- out_string += sprintf("%s Source: FROM (%02d) : %s\n", s, level, cff)
51
+ bt[1..levels].each_with_index do |cff, level |
52
+ bt_out << [level, cff]
44
53
  end
45
54
  end
46
55
  end
47
56
 
48
- if block_given?
49
-
50
- block_value = [block.call].flatten.compact
57
+ if block_given? || bt_out.size > 0
58
+ block_value = []
59
+ block_value << 'backtrace' if bt_out.size > 0
60
+ if block_given?
61
+ [block.call].flatten.compact.each do |v|
62
+ block_value << v
63
+ end
64
+ end
51
65
 
52
66
  if block_value.empty?
53
- block_value = []
54
67
  block_value += [eval('local_variables', block.binding)] if options[:lvar]
55
68
  block_value += [eval('instance_variables', block.binding)] if options[:ivar]
56
69
  block_value += [self.class.send('class_variables')] if options[:cvar]
@@ -61,7 +74,12 @@ module DebugMe
61
74
  block_value.map!(&:to_s)
62
75
 
63
76
  block_value.each do |v|
64
- ev = eval("defined?(#{v})",block.binding).nil? ? '<undefined>' : eval(v, block.binding)
77
+
78
+ ev = if 'backtrace' == v
79
+ bt_out.size > 0 ? bt_out : bt[1..10000]
80
+ else
81
+ eval("defined?(#{v})",block.binding).nil? ? '<undefined>' : eval(v, block.binding)
82
+ end
65
83
  out_string += sprintf( "%s %s -=> %s", s,v,ev.pretty_inspect)
66
84
  end
67
85
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debug_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dewayne VanHoozer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-30 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -49,6 +49,7 @@ executables: []
49
49
  extensions: []
50
50
  extra_rdoc_files: []
51
51
  files:
52
+ - ".envrc"
52
53
  - ".gitignore"
53
54
  - ".rultor.yml"
54
55
  - Gemfile
@@ -65,7 +66,7 @@ homepage: http://github.com/MadBomber/debug_me
65
66
  licenses:
66
67
  - You want it, its yours
67
68
  metadata: {}
68
- post_install_message:
69
+ post_install_message:
69
70
  rdoc_options: []
70
71
  require_paths:
71
72
  - lib
@@ -80,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
81
  - !ruby/object:Gem::Version
81
82
  version: '0'
82
83
  requirements: []
83
- rubygems_version: 3.1.3
84
- signing_key:
84
+ rubygems_version: 3.4.21
85
+ signing_key:
85
86
  specification_version: 4
86
87
  summary: A tool to print the labeled value of variables.
87
88
  test_files: []