puts_debug 0.1.0 → 0.2.0
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/README.md +15 -27
- data/lib/puts_debug/version.rb +1 -1
- data/lib/puts_debug.rb +64 -17
- data/puts_debug.gemspec +2 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3356209ac7938c3d9f056c7aa40195ed60f99c79b0fefc44974e74ae0ffe94b7
|
4
|
+
data.tar.gz: e46f3e1a03a7db00ef005e8a40e0db34332ebd0fb76019e5d75ed03ad6e601b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0f652b644c6ee3181fd37123cead208ff25b32ee175b402feec8382ae6247c29012d882653cc99cfb6c369ef672434b73ce5dc17ffd5d564c2d5e6527d06563
|
7
|
+
data.tar.gz: bf4c72e4a614a04df8f52ae781fad2d12d258e24260065e0bb1aee32225ad54af1387239712733ab77687580eb66fd275538ecbe11458f4a17fa3d03d96e2711
|
data/README.md
CHANGED
@@ -41,47 +41,35 @@ then you can
|
|
41
41
|
|
42
42
|
# Method signature:
|
43
43
|
|
44
|
-
def pd(
|
44
|
+
def pd(args)
|
45
45
|
# ...
|
46
46
|
end
|
47
47
|
|
48
48
|
|
49
|
-
pd('something')
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
pd('something') =>
|
50
|
+
============================================================
|
51
|
+
something
|
52
|
+
============================================================
|
53
|
+
|
54
|
+
pd(data: 'something', data_color: 'magenta', lines: :none) =>
|
55
|
+
something
|
56
|
+
|
57
|
+
pd(name: 'Yogurt') =>
|
58
|
+
============================================================
|
53
59
|
name: Yogurt
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
pd(1, '-', :both, 1) #=>
|
60
|
+
============================================================
|
58
61
|
|
62
|
+
pd(data: 1, symbol: '-', margin: 1) =>
|
63
|
+
|
59
64
|
------------------------------------------------------------
|
60
65
|
1
|
61
66
|
------------------------------------------------------------
|
62
|
-
|
63
|
-
pd({a: 1, b: 3}, '*', :both, 2) #=>
|
64
|
-
|
65
67
|
|
68
|
+
pd(data: {a: 1, b: 3}, symbol: '*') =>
|
66
69
|
************************************************************
|
67
70
|
a: 1
|
68
71
|
b: 3
|
69
72
|
************************************************************
|
70
|
-
|
71
|
-
|
72
|
-
pd({a: 1, b: 3}, '=', :top, 1)
|
73
|
-
pd('In the midlle')
|
74
|
-
pd({c:2, d: 33}, '=', :bottom, 1)
|
75
|
-
#=>
|
76
|
-
|
77
|
-
============================================================
|
78
|
-
a: 1
|
79
|
-
b: 3
|
80
|
-
In the midlle
|
81
|
-
c: 2
|
82
|
-
d: 33
|
83
|
-
============================================================
|
84
|
-
|
85
73
|
```
|
86
74
|
|
87
75
|
## Development
|
data/lib/puts_debug/version.rb
CHANGED
data/lib/puts_debug.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "puts_debug/version"
|
2
2
|
|
3
3
|
module Kernel
|
4
|
-
|
5
4
|
##
|
6
5
|
# For easier puts debugging (pd). Defined in Kernel module which is included into Object class so this method
|
7
6
|
# is accessible from everywhere. Output is sent to standard error stream (stderr) so it could be further separated
|
@@ -18,44 +17,92 @@ module Kernel
|
|
18
17
|
# Examples:
|
19
18
|
#
|
20
19
|
# pd('something') =>
|
20
|
+
# ============================================================
|
21
|
+
# something
|
22
|
+
# ============================================================
|
23
|
+
#
|
24
|
+
# pd(data: 'something', data_color: 'magenta', lines: :none) =>
|
21
25
|
# something
|
22
26
|
#
|
23
27
|
# pd(name: 'Yogurt') =>
|
28
|
+
# ============================================================
|
24
29
|
# name: Yogurt
|
30
|
+
# ============================================================
|
25
31
|
#
|
26
|
-
# pd(1, '-', :
|
32
|
+
# pd(data: 1, symbol: '-', margin: 1) =>
|
27
33
|
#
|
28
34
|
# ------------------------------------------------------------
|
29
35
|
# 1
|
30
36
|
# ------------------------------------------------------------
|
31
37
|
#
|
32
|
-
# pd({a: 1, b: 3}, '*'
|
33
|
-
#
|
34
|
-
#
|
38
|
+
# pd(data: {a: 1, b: 3}, symbol: '*') =>
|
35
39
|
# ************************************************************
|
36
40
|
# a: 1
|
37
41
|
# b: 3
|
38
42
|
# ************************************************************
|
39
|
-
|
40
|
-
|
41
|
-
|
43
|
+
def pd(args)
|
44
|
+
params = nil
|
45
|
+
|
46
|
+
if args.is_a? Hash
|
47
|
+
if args[:data].nil?
|
48
|
+
params = { data: args }
|
49
|
+
else
|
50
|
+
params = args
|
51
|
+
end
|
52
|
+
else
|
53
|
+
params = { data: args }
|
54
|
+
end
|
55
|
+
|
56
|
+
# parameters
|
57
|
+
data = params[:data]
|
58
|
+
symbol = params[:symbol] || '='
|
59
|
+
line_color = params[:color] || 'red'
|
60
|
+
data_color = params[:data_color] || nil
|
61
|
+
margin = params[:margin] || 0
|
62
|
+
lines = params[:lines] || :both
|
63
|
+
title = params[:title]
|
64
|
+
epilogue = params[:epilogue]
|
42
65
|
|
43
|
-
|
66
|
+
# locals
|
67
|
+
line_str = Rainbow(symbol * 60).try(line_color)
|
68
|
+
margin_str = "\n" * margin
|
44
69
|
|
45
|
-
$stderr.puts
|
46
|
-
$stderr.puts
|
70
|
+
$stderr.puts margin_str if margin > 0 && lines.in?([:both, :top])
|
71
|
+
$stderr.puts line_str if lines.in?([:both, :top])
|
47
72
|
|
48
|
-
if
|
49
|
-
|
50
|
-
|
73
|
+
if title.present?
|
74
|
+
title_str = if title.ends_with? ':'
|
75
|
+
"#{title}\n"
|
76
|
+
else
|
77
|
+
"#{title}:\n"
|
51
78
|
end
|
79
|
+
|
80
|
+
$stderr.puts Rainbow(title_str).try(line_color)
|
81
|
+
end
|
82
|
+
|
83
|
+
data_str = case data
|
84
|
+
when Hash
|
85
|
+
data.map { |k, v| "#{k}: #{v}" }.join("\n")
|
86
|
+
when Array
|
87
|
+
data.map { |v| "#{v}" }.join(",\n")
|
52
88
|
else
|
53
|
-
|
89
|
+
data.to_s
|
54
90
|
end
|
55
91
|
|
56
|
-
|
57
|
-
$stderr.puts "\n" * empty_lines_margin if empty_lines_margin.present? && show_lines.in?([:both, :bottom])
|
92
|
+
data_str = Rainbow(data_str).try(data_color) if data_color.present?
|
58
93
|
|
94
|
+
$stderr.puts data_str
|
95
|
+
|
96
|
+
if title.present?
|
97
|
+
$stderr.puts ''
|
98
|
+
end
|
99
|
+
|
100
|
+
$stderr.puts Rainbow(epilogue).try(line_color) if epilogue.present?
|
101
|
+
|
102
|
+
if lines.present?
|
103
|
+
$stderr.puts line_str if lines.in?([:both, :bottom])
|
104
|
+
$stderr.puts margin_str if margin > 0 && lines.in?([:both, :bottom])
|
105
|
+
end
|
59
106
|
end
|
60
107
|
|
61
108
|
end
|
data/puts_debug.gemspec
CHANGED
@@ -24,6 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
|
27
|
+
spec.add_dependency 'rainbow', '~> 3' # Gem for colorizing printed text on ANSI terminals
|
28
|
+
|
27
29
|
spec.add_development_dependency "bundler", "~> 1.16"
|
28
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
31
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puts_debug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleh Novosad
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rainbow
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|