vv 0.0.5 → 0.0.6

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: fc9816ffbbb65a857dd88d262e89cf58e3bd1d042a24469c24e31d31efbb07f8
4
- data.tar.gz: c175c89043baa6b315acb9322dc90ca61d7131db7557eb20b996ee2826b04e18
3
+ metadata.gz: d58f40f0cc4161bee4e7e096e6979dbe03efcc9680f9f3505130d56c741bdf98
4
+ data.tar.gz: f5bd9113ecc56aff96f6afe29f61e50a48b0264c104d5a3910eee57d8dfa8efc
5
5
  SHA512:
6
- metadata.gz: 47b2d6ec988b9d3fffa651fea830ff0d557b38f4d2ca97e82c25b1045ecfdae87818c679d1075966b684f2564b404c7a012947ddfb7e3373e28337eeecd2e075
7
- data.tar.gz: ec330016777d295065e1ce3dd36dbf0b81ec7bfb8597d3479bc9241bceab77c2b2abe2781dd65a835c9b5cb59a9aab0a5c2658955dd32644d67d883c4a0c9d6a
6
+ metadata.gz: f7461ddd243c9e4d19ee0833ae0aa365b95f6fb98d471c62304a1848a53b22a9685bdd2172794ceead2c464c0846ef150afde0798de5c0dd4b8a65127a1acae9
7
+ data.tar.gz: 007b014236517943ddc6954edf83daeb3e0f782c88238080be57f246baf5ab09191ab5e9778024784b16b4d9e55668400032d2c1682bea676b0fa09c9930bfe6
data/lib/vv.rb CHANGED
@@ -3,6 +3,8 @@ require 'securerandom'
3
3
  require_relative "vv/gem_methods"
4
4
 
5
5
  Gem.require_files "vv/*.rb"
6
+ Gem.require_files "vv/style/*.rb"
7
+ Gem.require_files "vv/utility/*.rb"
6
8
 
7
9
  class String
8
10
  include VV::StringMethods
@@ -13,14 +13,6 @@ module VV
13
13
 
14
14
  end
15
15
 
16
- def blank?
17
- self.size == 0
18
- end
19
-
20
- def empty?
21
- self.blank?
22
- end
23
-
24
16
  def gravify
25
17
  self.collect do |elem|
26
18
  "`#{elem}`"
@@ -0,0 +1,11 @@
1
+ class Object
2
+
3
+ def blank?
4
+ respond_to?(:empty?) ? !!empty? : !self
5
+ end unless method_defined? :blank?
6
+
7
+ def present?
8
+ !blank?
9
+ end unless method_defined? :present?
10
+
11
+ end
@@ -24,17 +24,19 @@ module VV
24
24
  36
25
25
  end
26
26
 
27
- def identifier length=nil, charset_count: nil
27
+ def identifier length=nil, charset_radix: nil
28
28
  length ||= self.random_identifier_default_length
29
29
 
30
- charset_count ||= self.default_charset
31
- largest_digit = (charset_count - 1).to_s charset_count
30
+ charset_radix ||= self.default_charset
31
+ largest_digit = (charset_radix - 1).to_s charset_radix
32
32
 
33
- start = ( largest_digit * ( length - 1 ) ).to_i charset_count
34
- finish = ( largest_digit * ( length ) ).to_i charset_count
33
+ start = ( largest_digit * ( length - 1 ) ).to_i charset_radix
34
+ start += 1
35
+
36
+ finish = ( largest_digit * ( length ) ).to_i charset_radix
35
37
  range = start..finish
36
38
 
37
- SecureRandom.random_number(range).to_s charset_count
39
+ SecureRandom.random_number(range).to_s charset_radix
38
40
  end
39
41
 
40
42
  def character *args, capitals: false
@@ -75,10 +75,6 @@ module VV
75
75
 
76
76
  end
77
77
 
78
- def blank?
79
- self == ""
80
- end
81
-
82
78
  def starts_with? *args
83
79
  self.start_with?(*args)
84
80
  end
@@ -229,6 +225,49 @@ module VV
229
225
  t: 1000_000_000_000 }.stringify_keys
230
226
  end
231
227
 
228
+ def style *args
229
+ color = bold = underline = italic = nil
230
+
231
+ args.flatten!
232
+ args.map! { |arg| arg.to_sym }
233
+
234
+ args.each do |arg|
235
+ if Color.known_color? arg
236
+ if color.present?
237
+ raise "Color already set"
238
+ else
239
+ color = Color.new arg
240
+ end
241
+ elsif arg == :bold
242
+ bold = Bold.new
243
+ elsif arg == :underline
244
+ underline = Underline.new
245
+ elsif ( arg == :italic ) or ( arg == :italics )
246
+ italic = Italic.new
247
+ else
248
+ raise NotImplemented
249
+ end
250
+ end
251
+
252
+ reset = Format.reset_code
253
+ response = self.chomp(reset) + reset
254
+
255
+ response.prepend italic.code if italic
256
+ response.prepend underline.code if underline
257
+ response.prepend bold.code if bold
258
+
259
+ if color
260
+ start = response.index color.start_code
261
+ if start
262
+ finish = response[start..-1].index("m") + start
263
+ response.slice! start..finish
264
+ end
265
+ response.prepend color.code
266
+ end
267
+
268
+ response
269
+ end
270
+
232
271
  def insta
233
272
  return self if self.starts_with?("@")
234
273
  "@#{self}"
@@ -0,0 +1,15 @@
1
+ class Bold
2
+
3
+ def code
4
+ "\033[1m"
5
+ end
6
+
7
+ def unbold
8
+ "\033[21m"
9
+ end
10
+
11
+ def uncode
12
+ self.unbold
13
+ end
14
+
15
+ end
@@ -0,0 +1,218 @@
1
+ # Some code retrieved from rainbow gem, license followed:
2
+ # https://github.com/sickill/rainbow
3
+ # At commit: 0425bb46a408e406501c842d97233f13d93701e3
4
+ class Color
5
+ NAMES = {
6
+ aqua: [0, 255, 255],
7
+ aquamarine: [127, 255, 212],
8
+ mediumaquamarine: [102, 205, 170],
9
+ azure: [240, 255, 255],
10
+ beige: [245, 245, 220],
11
+ bisque: [255, 228, 196],
12
+ black: [0, 0, 0],
13
+ blanchedalmond: [255, 235, 205],
14
+ blue: [0, 0, 255],
15
+ darkblue: [0, 0, 139],
16
+ lightblue: [173, 216, 230],
17
+ mediumblue: [0, 0, 205],
18
+ aliceblue: [240, 248, 255],
19
+ cadetblue: [95, 158, 160],
20
+ dodgerblue: [30, 144, 255],
21
+ midnightblue: [25, 25, 112],
22
+ navyblue: [0, 0, 128],
23
+ powderblue: [176, 224, 230],
24
+ royalblue: [65, 105, 225],
25
+ skyblue: [135, 206, 235],
26
+ deepskyblue: [0, 191, 255],
27
+ lightskyblue: [135, 206, 250],
28
+ slateblue: [106, 90, 205],
29
+ darkslateblue: [72, 61, 139],
30
+ mediumslateblue: [123, 104, 238],
31
+ steelblue: [70, 130, 180],
32
+ lightsteelblue: [176, 196, 222],
33
+ brown: [165, 42, 42],
34
+ rosybrown: [188, 143, 143],
35
+ saddlebrown: [139, 69, 19],
36
+ sandybrown: [244, 164, 96],
37
+ burlywood: [222, 184, 135],
38
+ chartreuse: [127, 255, 0],
39
+ chocolate: [210, 105, 30],
40
+ coral: [255, 127, 80],
41
+ lightcoral: [240, 128, 128],
42
+ cornflower: [100, 149, 237],
43
+ cornsilk: [255, 248, 220],
44
+ crimson: [220, 20, 60],
45
+ cyan: [0, 255, 255],
46
+ darkcyan: [0, 139, 139],
47
+ lightcyan: [224, 255, 255],
48
+ firebrick: [178, 34, 34],
49
+ fuchsia: [255, 0, 255],
50
+ gainsboro: [220, 220, 220],
51
+ gold: [255, 215, 0],
52
+ goldenrod: [218, 165, 32],
53
+ darkgoldenrod: [184, 134, 11],
54
+ lightgoldenrod: [250, 250, 210],
55
+ palegoldenrod: [238, 232, 170],
56
+ gray: [190, 190, 190],
57
+ darkgray: [169, 169, 169],
58
+ dimgray: [105, 105, 105],
59
+ lightgray: [211, 211, 211],
60
+ slategray: [112, 128, 144],
61
+ lightslategray: [119, 136, 153],
62
+ webgray: [128, 128, 128],
63
+ green: [0, 255, 0],
64
+ darkgreen: [0, 100, 0],
65
+ lightgreen: [144, 238, 144],
66
+ palegreen: [152, 251, 152],
67
+ darkolivegreen: [85, 107, 47],
68
+ yellowgreen: [154, 205, 50],
69
+ forestgreen: [34, 139, 34],
70
+ lawngreen: [124, 252, 0],
71
+ limegreen: [50, 205, 50],
72
+ seagreen: [46, 139, 87],
73
+ darkseagreen: [143, 188, 143],
74
+ lightseagreen: [32, 178, 170],
75
+ mediumseagreen: [60, 179, 113],
76
+ springgreen: [0, 255, 127],
77
+ mediumspringgreen: [0, 250, 154],
78
+ webgreen: [0, 128, 0],
79
+ honeydew: [240, 255, 240],
80
+ indianred: [205, 92, 92],
81
+ indigo: [75, 0, 130],
82
+ ivory: [255, 255, 240],
83
+ khaki: [240, 230, 140],
84
+ darkkhaki: [189, 183, 107],
85
+ lavender: [230, 230, 250],
86
+ lavenderblush: [255, 240, 245],
87
+ lemonchiffon: [255, 250, 205],
88
+ lime: [0, 255, 0],
89
+ linen: [250, 240, 230],
90
+ magenta: [255, 0, 255],
91
+ darkmagenta: [139, 0, 139],
92
+ maroon: [176, 48, 96],
93
+ webmaroon: [127, 0, 0],
94
+ mintcream: [245, 255, 250],
95
+ mistyrose: [255, 228, 225],
96
+ moccasin: [255, 228, 181],
97
+ oldlace: [253, 245, 230],
98
+ olive: [128, 128, 0],
99
+ olivedrab: [107, 142, 35],
100
+ orange: [255, 165, 0],
101
+ darkorange: [255, 140, 0],
102
+ orchid: [218, 112, 214],
103
+ darkorchid: [153, 50, 204],
104
+ mediumorchid: [186, 85, 211],
105
+ papayawhip: [255, 239, 213],
106
+ peachpuff: [255, 218, 185],
107
+ peru: [205, 133, 63],
108
+ pink: [255, 192, 203],
109
+ deeppink: [255, 20, 147],
110
+ lightpink: [255, 182, 193],
111
+ hotpink: [255, 105, 180],
112
+ plum: [221, 160, 221],
113
+ purple: [160, 32, 240],
114
+ mediumpurple: [147, 112, 219],
115
+ rebeccapurple: [102, 51, 153],
116
+ webpurple: [127, 0, 127],
117
+ red: [255, 0, 0],
118
+ darkred: [139, 0, 0],
119
+ orangered: [255, 69, 0],
120
+ mediumvioletred: [199, 21, 133],
121
+ palevioletred: [219, 112, 147],
122
+ salmon: [250, 128, 114],
123
+ darksalmon: [233, 150, 122],
124
+ lightsalmon: [255, 160, 122],
125
+ seashell: [255, 245, 238],
126
+ sienna: [160, 82, 45],
127
+ silver: [192, 192, 192],
128
+ darkslategray: [47, 79, 79],
129
+ snow: [255, 250, 250],
130
+ tan: [210, 180, 140],
131
+ teal: [0, 128, 128],
132
+ thistle: [216, 191, 216],
133
+ tomato: [255, 99, 71],
134
+ turquoise: [64, 224, 208],
135
+ darkturquoise: [0, 206, 209],
136
+ mediumturquoise: [72, 209, 204],
137
+ paleturquoise: [175, 238, 238],
138
+ violet: [238, 130, 238],
139
+ darkviolet: [148, 0, 211],
140
+ blueviolet: [138, 43, 226],
141
+ wheat: [245, 222, 179],
142
+ white: [255, 255, 255],
143
+ antiquewhite: [250, 235, 215],
144
+ floralwhite: [255, 250, 240],
145
+ ghostwhite: [248, 248, 255],
146
+ navajowhite: [255, 222, 173],
147
+ whitesmoke: [245, 245, 245],
148
+ yellow: [255, 255, 0],
149
+ lightyellow: [255, 255, 224],
150
+ greenyellow: [173, 255, 47]
151
+ }.freeze
152
+
153
+ attr_accessor :r, :g, :b
154
+
155
+ def self.names
156
+ NAMES.each do | name, _ |
157
+ styled_name = name.to_s.style name
158
+ styled_name += " (black)" if name == :black
159
+ puts styled_name
160
+ end
161
+ nil
162
+ end
163
+
164
+ def self.lookup_color name
165
+ name = name.to_s
166
+ name.gsub! "_", ""
167
+ name.gsub! "-", ""
168
+ name = name.to_sym
169
+
170
+ NAMES[name]
171
+ end
172
+
173
+ def self.known_color? name
174
+ self.lookup_color(name).present?
175
+ end
176
+
177
+ def initialize name=nil, hex: nil, rgb: nil
178
+ raise NotImplemented if name.nil?
179
+ raise NotImplemented if hex.present?
180
+ raise NotImplemented if rgb.present?
181
+
182
+ color ||= self.class.lookup_color name
183
+
184
+ raise NotImplemented unless color.present?
185
+
186
+ @r, @g, @b = color
187
+ end
188
+
189
+ def red
190
+ @r
191
+ end
192
+
193
+ def green
194
+ @g
195
+ end
196
+
197
+ def blue
198
+ @b
199
+ end
200
+
201
+ def rgb
202
+ [@r, @g, @b]
203
+ end
204
+
205
+ def code
206
+ "#{start_code}#{@r};#{@g};#{@b}m"
207
+ end
208
+
209
+ def html
210
+ "##{@r.to_s(16)}#{@g.to_s(16)}#{@b.to_s(16)}"
211
+ end
212
+ alias_method :hex, :html
213
+
214
+ def start_code
215
+ "\x1b[38;2;"
216
+ end
217
+
218
+ end
@@ -0,0 +1,7 @@
1
+ class Format
2
+
3
+ def self.reset_code
4
+ "\x1b[0m"
5
+ end
6
+
7
+ end
@@ -0,0 +1,15 @@
1
+ class Italic
2
+
3
+ def code
4
+ "\033[3m"
5
+ end
6
+
7
+ def unitalic
8
+ "\033[23m"
9
+ end
10
+
11
+ def uncode
12
+ self.unitalic
13
+ end
14
+
15
+ end
@@ -0,0 +1,16 @@
1
+ class Underline
2
+
3
+ def code
4
+ "\033[4m"
5
+ end
6
+
7
+ def off
8
+ "\033[24m"
9
+ end
10
+ alias_method :underline_off, :off
11
+
12
+ def uncode
13
+ off
14
+ end
15
+
16
+ end
@@ -0,0 +1,75 @@
1
+ module VV
2
+ module Automate
3
+
4
+ def version path:
5
+ args = ARGV.to_a
6
+ lines = File.read(path).split("\n")
7
+
8
+ raise "Unknown number of arguments" if args.size > 1
9
+ version = lines[1].split(" = ")[-1].gsub("'","")
10
+ if args.size < 1
11
+ puts version
12
+ exit
13
+ end
14
+
15
+ command = args[0]
16
+ weird = version.split(".").size != 3
17
+ raise "Only handles basic versions" if weird
18
+
19
+ major, minor, point = version.split(".").map(&:to_i)
20
+
21
+ if command == "+"
22
+ point += 1
23
+ elsif command == "++"
24
+ point = 0
25
+ minor += 1
26
+ elsif command == "+++"
27
+ point = 0
28
+ minor = 0
29
+ major += 1
30
+ elsif command.split(".").size == 3
31
+ major, minor, point = command.split(".")
32
+ elsif command == "reset"
33
+ system("git checkout -- #{path}")
34
+ exit
35
+ elsif %w[ help --help h -h ].include? command
36
+ puts
37
+ puts "Available commands are:"
38
+ puts
39
+ puts "+ - point increment"
40
+ puts "++ - minor increment"
41
+ puts "+++ - major increment"
42
+ puts
43
+ puts "x.y.z - to set version explicitly"
44
+ puts "reset - to revert to version in git"
45
+ puts
46
+ exit
47
+ end
48
+
49
+ new_version = [major, minor, point].join(".")
50
+ lines[1] = " VERSION = '#{new_version}'"
51
+ lines << ""
52
+
53
+ File.write(path, lines.join("\n"))
54
+
55
+ end
56
+ module_function :version
57
+
58
+ def build( name: )
59
+ puts %x{ find lib/ | \\
60
+ xargs git ls-files --error-unmatch > /dev/null 2>&1 \\
61
+ || ( echo && \\
62
+ echo "Warning: A file in lib/ is not tracked by git" && \\
63
+ echo )
64
+
65
+ rm #{name}-*.gem
66
+ gem uninstall --ignore-dependencies #{name} > /dev/null
67
+ bundle
68
+ gem build #{name}.gemspec
69
+ gem install $(readlink -f #{name}-*.gem | sort | tail -n 1 ) --pre
70
+ }
71
+ end
72
+ module_function :build
73
+
74
+ end
75
+ end
@@ -1,3 +1,3 @@
1
1
  module VV
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Aysan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-15 00:00:00.000000000 Z
11
+ date: 2019-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -68,10 +68,17 @@ files:
68
68
  - lib/vv/gem_methods.rb
69
69
  - lib/vv/hash_methods.rb
70
70
  - lib/vv/nil_methods.rb
71
+ - lib/vv/object_methods.rb
71
72
  - lib/vv/random_methods.rb
72
73
  - lib/vv/readline_methods.rb
73
74
  - lib/vv/string_methods.rb
75
+ - lib/vv/style/bold.rb
76
+ - lib/vv/style/color.rb
77
+ - lib/vv/style/format.rb
78
+ - lib/vv/style/italic.rb
79
+ - lib/vv/style/underline.rb
74
80
  - lib/vv/true_methods.rb
81
+ - lib/vv/utility/automate.rb
75
82
  - lib/vv/version.rb
76
83
  homepage: https://github.com/zachaysan/vv
77
84
  licenses: