debug_me 1.0.3 → 1.0.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: 9b580ce21e94329c161f88ed59b1ab4253ebcced2342f5b53bb8f19331165b9e
4
- data.tar.gz: c61d2b6b1071199a06cb9db9034893da11de869e1f8b1110c9406ab1ace17f13
3
+ metadata.gz: 0ee6256c053274e46630862e170317e97ea6bb0aa27394661473d0acd84fcb1d
4
+ data.tar.gz: 0e080550b9660678ec343b9650d89e8153e3e386913ac94d73f72c7eb70a87df
5
5
  SHA512:
6
- metadata.gz: 579fba5c98c8fe2445b02982aa6ec4c975dff81c21b40d20204f69d8e2ce0be7f084df878d8551a3fa1222a61b0597fd900d81a2d284ff97140a14dd3cdc7ecc
7
- data.tar.gz: 62190a395d1207487b61d30184fc5d8420d9b539caa8f4213cf8544d69df2a20a6a6d1fc4c964f54f11b9f6930599c34d4bc79da2ea91cf33649fbc20dc05439
6
+ metadata.gz: 9479b7df27c05071f452eafd7a016ea34bfa42952217d1c1f81ec885e069ccb212f00c0339f3d918ccc2edcb215c030ff0a5808c61067cb48570a0c9bc91fd96
7
+ data.tar.gz: 29d34ee5dc5ec7534e0342a1187d8c15fc118bda3266c1ebcf37376090eb73b5327e22aace77db84052545b60170ce6c9433aa59dd88e024a6a8d6ffba7f0cd8
data/README.md CHANGED
@@ -1,13 +1,21 @@
1
1
  # DebugMe
2
2
 
3
- This thing is pretty old. There are much better
3
+ A tool to print the labeled value of variables.
4
+
5
+ This thing is pretty old;but, so am I. For the gray
6
+ in our hair we still to the job.
7
+
8
+ There are much complex/comprehensive
4
9
  ways of debugging in a complex application. But,
5
10
  you know, I keep returning to this little method
6
11
  time after time. I guess that marks me as a geezer.
7
12
 
8
- A tool to print the labeled value of variables.
9
13
 
10
- Works with local, instance and class variables.
14
+ DebugMe::debug_me(){} works with local, instance and class variables.
15
+
16
+ ## Recent Changes
17
+
18
+ * 1.0.4 Added :strftime to the options; changed the default format from decimal seconds since epic to something that os more easy comprehend on a clock.
11
19
 
12
20
  ## Installation
13
21
 
@@ -45,9 +53,9 @@ debug_me { [:this_one, :that_one, :that_other_one] } # prints default header and
45
53
  # Each element of the array is 'eval'ed with the context binding of the caller
46
54
  debug_me(){[ :my_var, 'my_complex_var_or_method[my_var]' ]}
47
55
 
48
- debug_me(:header => false) {} # disables the printing of the header; prints all variables
56
+ debug_me(header: false) {} # disables the printing of the header; prints all variables
49
57
 
50
- debug_me(:tag => 'MyTag', :header => false) {} # disables header, sets different tag, prints all variables
58
+ debug_me(tag: 'MyTag', :header => false) {} # disables header, sets different tag, prints all variables
51
59
 
52
60
  debug_me('=== LOOK ===') {} # changes the tag and prints all variables with a header line
53
61
 
@@ -55,28 +63,52 @@ debug_me('=== LOOK ===') {:@foo} # changes the tag, prints a header line and a s
55
63
 
56
64
  debug_me('=== LOOK ===') {:@@foo} # changes the tag, prints a header line and a specific class variable
57
65
 
58
- debug_me(:ivar => false, :cvar => false) {} # print only the local variables with the default tag and a header line
66
+ debug_me(ivar: false, cvar: false) {} # print only the local variables with the default tag and a header line
67
+
68
+ ```
69
+
70
+ Most of the examples above use symbols to designate the variables that you want
71
+ to be shown with their name as a label. You can also use strings. With strings
72
+ you are not limited to just variables. Consider these examples:
73
+
74
+ ```ruby
75
+ debug_me {[ 'some_array.size', 'SomeDatabaseModel.count' ]}
76
+
77
+ # What a backtrace with your variables?
78
+
79
+ debug_me {[
80
+ :my_variable,
81
+ 'some_hash.keys.reject{|k| k.to_s.start_with?('A')}',
82
+ 'caller' ]} # yes, caller is a kernel method that will give a backtrace
83
+
84
+ # You can also get into trouble so be careful. The symbols and strings
85
+ # are evaluated in the context of the caller. Within the string any
86
+ # command or line of code can be given. SO DO NOT try to use
87
+ # something silly like debug_me{ 'system("rm -fr /")'}
59
88
 
60
89
  ```
61
90
 
62
91
  ## Default Options
63
92
 
64
- The default options are maintained in a global constant `DebugMeDefaultOptions` that is outside of the `DebugMe` name space. I did that so that if you do `include DebugMe` to make access to the method eaier you could still have the constant with a function specific name that would be outside of anything that you may have already coded in you program.
93
+ The default options is a global constant `DebugMeDefaultOptions` that is outside of the `DebugMe` name space. I did that so that if you do `include DebugMe` to make access to the method easier you could still have the constant with a function specific name that would be outside of anything that you may have already coded in you program.
94
+
95
+ Notice that this constant is outside of the DebugMe's module namespace.
65
96
 
66
97
  ```
67
98
  DebugMeDefaultOptions = {
68
- tag: 'DEBUG:', # A tag to prepend to each output line
69
- time: true, # Include a time-stamp in front of the tag
70
- header: true, # Print a header string before printing the variables
71
- lvar: true, # Include local variables
72
- ivar: true, # Include instance variables in the output
73
- cvar: true, # Include class variables in the output
74
- cconst: true, # Include class constants
75
- file: $stdout # The output file
99
+ tag: 'DEBUG', # A tag to prepend to each output line
100
+ time: true, # Include a time-stamp in front of the tag
101
+ strftime: '%Y-%m-%d %H:%M:%S.%6N', # timestamp format
102
+ header: true, # Print a header string before printing the variables
103
+ lvar: true, # Include local variables
104
+ ivar: true, # Include instance variables in the output
105
+ cvar: true, # Include class variables in the output
106
+ cconst: true, # Include class constants
107
+ file: $stdout # The output file
76
108
  }
77
109
  ```
78
110
 
79
- If you want the output of the method to always got to STDERR then do this:
111
+ If you want the output of the method to always go to STDERR then do this:
80
112
 
81
113
  ```
82
114
  require 'debug_me'
@@ -2,14 +2,15 @@ require 'pp'
2
2
  require_relative 'debug_me/version'
3
3
 
4
4
  DebugMeDefaultOptions = {
5
- tag: 'DEBUG:', # A tag to prepend to each output line
6
- time: true, # Include a time-stamp in front of the tag
7
- header: true, # Print a header string before printing the variables
8
- lvar: true, # Include local variables
9
- ivar: true, # Include instance variables in the output
10
- cvar: true, # Include class variables in the output
11
- cconst: true, # Include class constants
12
- file: $stdout # The output file
5
+ tag: 'DEBUG', # A tag to prepend to each output line
6
+ time: true, # Include a time-stamp in front of the tag
7
+ strftime: '%Y-%m-%d %H:%M:%S.%6N', # timestamp format
8
+ header: true, # Print a header string before printing the variables
9
+ lvar: true, # Include local variables
10
+ ivar: true, # Include instance variables in the output
11
+ cvar: true, # Include class variables in the output
12
+ cconst: true, # Include class constants
13
+ file: $stdout # The output file
13
14
  }
14
15
 
15
16
  module DebugMe
@@ -25,8 +26,8 @@ module DebugMe
25
26
 
26
27
  f = options[:file]
27
28
  s = ''
28
- s += "#{sprintf('%010.6f', Time.now.to_f)} " if options[:time]
29
- s += " #{options[:tag]}"
29
+ s += Time.now.strftime(options[:strftime])+' ' if options[:time]
30
+ s += "#{options[:tag]}"
30
31
  wf = caller # where_from under 1.8.6 its a stack trace array under 1.8.7 is a string
31
32
  wf = wf[0] if 'Array' == wf.class.to_s
32
33
 
@@ -1,3 +1,3 @@
1
1
  module DebugMe
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
@@ -3,20 +3,23 @@ class WorldView
3
3
  A = 1
4
4
  B = 2
5
5
  C = 3
6
+
6
7
  def initialize
7
- @a,@b,@c = 1,2,3
8
- @@d, @@e, @@f = 4,5,6
8
+ @a,@b,@c = 1,2,3
9
+ @@d, @@e, @@f = 4,5,6
9
10
  end
11
+
10
12
  def everything
11
13
  debug_me(
12
- file:nil,
13
- header:true,
14
- lvar: true,
15
- ivar: true,
16
- cvar: true,
14
+ file: nil,
15
+ header: true,
16
+ lvar: true,
17
+ ivar: true,
18
+ cvar: true,
17
19
  cconst: true
18
20
  ){}
19
21
  end
22
+
20
23
  def my_constants
21
24
  debug_me(
22
25
  file:nil,
@@ -26,6 +29,5 @@ class WorldView
26
29
  cvar: false,
27
30
  cconst: true
28
31
  ){}
29
-
30
32
  end
31
33
  end # class WorldView
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.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dewayne VanHoozer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-31 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,8 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubyforge_project:
84
- rubygems_version: 2.7.6
83
+ rubygems_version: 3.0.6
85
84
  signing_key:
86
85
  specification_version: 4
87
86
  summary: A tool to print the labeled value of variables.