debug_me 1.0.6 → 1.1.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: 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: []