string_dot_gradient 0.1.5 → 0.1.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: 107ebffe10579b889cfe5b6bd0ebbc774375674fd7e9db1998f3fc4561d86b12
4
- data.tar.gz: 26588857b88ff2f8a732a840a3807d7d327448b55cc02eb385294e21c718d71b
3
+ metadata.gz: 705f4872e8c680732b71c8d5e1e70f2287418d4b38278f92bbf801bb3d838f5a
4
+ data.tar.gz: bc0c962ecd6615bc40ec1c58f1c90131a752651f1165b6962898e046f38511bf
5
5
  SHA512:
6
- metadata.gz: 5c40057440f5a6d8c3d1855c3defa40e878a1aeadaefb3e7fda49fd95521135d0c3c418b10dfe3ffabb8b743e25bce3962cafebfb1b4725392619287c67f1938
7
- data.tar.gz: 668f2212665a28aeabcc58cfd823d5a0995617f785a93d10ab6c301a714328dc057f9d3dade654a3021296a596de8fadec3dd30104681aaa3215426d89cf0493
6
+ metadata.gz: 234f82023c22e4f0acffc3456eee6080b73cfad4516a34cb645a6a1dcc9a742c743e09368f71e15187721805ada57e3d2fbc892413677eb0daa0889bb98c6cbd
7
+ data.tar.gz: '095bc1362d552dae0d1e8e56808fc993a92f47a529ef584fd0fdbbc6705cda1cb40237beb06b64d0ba0f28fe828b3179b76712f652e522658a110104bfbc1d57'
@@ -59,8 +59,10 @@ class String
59
59
 
60
60
  each_line do |c|
61
61
  _r, _g, _b = r, g, b
62
+ chomped = !!c.chomp!(''.freeze)
63
+
62
64
  n = c.length
63
- n_variable = exclude_spaces ? c.dup.delete("\t\s".freeze).length : n
65
+ n_variable = exclude_spaces ? c.delete("\t\s".freeze).length : n
64
66
 
65
67
  r_op = r_val = r_max = r_min = nil
66
68
  g_op = g_val = g_max = g_min = nil
@@ -94,6 +96,12 @@ class String
94
96
  b_comp_op, b_comp_val = :>=, b_min
95
97
  end
96
98
 
99
+ # To avoid the value getting adding | subtracted from the initial character
100
+ # Note that duplication is fine if we don't get a little bit performance loss
101
+ _r = _r.send(r_op, r_val * -1) if r_comp_op && _r.send(r_comp_op, r_comp_val)
102
+ _g = _g.send(g_op, g_val * -1) if g_comp_op && _g.send(g_comp_op, g_comp_val)
103
+ _b = _b.send(b_op, b_val * -1) if b_comp_op && _b.send(b_comp_op, b_comp_val)
104
+
97
105
  if line_length != n || rotate
98
106
  line_length = n
99
107
  colours.clear
@@ -143,9 +151,17 @@ class String
143
151
  end
144
152
 
145
153
  if block_given
146
- yield "\e[0m".freeze
154
+ if !c.empty?
155
+ yield(chomped ? "\e[0m\n".freeze : "\e[0m".freeze)
156
+ elsif chomped && c.empty?
157
+ yield(?\n.freeze)
158
+ end
147
159
  else
148
- temp << "\e[0m".freeze
160
+ if !c.empty?
161
+ temp.concat(chomped ? "\e[0m\n".freeze : "\e[0m".freeze)
162
+ elsif chomped && c.empty?
163
+ temp.concat(?\n.freeze)
164
+ end
149
165
  end
150
166
 
151
167
  if rotate
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StringDotGradient
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string_dot_gradient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sourav Goswami