dbg-rb 0.2.6 β 0.2.8
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/.github/workflows/ci.yml +1 -1
- data/README.md +4 -4
- data/dbg-rb.gemspec +2 -1
- data/dbg_base.png +0 -0
- data/dbg_emoji.png +0 -0
- data/lib/dbg-rb.rb +30 -15
- data/lib/dbg_rb/version.rb +1 -1
- data/spec/smoke_spec.rb +26 -12
- metadata +20 -7
- data/dbg_base3.png +0 -0
- data/dbg_color.png +0 -0
- data/dbg_emoji2.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2db3ba3ac88033948685e877c1b9245f77c4f0c3b3b061d786305ea1a2059113
|
4
|
+
data.tar.gz: 0412b7c4b793aabe451c622fbf293938a5e9dce9ad4ae06d4cda8604d4798df9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b655b3c9c88e2e973cf860f1bf8228e27075b115d6ce37e4a0903ae0a062194c15915dcb3cd851b4234dcfa119d669b57af25f563ed4f14c852b5361f67d03b
|
7
|
+
data.tar.gz: d71e5a0b42c1999ab7e981ba467fa7bd19851f26c8e3f5dcd22576db306f756b95edbe04562918b372e9a1e7bfcb96e6449fc08f79dbf5db969844b6240cb994
|
data/.github/workflows/ci.yml
CHANGED
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
strategy:
|
13
13
|
fail-fast: false
|
14
14
|
matrix:
|
15
|
-
ruby-version: ['3.3', '3.2', '3.1', '3.0', '2.7', '2.6']
|
15
|
+
ruby-version: ['3.4', '3.3', '3.2', '3.1', '3.0', '2.7', '2.6']
|
16
16
|
steps:
|
17
17
|
- uses: actions/checkout@v3
|
18
18
|
- name: Set up Ruby ${{ matrix.ruby-version }}
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# dbg! [](https://badge.fury.io/rb/dbg-rb) [](https://github.com/pawurb/dbg-rb/actions)
|
2
2
|
|
3
|
-

|
4
4
|
|
5
5
|
Because I wrote:
|
6
6
|
|
@@ -77,7 +77,7 @@ DbgRb.color_code = 33
|
|
77
77
|
It's yellow by default. You can disable colors by running:
|
78
78
|
|
79
79
|
```ruby
|
80
|
-
DbgRb.color_code= nil
|
80
|
+
DbgRb.color_code = nil
|
81
81
|
```
|
82
82
|
|
83
83
|
```ruby
|
@@ -85,7 +85,7 @@ user = User.last.as_json.slice("id", "slack_id")
|
|
85
85
|
dbg("User last", :user)
|
86
86
|
```
|
87
87
|
|
88
|
-

|
89
89
|
|
90
90
|
If it does not stand out enough, you can enable `dbg` highlighting:
|
91
91
|
|
@@ -96,7 +96,7 @@ require "dbg-rb"
|
|
96
96
|
DbgRb.highlight!("πππ£πΊππ§¨ππ€―π₯³ππ¦")
|
97
97
|
```
|
98
98
|
|
99
|
-

|
100
100
|
|
101
101
|
You can also use `DbgRb.dbg!(*msgs)` directly or wrap it to rename the helper method:
|
102
102
|
|
data/dbg-rb.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.version = DbgRb::VERSION
|
9
9
|
s.authors = ["pawurb"]
|
10
10
|
s.email = ["contact@pawelurbanek.com"]
|
11
|
-
s.summary = "Simple
|
11
|
+
s.summary = "Simple debugging helper"
|
12
12
|
s.description = "Rust-inspired, puts debugging helper, adding caller info and optional coloring."
|
13
13
|
s.homepage = "http://github.com/pawurb/dbg-rb"
|
14
14
|
s.files = `git ls-files`.split("\n").reject { |f| f.match?(/\.db$/) }
|
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.license = "MIT"
|
17
17
|
s.add_dependency "binding_of_caller"
|
18
18
|
s.add_dependency "json"
|
19
|
+
s.add_development_dependency "ostruct"
|
19
20
|
s.add_development_dependency "rake"
|
20
21
|
s.add_development_dependency "rspec"
|
21
22
|
s.add_development_dependency "rufo"
|
data/dbg_base.png
ADDED
Binary file
|
data/dbg_emoji.png
ADDED
Binary file
|
data/lib/dbg-rb.rb
CHANGED
@@ -29,15 +29,14 @@ module DbgRb
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def dbg!(*msgs)
|
32
|
-
loc = caller_locations.first(3).last
|
33
|
-
|
34
|
-
|
35
|
-
matching_loc[0][0..-5]
|
32
|
+
loc = caller_locations.first(3).last
|
33
|
+
file = if (path = loc.absolute_path)
|
34
|
+
path.split("/").last(2).join("/")
|
36
35
|
else
|
37
|
-
loc
|
36
|
+
loc.label
|
38
37
|
end
|
39
|
-
|
40
|
-
|
38
|
+
|
39
|
+
line = loc.lineno
|
41
40
|
src = "[#{file}:#{line}]"
|
42
41
|
|
43
42
|
msgs.each_with_index do |obj, i|
|
@@ -51,7 +50,7 @@ module DbgRb
|
|
51
50
|
|
52
51
|
"#{obj} = #{val}"
|
53
52
|
rescue NameError
|
54
|
-
|
53
|
+
obj.inspect
|
55
54
|
end
|
56
55
|
else
|
57
56
|
format_val(obj)
|
@@ -79,19 +78,35 @@ module DbgRb
|
|
79
78
|
nil
|
80
79
|
end
|
81
80
|
|
81
|
+
private
|
82
|
+
|
82
83
|
def colorize(str, color_code)
|
83
84
|
"\e[#{color_code}m#{str}\e[0m"
|
84
85
|
end
|
85
86
|
|
86
87
|
def format_val(val)
|
87
|
-
if val.
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
if val.is_a?(Hash)
|
89
|
+
res = val.map { |k, v| [k, dbg_inspect(v, quote_str: false)] }.to_h
|
90
|
+
JSON.pretty_generate(res)
|
91
|
+
elsif val.is_a?(Array)
|
92
|
+
JSON.pretty_generate(val.map do |v|
|
93
|
+
dbg_inspect(v, quote_str: false)
|
94
|
+
end)
|
95
|
+
else
|
96
|
+
dbg_inspect(val, quote_str: true)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def dbg_inspect(obj, quote_str:)
|
101
|
+
if quote_str && obj.is_a?(String)
|
102
|
+
return obj.inspect
|
103
|
+
end
|
104
|
+
|
105
|
+
case obj
|
106
|
+
when Numeric, String
|
107
|
+
obj
|
93
108
|
else
|
94
|
-
|
109
|
+
obj.inspect
|
95
110
|
end
|
96
111
|
end
|
97
112
|
end
|
data/lib/dbg_rb/version.rb
CHANGED
data/spec/smoke_spec.rb
CHANGED
@@ -5,47 +5,51 @@ require "dbg-rb"
|
|
5
5
|
require "ostruct"
|
6
6
|
|
7
7
|
describe DbgRb do
|
8
|
+
before do
|
9
|
+
DbgRb.color_code = nil
|
10
|
+
end
|
11
|
+
|
8
12
|
it "variable values" do
|
9
|
-
expect { dbg("123") }.to output("[spec/smoke_spec.rb:
|
13
|
+
expect { dbg("123") }.to output("[spec/smoke_spec.rb:13] \"123\"\n").to_stdout
|
10
14
|
end
|
11
15
|
|
12
16
|
it "binded variables" do
|
13
17
|
b = 123
|
14
|
-
expect { dbg(:b) }.to output("[spec/smoke_spec.rb:
|
18
|
+
expect { dbg(:b) }.to output("[spec/smoke_spec.rb:18] b = 123\n").to_stdout
|
15
19
|
end
|
16
20
|
|
17
21
|
it "missing binded variables" do
|
18
22
|
b = 123
|
19
|
-
expect { dbg(:c) }.to output("[spec/smoke_spec.rb:
|
23
|
+
expect { dbg(:c) }.to output("[spec/smoke_spec.rb:23] :c\n").to_stdout
|
20
24
|
end
|
21
25
|
|
22
26
|
it "complex objects" do
|
23
27
|
s = OpenStruct.new(a: 1, b: 2)
|
24
|
-
expect { dbg!(s) }.to output("[spec/smoke_spec.rb:
|
28
|
+
expect { dbg!(s) }.to output("[spec/smoke_spec.rb:28] #<OpenStruct a=1, b=2>\n").to_stdout
|
25
29
|
end
|
26
30
|
|
27
31
|
it "binded complex objects" do
|
28
32
|
s = OpenStruct.new(a: 1, b: 2)
|
29
|
-
expect { dbg!(:s) }.to output("[spec/smoke_spec.rb:
|
33
|
+
expect { dbg!(:s) }.to output("[spec/smoke_spec.rb:33] s = #<OpenStruct a=1, b=2>\n").to_stdout
|
30
34
|
end
|
31
35
|
|
32
36
|
it "multiple msg" do
|
33
37
|
s = OpenStruct.new(a: 1, b: 2)
|
34
|
-
expect { dbg!(:s, "other msg") }.to output("[spec/smoke_spec.rb:
|
38
|
+
expect { dbg!(:s, "other msg") }.to output("[spec/smoke_spec.rb:38] s = #<OpenStruct a=1, b=2>\n[spec/smoke_spec.rb:38] \"other msg\"\n").to_stdout
|
35
39
|
end
|
36
40
|
|
37
41
|
it "nil" do
|
38
|
-
expect { dbg!(nil) }.to output("[spec/smoke_spec.rb:
|
42
|
+
expect { dbg!(nil) }.to output("[spec/smoke_spec.rb:42] nil\n").to_stdout
|
39
43
|
end
|
40
44
|
|
41
|
-
it "
|
45
|
+
it "highlight" do
|
42
46
|
DbgRb.highlight!
|
43
|
-
expect { dbg!("123") }.to output("!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n[spec/smoke_spec.rb:
|
47
|
+
expect { dbg!("123") }.to output("!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n[spec/smoke_spec.rb:47] \"123\"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n").to_stdout
|
44
48
|
end
|
45
49
|
|
46
50
|
it "color_code" do
|
47
51
|
DbgRb.color_code = 31
|
48
|
-
expect { dbg!(123) }.to output("\e[31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n[spec/smoke_spec.rb:
|
52
|
+
expect { dbg!(123) }.to output("\e[31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n[spec/smoke_spec.rb:52] 123\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m\n").to_stdout
|
49
53
|
end
|
50
54
|
|
51
55
|
it "alias" do
|
@@ -54,11 +58,21 @@ describe DbgRb do
|
|
54
58
|
|
55
59
|
expect {
|
56
60
|
dbg(123)
|
57
|
-
}.to output("[spec/smoke_spec.rb:
|
61
|
+
}.to output("[spec/smoke_spec.rb:60] 123\n").to_stdout
|
58
62
|
end
|
59
63
|
|
60
64
|
it "binded nil variables" do
|
61
65
|
b = nil
|
62
|
-
expect { dbg(:b) }.to output("[spec/smoke_spec.rb:
|
66
|
+
expect { dbg(:b) }.to output("[spec/smoke_spec.rb:66] b = nil\n").to_stdout
|
67
|
+
end
|
68
|
+
|
69
|
+
it "hashes" do
|
70
|
+
h = { a: 1, b: "2" }
|
71
|
+
expect { dbg!(h) }.to output("[spec/smoke_spec.rb:71] {\n \"a\": 1,\n \"b\": \"2\"\n}\n").to_stdout
|
72
|
+
end
|
73
|
+
|
74
|
+
it "arrays" do
|
75
|
+
a = [1, "str"]
|
76
|
+
expect { dbg!(a) }.to output("[spec/smoke_spec.rb:76] [\n 1,\n \"str\"\n]\n").to_stdout
|
63
77
|
end
|
64
78
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbg-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pawurb
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: binding_of_caller
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: ostruct
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,9 +109,8 @@ files:
|
|
95
109
|
- README.md
|
96
110
|
- Rakefile
|
97
111
|
- dbg-rb.gemspec
|
98
|
-
-
|
99
|
-
-
|
100
|
-
- dbg_emoji2.png
|
112
|
+
- dbg_base.png
|
113
|
+
- dbg_emoji.png
|
101
114
|
- lib/dbg-rb.rb
|
102
115
|
- lib/dbg_rb/version.rb
|
103
116
|
- spec/smoke_spec.rb
|
@@ -122,8 +135,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
135
|
- !ruby/object:Gem::Version
|
123
136
|
version: '0'
|
124
137
|
requirements: []
|
125
|
-
rubygems_version: 3.5.
|
138
|
+
rubygems_version: 3.5.16
|
126
139
|
signing_key:
|
127
140
|
specification_version: 4
|
128
|
-
summary: Simple
|
141
|
+
summary: Simple debugging helper
|
129
142
|
test_files: []
|
data/dbg_base3.png
DELETED
Binary file
|
data/dbg_color.png
DELETED
Binary file
|
data/dbg_emoji2.png
DELETED
Binary file
|