ix-cli 0.0.1

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.
Files changed (274) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/VERSION +1 -0
  4. data/bin/ix +14 -0
  5. data/bin/ix-acronym +21 -0
  6. data/bin/ix-add +8 -0
  7. data/bin/ix-append +8 -0
  8. data/bin/ix-arguments +12 -0
  9. data/bin/ix-array +17 -0
  10. data/bin/ix-ascii +3 -0
  11. data/bin/ix-avg +18 -0
  12. data/bin/ix-aws-pass +17 -0
  13. data/bin/ix-banner +2 -0
  14. data/bin/ix-base +24 -0
  15. data/bin/ix-base64-to-image +6 -0
  16. data/bin/ix-basename +8 -0
  17. data/bin/ix-bash-to-md +17 -0
  18. data/bin/ix-bcat +184 -0
  19. data/bin/ix-bellgrep +17 -0
  20. data/bin/ix-bench +9 -0
  21. data/bin/ix-binary-to-text +8 -0
  22. data/bin/ix-blackbox +45 -0
  23. data/bin/ix-blackbox-html-table +86 -0
  24. data/bin/ix-blamer +23 -0
  25. data/bin/ix-box +35 -0
  26. data/bin/ix-box2 +3 -0
  27. data/bin/ix-box3 +3 -0
  28. data/bin/ix-camel +17 -0
  29. data/bin/ix-cat +7 -0
  30. data/bin/ix-catafter +18 -0
  31. data/bin/ix-catan +6 -0
  32. data/bin/ix-chain +13 -0
  33. data/bin/ix-chars +4 -0
  34. data/bin/ix-checklist +23 -0
  35. data/bin/ix-child-math +10 -0
  36. data/bin/ix-chomp +6 -0
  37. data/bin/ix-chr +6 -0
  38. data/bin/ix-class +5 -0
  39. data/bin/ix-columns +41 -0
  40. data/bin/ix-combinations +11 -0
  41. data/bin/ix-command-class +21 -0
  42. data/bin/ix-commandify +22 -0
  43. data/bin/ix-commit +9 -0
  44. data/bin/ix-confirm +47 -0
  45. data/bin/ix-constants +9 -0
  46. data/bin/ix-cp +10 -0
  47. data/bin/ix-crack +163 -0
  48. data/bin/ix-crap +26 -0
  49. data/bin/ix-crazy-case +9 -0
  50. data/bin/ix-create-cluster-nodes +15 -0
  51. data/bin/ix-csv-to-json +16 -0
  52. data/bin/ix-day +12 -0
  53. data/bin/ix-debugging +33 -0
  54. data/bin/ix-decode-base64 +8 -0
  55. data/bin/ix-dequote +3 -0
  56. data/bin/ix-df +15 -0
  57. data/bin/ix-diagram +47 -0
  58. data/bin/ix-dirname +5 -0
  59. data/bin/ix-divide +8 -0
  60. data/bin/ix-done +11 -0
  61. data/bin/ix-dot-case +15 -0
  62. data/bin/ix-downcase +5 -0
  63. data/bin/ix-dto +39 -0
  64. data/bin/ix-each +7 -0
  65. data/bin/ix-edit +21 -0
  66. data/bin/ix-emails +10 -0
  67. data/bin/ix-escape +8 -0
  68. data/bin/ix-extensions +3 -0
  69. data/bin/ix-file-exists +11 -0
  70. data/bin/ix-filename +7 -0
  71. data/bin/ix-files +9 -0
  72. data/bin/ix-first +6 -0
  73. data/bin/ix-fish-diagram +47 -0
  74. data/bin/ix-flip-flop +20 -0
  75. data/bin/ix-flow +22 -0
  76. data/bin/ix-format-ruby-hash +61 -0
  77. data/bin/ix-gauge +86 -0
  78. data/bin/ix-get-colors +520 -0
  79. data/bin/ix-gift-exchange +52 -0
  80. data/bin/ix-glitter +29 -0
  81. data/bin/ix-grep-join +4 -0
  82. data/bin/ix-group +21 -0
  83. data/bin/ix-groups +15 -0
  84. data/bin/ix-gsub +5 -0
  85. data/bin/ix-gzip-dir +33 -0
  86. data/bin/ix-hash +10 -0
  87. data/bin/ix-hashtag +12 -0
  88. data/bin/ix-hex2rgb +5 -0
  89. data/bin/ix-histogram +80 -0
  90. data/bin/ix-hls +21 -0
  91. data/bin/ix-html +3 -0
  92. data/bin/ix-human-time +3 -0
  93. data/bin/ix-hyphen +9 -0
  94. data/bin/ix-hypothesis +546 -0
  95. data/bin/ix-ids +10 -0
  96. data/bin/ix-image-generate +3 -0
  97. data/bin/ix-image-to-base64 +9 -0
  98. data/bin/ix-increments +16 -0
  99. data/bin/ix-indent +42 -0
  100. data/bin/ix-indent-to-dot +36 -0
  101. data/bin/ix-int +5 -0
  102. data/bin/ix-interpolate +5 -0
  103. data/bin/ix-ips +4 -0
  104. data/bin/ix-jd +13 -0
  105. data/bin/ix-join +15 -0
  106. data/bin/ix-js-classic-functions +9 -0
  107. data/bin/ix-json-append +17 -0
  108. data/bin/ix-json-array-to-records +10 -0
  109. data/bin/ix-json-format +31 -0
  110. data/bin/ix-json-grep +16 -0
  111. data/bin/ix-json-interpolate +17 -0
  112. data/bin/ix-json-key +40 -0
  113. data/bin/ix-json-key-value +14 -0
  114. data/bin/ix-json-keys +12 -0
  115. data/bin/ix-json-merge +11 -0
  116. data/bin/ix-json-paths +61 -0
  117. data/bin/ix-json-paths-pretty +2 -0
  118. data/bin/ix-json-pp +11 -0
  119. data/bin/ix-json-query +14 -0
  120. data/bin/ix-json-records-to-array +13 -0
  121. data/bin/ix-json-remove-key +15 -0
  122. data/bin/ix-json-replace-values +35 -0
  123. data/bin/ix-json-template +267 -0
  124. data/bin/ix-json-to-csv +19 -0
  125. data/bin/ix-json-to-dot +5 -0
  126. data/bin/ix-json-to-html-table +84 -0
  127. data/bin/ix-json-to-ruby-hash +13 -0
  128. data/bin/ix-json-to-table +21 -0
  129. data/bin/ix-json-to-table-2 +22 -0
  130. data/bin/ix-json-to-xml +1 -0
  131. data/bin/ix-json-values +13 -0
  132. data/bin/ix-jsonpp +14 -0
  133. data/bin/ix-lake +6 -0
  134. data/bin/ix-lemmatize +17 -0
  135. data/bin/ix-length +6 -0
  136. data/bin/ix-linkify +35 -0
  137. data/bin/ix-linkify-html +70 -0
  138. data/bin/ix-links +3 -0
  139. data/bin/ix-llp +247 -0
  140. data/bin/ix-llp-indent +20 -0
  141. data/bin/ix-llp2 +224 -0
  142. data/bin/ix-log +44 -0
  143. data/bin/ix-make-readable +13 -0
  144. data/bin/ix-man +14 -0
  145. data/bin/ix-math +6 -0
  146. data/bin/ix-maze +3 -0
  147. data/bin/ix-md5 +7 -0
  148. data/bin/ix-md5s +3 -0
  149. data/bin/ix-military +39 -0
  150. data/bin/ix-morse-to-text +76 -0
  151. data/bin/ix-mr-robot +13 -0
  152. data/bin/ix-multiply +8 -0
  153. data/bin/ix-mv +10 -0
  154. data/bin/ix-ncsa-date-to-timestamp +27 -0
  155. data/bin/ix-nested-list +23 -0
  156. data/bin/ix-nnjj +16 -0
  157. data/bin/ix-noeol +6 -0
  158. data/bin/ix-noise +7 -0
  159. data/bin/ix-normalize +69 -0
  160. data/bin/ix-numbers +4 -0
  161. data/bin/ix-numerate +16 -0
  162. data/bin/ix-occurrence +8 -0
  163. data/bin/ix-open +9 -0
  164. data/bin/ix-parse +17 -0
  165. data/bin/ix-pass +17 -0
  166. data/bin/ix-path +8 -0
  167. data/bin/ix-path-stats +21 -0
  168. data/bin/ix-pbcopy +9 -0
  169. data/bin/ix-pdf +4 -0
  170. data/bin/ix-percentage +103 -0
  171. data/bin/ix-permutations +12 -0
  172. data/bin/ix-pick +4 -0
  173. data/bin/ix-planning-tickets +27 -0
  174. data/bin/ix-prefix +7 -0
  175. data/bin/ix-pretty +3 -0
  176. data/bin/ix-print-and-run +15 -0
  177. data/bin/ix-psd-to-json +16 -0
  178. data/bin/ix-quote +12 -0
  179. data/bin/ix-rainbow +21 -0
  180. data/bin/ix-ramp +15 -0
  181. data/bin/ix-random-hypothesis +10 -0
  182. data/bin/ix-range +9 -0
  183. data/bin/ix-remove-colors +519 -0
  184. data/bin/ix-remove-empty-lines +12 -0
  185. data/bin/ix-remove-leading-spaces +11 -0
  186. data/bin/ix-remove-trailing-spaces +11 -0
  187. data/bin/ix-replace +6 -0
  188. data/bin/ix-replay +34 -0
  189. data/bin/ix-retab +13 -0
  190. data/bin/ix-reverse +5 -0
  191. data/bin/ix-right +3 -0
  192. data/bin/ix-rm +8 -0
  193. data/bin/ix-rot13 +9 -0
  194. data/bin/ix-rot3 +9 -0
  195. data/bin/ix-rps +50 -0
  196. data/bin/ix-ruby-constructor-arguments +7 -0
  197. data/bin/ix-ruby-methods +40 -0
  198. data/bin/ix-ruby-options +189 -0
  199. data/bin/ix-ruby-procs +40 -0
  200. data/bin/ix-ruby-put-vars +11 -0
  201. data/bin/ix-ruby-setter-methods +47 -0
  202. data/bin/ix-ruby-to-json +9 -0
  203. data/bin/ix-ruler +13 -0
  204. data/bin/ix-run +105 -0
  205. data/bin/ix-saldo +25 -0
  206. data/bin/ix-sat +10 -0
  207. data/bin/ix-scan +13 -0
  208. data/bin/ix-scrum +13 -0
  209. data/bin/ix-scrum-summary +12 -0
  210. data/bin/ix-sentence +23 -0
  211. data/bin/ix-sentencify-comments +12 -0
  212. data/bin/ix-show-tabs +5 -0
  213. data/bin/ix-show-trailing-spaces +10 -0
  214. data/bin/ix-shuffle +11 -0
  215. data/bin/ix-signature +7 -0
  216. data/bin/ix-size +9 -0
  217. data/bin/ix-slider +201 -0
  218. data/bin/ix-snake +25 -0
  219. data/bin/ix-split +9 -0
  220. data/bin/ix-stack +42 -0
  221. data/bin/ix-stack-2 +31 -0
  222. data/bin/ix-stamp +5 -0
  223. data/bin/ix-stats +11 -0
  224. data/bin/ix-stream +15 -0
  225. data/bin/ix-string-similarity +152 -0
  226. data/bin/ix-string-similarity2 +35 -0
  227. data/bin/ix-strip +6 -0
  228. data/bin/ix-substract +5 -0
  229. data/bin/ix-success +2 -0
  230. data/bin/ix-suffix +7 -0
  231. data/bin/ix-sum +10 -0
  232. data/bin/ix-swap +3 -0
  233. data/bin/ix-symlink +13 -0
  234. data/bin/ix-tab +6 -0
  235. data/bin/ix-tabify +7 -0
  236. data/bin/ix-tac +11 -0
  237. data/bin/ix-task +20 -0
  238. data/bin/ix-technical +7 -0
  239. data/bin/ix-template +48 -0
  240. data/bin/ix-text-to-binary +7 -0
  241. data/bin/ix-text-to-dot +22 -0
  242. data/bin/ix-text-to-json +16 -0
  243. data/bin/ix-text-to-morse +72 -0
  244. data/bin/ix-tick +20 -0
  245. data/bin/ix-time +6 -0
  246. data/bin/ix-times +10 -0
  247. data/bin/ix-timestamp +79 -0
  248. data/bin/ix-timestamp-sort +16 -0
  249. data/bin/ix-timestamp2 +14 -0
  250. data/bin/ix-title +2 -0
  251. data/bin/ix-to-f +6 -0
  252. data/bin/ix-to-i +6 -0
  253. data/bin/ix-to-sym +6 -0
  254. data/bin/ix-to_i +6 -0
  255. data/bin/ix-todo +11 -0
  256. data/bin/ix-tokenize-for-template +25 -0
  257. data/bin/ix-transpose +48 -0
  258. data/bin/ix-tree +19 -0
  259. data/bin/ix-trim +5 -0
  260. data/bin/ix-truncate +22 -0
  261. data/bin/ix-ts +6 -0
  262. data/bin/ix-tsv-to-json +15 -0
  263. data/bin/ix-ucwords +11 -0
  264. data/bin/ix-unescape +8 -0
  265. data/bin/ix-unhtml +8 -0
  266. data/bin/ix-upcase +5 -0
  267. data/bin/ix-url-check +25 -0
  268. data/bin/ix-urls +46 -0
  269. data/bin/ix-vim +9 -0
  270. data/bin/ix-words +9 -0
  271. data/bin/ix-wrap +10 -0
  272. data/bin/ix-xy +81 -0
  273. data/bin/ix-zebra +122 -0
  274. metadata +597 -0
data/bin/ix-dto ADDED
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+
5
+ counter = 1
6
+ class_name = ARGV[0]
7
+
8
+ unless class_name
9
+ $stderr.puts "Please provide class name as argv 0"
10
+ exit 1
11
+ end
12
+
13
+ puts "class #{class_name}"
14
+
15
+ STDIN.each_line do |line|
16
+ begin
17
+ object = JSON.parse(line)
18
+
19
+ object.keys.each do |key|
20
+ puts " attr_accessor :#{key}"
21
+ end
22
+
23
+ puts ' def initialize(configuration)'
24
+
25
+ # default values.
26
+ object.keys.each do |key|
27
+ puts " @#{key} = #{object[key].inspect}"
28
+ end
29
+
30
+ # instantiated values.
31
+ object.keys.each do |key|
32
+ puts " @#{key} = configuration['key'] if configuration['key']"
33
+ end
34
+ puts ' end'
35
+ rescue => error
36
+ end
37
+ end
38
+
39
+ puts "end"
data/bin/ix-each ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each do |line|
4
+ command = "#{ARGV * ' '} #{line}"
5
+ puts command
6
+ # system command
7
+ end
data/bin/ix-edit ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tmpdir'
4
+
5
+ data = []
6
+
7
+ STDIN.each_line do |line|
8
+ data.push(line)
9
+ end
10
+
11
+ Dir.mktmpdir do |directory|
12
+ stdin_file = "#{directory}/stdin"
13
+ File.open(stdin_file, 'w+') do |file|
14
+ data.each do |line|
15
+ file.write(line)
16
+ end
17
+ end
18
+ system "vim #{stdin_file}"
19
+ puts File.read(stdin_file)
20
+ end
21
+
data/bin/ix-emails ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ EMAIL_REGEX = /[^ ]+@[^ ]+/i
4
+
5
+ STDIN.each_line do |line|
6
+ next unless line =~ EMAIL_REGEX
7
+ emails = line.scan(EMAIL_REGEX)
8
+ puts emails[0]
9
+ end
10
+
data/bin/ix-escape ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'uri'
4
+
5
+ STDIN.each_line do |line|
6
+ puts URI.encode(line.chomp)
7
+ end
8
+
data/bin/ix-extensions ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ix scan '\.\w+$' | sed 's/\.//g'
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+
5
+ if File.exists?(line.chomp)
6
+ puts "yes #{line.chomp}"
7
+ else
8
+ puts " no #{line.chomp}"
9
+ end
10
+ end
11
+
data/bin/ix-filename ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ filename = File.basename(line.chomp)
5
+ extension = File.extname(line.chomp)
6
+ puts filename.gsub(extension, '')
7
+ end
data/bin/ix-files ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ fname = line.chomp
5
+ if File.exists?(fname)
6
+ puts fname
7
+ end
8
+ end
9
+
data/bin/ix-first ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp[0..(ARGV[0].to_i || 10)]
5
+ end
6
+
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tree_node'
4
+
5
+ class Node
6
+ include Tree::Node
7
+ attr_accessor :level
8
+ attr_accessor :label
9
+ def initialize(level, label)
10
+ @level = level
11
+ @label = label
12
+ end
13
+ def to_s
14
+ "<Node level:#{level}, label:#{label}, children: #{children.size}>"
15
+ end
16
+ def relations
17
+ children.map do |child|
18
+ "#{label.inspect} -> #{child.label.inspect}"
19
+ end
20
+ end
21
+ end
22
+
23
+ SPACER = /\s\s\s\s/
24
+
25
+ nodes = []
26
+
27
+ STDIN.each_line do |line|
28
+ label = line.chomp.gsub(SPACER, '')
29
+ level = line.chomp.scan(SPACER).size
30
+ node = Node.new(level, label)
31
+ nodes.push(node)
32
+ nodes.reverse.find do |previous_node|
33
+ if previous_node.level < node.level
34
+ previous_node.add_child(node)
35
+ end
36
+ end
37
+ end
38
+
39
+ puts 'digraph diagram {'
40
+ puts 'rankdir = RL;'
41
+ nodes.first.map(:down) do |node|
42
+ node.relations.each do |relation|
43
+ puts relation
44
+ end
45
+ end
46
+ puts '}'
47
+
data/bin/ix-flip-flop ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # 6.times do |n|
4
+ # puts flip_flop(['dark', 'light'])
5
+ # end
6
+ def flip_flop(values)
7
+ raise 'hell: values is not an array' unless values.is_a?(Array)
8
+ @index = -1 unless @index
9
+ if @index < (values.size - 1)
10
+ @index += 1
11
+ else
12
+ @index = 0
13
+ end
14
+ # puts "#{@index} -> #{values[@index]}"
15
+ values[@index]
16
+ end
17
+
18
+ STDIN.each_line do |line|
19
+ puts "#{flip_flop(ARGV)} #{line}"
20
+ end
data/bin/ix-flow ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ template_1 = "%s%s.step('%s')(function (step) {\n%s});\n"
4
+ template_2 = "%s%s.step('%s').dependsOn('%s')(function (step) {\n%s});\n"
5
+
6
+ WHITESPACE_REGEX = /^\s+/
7
+
8
+ target_template = template_1
9
+ previus_step = nil
10
+
11
+ flow = ARGV[0] || 'flow'
12
+
13
+ STDIN.each_line do |line|
14
+ line.chomp!
15
+ whitespace_prefix = line.scan(WHITESPACE_REGEX)[0]
16
+ step_name = line.gsub(WHITESPACE_REGEX, '')
17
+ previus_step ||= whitespace_prefix
18
+ puts (target_template % [whitespace_prefix, flow, step_name, previus_step, whitespace_prefix])
19
+ target_template = template_2
20
+ previus_step = step_name
21
+ end
22
+
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ data = ''
4
+
5
+ STDIN.each_line do |line|
6
+ data << line
7
+ end
8
+
9
+ hash = eval(data)
10
+
11
+ def format(hash, level = 1)
12
+ padding_string = ' '
13
+ indent = (padding_string * (level - 1))
14
+ result = ''
15
+ result << "#{indent}{\n"
16
+ indent = (padding_string * (level))
17
+ hash.keys.sort.each do |key|
18
+ if hash[key].is_a?(Hash)
19
+ result << "\n"
20
+ result << "#{indent}#{key.inspect} => #{format(hash[key], level + 1)} \n"
21
+ result << "\n"
22
+ else
23
+ result << "#{indent}#{key.inspect} => #{hash[key].inspect}, \n"
24
+ end
25
+ end
26
+ indent = (padding_string * (level - 1))
27
+ result << "#{indent}}"
28
+ result << ',' if level > 1
29
+ result
30
+ end
31
+
32
+
33
+ puts format(hash)
34
+
35
+
36
+ # TODO: namespace, custom type objects, delegation
37
+ #
38
+ # must expect one hash per line.
39
+ # must detect object within arrays.
40
+ # must padd array contents.
41
+ # must dump array one per line or expand in case of objects.
42
+ # must detect string new lines.
43
+ # must receive flag for string indentation (default to false?)
44
+ # must dump keys in alphabetic order
45
+ #
46
+ # Formatter::Base
47
+ # Formatter::String < Formatter::Base
48
+ # Formatter::Integer < Formatter::Base
49
+ # Formatter::Array < Formatter::Base
50
+ # Formatter::Hash < Formatter::Base
51
+ #
52
+ # class Formatter::Base
53
+ # def serialize(indent)
54
+ # raise 'child must implement'
55
+ # end
56
+ # end
57
+ #
58
+ # basic object overrides/extensions.
59
+ # "".to_formatter #=> Formatter::String
60
+ # "".to_formatter.serialize(1) #=> String
61
+ #
data/bin/ix-gauge ADDED
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'isna'
5
+
6
+ # Percentage bar.
7
+ #
8
+ # items = (1..100).to_a
9
+ # size = (10..100).to_a
10
+ # length = size.shuffle.first
11
+ #
12
+ # items.each do |item|
13
+ # puts Percentage.new(100, item, length).to_bar
14
+ # end
15
+ #
16
+ class Percentage
17
+ def initialize(product, divisor, scale = 100)
18
+ @product = product
19
+ @scale = scale - 5
20
+ @pre_percentage = (divisor * @scale / product).to_f
21
+ @percentage = (@pre_percentage * 100 / @scale)
22
+ @divisor = divisor
23
+ end
24
+ def to_i
25
+ @percentage.to_i
26
+ end
27
+ def to_f
28
+ @percentage.to_f
29
+ end
30
+
31
+ # 0 ~ 50 green
32
+ # 50 ~ 80 yellow
33
+ # 80 ~ 100 red
34
+ def to_bar(color = true, bar = '|')
35
+ filling = (bar * @pre_percentage.to_f)
36
+ padding = 0
37
+ if color
38
+ if to_i >= 0 and to_i < 50
39
+ filling = (bar * @pre_percentage.to_i).to_ansi.green.to_s
40
+ end
41
+ if to_i >= 50 and to_i < 80
42
+ filling = (bar * @pre_percentage.to_i).to_ansi.yellow.to_s
43
+ end
44
+ if to_i >= 80
45
+ filling = (bar * @pre_percentage.to_i).to_ansi.red.to_s
46
+ end
47
+ if filling.size > 0
48
+ padding = 13
49
+ end
50
+ end
51
+ bindings = [filling, to_f, '%']
52
+ "[%-#{@scale + padding}s%5.1f%s]" % bindings
53
+ end
54
+ end
55
+
56
+ behavior = ARGV[0].to_i # 0 update, 1 print
57
+
58
+ $stdout.sync = true
59
+
60
+ $break = false
61
+
62
+ trap('INT') do
63
+ $break = true
64
+ end
65
+
66
+ at_exit do
67
+ puts ''
68
+ end
69
+
70
+ SPLIT_REGEX = /\d+/
71
+
72
+ STDIN.each_line do |line|
73
+ break if $break
74
+ next unless line =~ SPLIT_REGEX
75
+ chunks = line.scan(SPLIT_REGEX)
76
+ current_value = chunks[0].to_f
77
+ max_value = chunks[1].to_f
78
+ if behavior == 0
79
+ sleep 0.01
80
+ print "\b" * 2000
81
+ print Percentage.new(max_value, current_value, 50).to_bar + ' ' + line.chomp
82
+ else
83
+ puts Percentage.new(max_value, current_value, 50).to_bar + ' ' + line.chomp
84
+ end
85
+ end
86
+