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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b59e26796df37f516bbf9e49abf36ef3e6381251efb147a8cfebc2dc3b25e859
4
- data.tar.gz: fb966c5473b1a5799fbb7c6d74823aa62821e054f8af7dfa4f6e05f39efe30fa
3
+ metadata.gz: 2db3ba3ac88033948685e877c1b9245f77c4f0c3b3b061d786305ea1a2059113
4
+ data.tar.gz: 0412b7c4b793aabe451c622fbf293938a5e9dce9ad4ae06d4cda8604d4798df9
5
5
  SHA512:
6
- metadata.gz: d282afefaa8acb843fea7bd553ba3d31e323f58693ea14c96e8f14cc3c5fbf190f520d30b19521ac28636c8f02387f24dd8e15850c996a3d5a4dd7ba5ce69592
7
- data.tar.gz: 815a02500042f53cb9d8e170efd5efef323d68a994258c7b3df59de62c371958b48019ba2a83c6a73b491a8b22b1669cf70058228fdc63ac382934bc41704349
6
+ metadata.gz: 5b655b3c9c88e2e973cf860f1bf8228e27075b115d6ce37e4a0903ae0a062194c15915dcb3cd851b4234dcfa119d669b57af25f563ed4f14c852b5361f67d03b
7
+ data.tar.gz: d71e5a0b42c1999ab7e981ba467fa7bd19851f26c8e3f5dcd22576db306f756b95edbe04562918b372e9a1e7bfcb96e6449fc08f79dbf5db969844b6240cb994
@@ -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! [![Gem Version](https://badge.fury.io/rb/dbg-rb.svg)](https://badge.fury.io/rb/dbg-rb) [![GH Actions](https://github.com/pawurb/dbg-rb/actions/workflows/ci.yml/badge.svg)](https://github.com/pawurb/dbg-rb/actions)
2
2
 
3
- ![Dbg base](https://github.com/pawurb/dbg-rb/raw/main/dbg_base3.png)
3
+ ![Dbg base](https://github.com/pawurb/dbg-rb/raw/main/dbg_base.png)
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
- ![Dbg color](https://github.com/pawurb/dbg-rb/raw/main/dbg_base3.png)
88
+ ![Dbg color](https://github.com/pawurb/dbg-rb/raw/main/dbg_base.png)
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
- ![Dbg emoji](https://github.com/pawurb/dbg-rb/raw/main/dbg_emoji2.png)
99
+ ![Dbg emoji](https://github.com/pawurb/dbg-rb/raw/main/dbg_emoji.png)
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 debuging helper"
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.to_s
33
- matching_loc = loc.match(/.+(rb)\:\d+\:(in)\s/)
34
- src = if !matching_loc.nil?
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
- file, line = src.split(":")
40
- file = file.split("/").last(2).join("/")
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
- ":#{obj}"
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.nil?
88
- "nil"
89
- elsif val.is_a?(String)
90
- "\"#{val}\""
91
- elsif val.is_a?(Hash) || val.is_a?(Array)
92
- JSON.pretty_generate(val)
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
- val
109
+ obj.inspect
95
110
  end
96
111
  end
97
112
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DbgRb
4
- VERSION = "0.2.6"
4
+ VERSION = "0.2.8"
5
5
  end
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:9] \"123\"\n").to_stdout
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:14] b = 123\n").to_stdout
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:19] :c\n").to_stdout
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:24] #<OpenStruct a=1, b=2>\n").to_stdout
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:29] s = #<OpenStruct a=1, b=2>\n").to_stdout
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:34] s = #<OpenStruct a=1, b=2>\n[spec/smoke_spec.rb:34] \"other msg\"\n").to_stdout
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:38] nil\n").to_stdout
42
+ expect { dbg!(nil) }.to output("[spec/smoke_spec.rb:42] nil\n").to_stdout
39
43
  end
40
44
 
41
- it "higlight" do
45
+ it "highlight" do
42
46
  DbgRb.highlight!
43
- expect { dbg!("123") }.to output("!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n[spec/smoke_spec.rb:43] \"123\"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n").to_stdout
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:48] 123\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m\n").to_stdout
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:56] 123\n").to_stdout
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:62] b = nil\n").to_stdout
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.6
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: 2024-12-19 00:00:00.000000000 Z
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
- - dbg_base3.png
99
- - dbg_color.png
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.23
138
+ rubygems_version: 3.5.16
126
139
  signing_key:
127
140
  specification_version: 4
128
- summary: Simple debuging helper
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