commentbox 0.2.1 → 0.3.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/bin/cbwiz +65 -0
- data/lib/commentbox.rb +17 -8
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bf8ca4be9a56802c326ec4f5e1562262bf40d334571113c70ca11847c904195
|
4
|
+
data.tar.gz: ec433e2a0da5b227827e00f35033a626cb521a67668d2dc79a4061e7ffceb98f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aea4172ca5e47d5d2dc79b25249d577e3c4d5d61f9b04e11fa7925ff2d77719dbc43a3418fd198d4e2c92a0b728552049e071933caf50078eceee81c3fd2c87
|
7
|
+
data.tar.gz: 3580327e9e93b7043bfdc64fb48a48ce0fbfc8b4372736aa5a49f527a2e955b4706190ddc5c91032eedbb4f2f6e1a866e2be324a53b8f1c1856b301f4dfccf0b
|
data/bin/cbwiz
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'commentbox'
|
4
|
+
|
5
|
+
$HELP_MSG = %q(Usage: cb_script.rb [options] [text]
|
6
|
+
Options:
|
7
|
+
-t, --text [text] Text to be commented. Optional flag for first argument
|
8
|
+
-a, --align [l1, l2...] Alignment of text: left, center, right
|
9
|
+
-s, --style [style] Style of comment box: stub, window, parallax, zigzag, or money
|
10
|
+
-p, --padding [padding] Padding of comment box
|
11
|
+
-o, --offset [offset] Offset of comment box
|
12
|
+
-w, --stretch [stretch] Stretch of comment box
|
13
|
+
-sl, --spacelines Remove space lines (default true)
|
14
|
+
-h, --help Display this help message
|
15
|
+
)
|
16
|
+
|
17
|
+
def help_and_exit
|
18
|
+
puts $HELP_MSG
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
|
22
|
+
if ARGV.empty?
|
23
|
+
help_and_exit
|
24
|
+
end
|
25
|
+
# if the :text parameter is first, the -t flag is optional
|
26
|
+
mode = :text
|
27
|
+
options = {}
|
28
|
+
# for each argument:
|
29
|
+
# if it's a switch, set the `mode` symbol
|
30
|
+
# if it's a value, set/append to the coresponding `mode` key in `options`
|
31
|
+
ARGV.each do |arg|
|
32
|
+
case arg
|
33
|
+
when '-h', '--help', 'help', '-?', '--?'
|
34
|
+
help_and_exit
|
35
|
+
when '-t', '--text'
|
36
|
+
mode = :text
|
37
|
+
when '-a', '--align'
|
38
|
+
mode = :align
|
39
|
+
when '-s', '--style'
|
40
|
+
mode = :style
|
41
|
+
when '-p', '--padding'
|
42
|
+
mode = :padding
|
43
|
+
when '-o', '--offset'
|
44
|
+
mode = :offset
|
45
|
+
when '-w', '--stretch'
|
46
|
+
mode = :stretch
|
47
|
+
when '-sl', '--spacelines'
|
48
|
+
mode = :spacelines
|
49
|
+
# default is true so if it's mentioned, we implicitly assume false
|
50
|
+
# although it remains possible to explicitly specify true
|
51
|
+
options[:spacelines] = false
|
52
|
+
else
|
53
|
+
if options[mode].nil?
|
54
|
+
options[mode] = arg
|
55
|
+
else
|
56
|
+
# hacky line to make sure anything with multiple arguments comes out as a flat array
|
57
|
+
options[mode] = ([ options[mode] ] << arg).flatten
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
puts options.to_s
|
64
|
+
|
65
|
+
puts CommentBox.new options
|
data/lib/commentbox.rb
CHANGED
@@ -16,6 +16,12 @@ module CommentBoxStyles
|
|
16
16
|
evenlines: ['/ ', ' /'],
|
17
17
|
oddcorners: ['=/','/=']
|
18
18
|
},
|
19
|
+
window: {
|
20
|
+
hlines: '**',
|
21
|
+
oddlines: ['\\*', '*\\'],
|
22
|
+
evenlines: ['/+', '+/'],
|
23
|
+
oddcorners: ['+/','/+']
|
24
|
+
},
|
19
25
|
parallax: {
|
20
26
|
hlines: '==',
|
21
27
|
oddlines: ['||', '||'],
|
@@ -78,9 +84,11 @@ class CommentBox
|
|
78
84
|
@@styles = CommentBoxStyles::Styles
|
79
85
|
|
80
86
|
# class methods for messing with default values
|
87
|
+
# make sure everything is symbolized that needs to be
|
81
88
|
def self.default_params; @@default_params end
|
82
|
-
def self.default_params=(value); @@default_params = value end
|
83
|
-
def self.
|
89
|
+
def self.default_params=(value); @@default_params = value.transform_keys(&:to_sym) end
|
90
|
+
# def self.default_params[]= (key, value); @@default_params[key.to_sym] = value end
|
91
|
+
def self.set_default_params (value = {}); value.each { |key, val| @@default_params[key.to_sym] = val } end
|
84
92
|
def self.styles; @@styles end
|
85
93
|
def self.add_style(value)
|
86
94
|
value.each do |key, val|
|
@@ -90,7 +98,8 @@ class CommentBox
|
|
90
98
|
end
|
91
99
|
end
|
92
100
|
# I could attempt to remove a :default? key here but it doesn't matter
|
93
|
-
|
101
|
+
# this is a terse one but trust me
|
102
|
+
@@styles.merge! value.transform_keys(&:to_sym).transform_values { |v| v.transform_keys(&:to_sym) }
|
94
103
|
end
|
95
104
|
|
96
105
|
# instance setter methods
|
@@ -115,8 +124,8 @@ class CommentBox
|
|
115
124
|
if params.is_a? String then params = {text: params} end
|
116
125
|
|
117
126
|
# fill in a bunch of instance variables from params or default values
|
118
|
-
@padding = params[:padding] || @@default_params[:padding]
|
119
|
-
@offset = params[:offset] || @@default_params[:offset]
|
127
|
+
@padding = params[:padding].to_i || @@default_params[:padding]
|
128
|
+
@offset = params[:offset].to_i || @@default_params[:offset]
|
120
129
|
# one of the options for this is false, so it's not gonna play nice with ||
|
121
130
|
@spacelines = (params[:spacelines] != nil) ? params[:spacelines] : @@default_params[:spacelines]
|
122
131
|
@stretch = (params[:stretch] || @@default_params[:stretch]).to_i
|
@@ -140,8 +149,8 @@ class CommentBox
|
|
140
149
|
(0..@text.size - 1).map { |line| fmt_text_line line }, # this is a nested array and must be flattened
|
141
150
|
spaceLine,
|
142
151
|
t_line(:end)
|
143
|
-
# flatten,
|
144
|
-
].flatten.map { |line| line == '' ? '' : (' ' * @offset) << line}.join.chomp
|
152
|
+
# flatten, map offset in front of each line if it's not empty, join them together, and remove trailing newline
|
153
|
+
].flatten.map { |line| line == '' ? '' : (' ' * @offset) << line }.join.chomp
|
145
154
|
end
|
146
155
|
|
147
156
|
private
|
@@ -197,7 +206,7 @@ private
|
|
197
206
|
else @text.insert(1,''); @alignment.insert(1,:left) end
|
198
207
|
end
|
199
208
|
end
|
200
|
-
def t_line (beginOrEnd)
|
209
|
+
def t_line (beginOrEnd) #t[erminating]_line: top or bottom (begin or end) of the box
|
201
210
|
if beginOrEnd == :begin
|
202
211
|
bchar = '/*'; echar = @style[:oddcorners][0]
|
203
212
|
else
|
metadata
CHANGED
@@ -1,21 +1,23 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commentbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonard H. Phelan IV
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A little gem for generating pretty multiline comment boxes in C/C++ templates
|
14
14
|
email: lenny@lenny.beer
|
15
|
-
executables:
|
15
|
+
executables:
|
16
|
+
- cbwiz
|
16
17
|
extensions: []
|
17
18
|
extra_rdoc_files: []
|
18
19
|
files:
|
20
|
+
- bin/cbwiz
|
19
21
|
- lib/commentbox.rb
|
20
22
|
homepage: https://github.com/lennyitb/commentbox
|
21
23
|
licenses:
|
@@ -36,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
38
|
- !ruby/object:Gem::Version
|
37
39
|
version: '0'
|
38
40
|
requirements: []
|
39
|
-
rubygems_version: 3.3
|
41
|
+
rubygems_version: 3.4.3
|
40
42
|
signing_key:
|
41
43
|
specification_version: 4
|
42
44
|
summary: Lenny C/C++ template CommentBox class
|