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-mr-robot ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system 'say mister robot'
4
+
5
+ File.open('/tmp/x', 'w+') do |file|
6
+ STDIN.each_line do |line|
7
+ file.print line
8
+ instruction = "say '#{line.chomp.inspect}'"
9
+ puts instruction
10
+ system instruction
11
+ end
12
+ end
13
+
data/bin/ix-multiply ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ multiplier = ARGV[0].to_f
4
+
5
+ STDIN.each_line do |line|
6
+ puts line.to_f * multiplier
7
+ end
8
+
data/bin/ix-mv ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ source_application = ARGV[0]
4
+ target_application = ARGV[1]
5
+ target_path = File.dirname(__FILE__)
6
+ source_file = "#{target_path}/ix-#{source_application}"
7
+ target_file = "#{target_path}/ix-#{target_application}"
8
+
9
+ system "mv #{source_file} #{target_file}"
10
+
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'time'
4
+
5
+ STDIN.each_line do |line|
6
+
7
+ day, year, hour, minute, second, timezone = line.scan(/\d+/)
8
+ month = line.scan(/\/[^0-9]\w+/)[0].scan(/\w+/)[0]
9
+
10
+ day = day.to_i
11
+ year = year.to_i
12
+ hour = hour.to_i
13
+ minute = minute.to_i
14
+ second = second.to_i
15
+
16
+ # puts line.inspect
17
+ # puts [day, month, year, hour, minute, second, timezone].inspect
18
+
19
+ time = Time.parse("#{year}-#{month}-#{day} #{hour}:#{minute}:#{second}", timezone)
20
+
21
+ # puts time.tv_sec
22
+
23
+ puts "[ 'not', new Date(#{time.year}, #{time.month}, #{time.day}, #{time.hour}, #{time.min}, #{time.sec}), new Date(#{time.year}, #{time.month}, #{time.day}, #{time.hour}, #{time.min}, #{time.sec}) ],"
24
+
25
+
26
+ end
27
+
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ regex = /^\w+/
4
+ prefix = 'n/a'
5
+
6
+ STDIN.each_line do |line|
7
+
8
+ if line =~ regex
9
+ prefix = line
10
+ next
11
+ end
12
+
13
+ item = line.gsub(/^\s+/, '')
14
+ item = item.chomp
15
+
16
+ array = []
17
+ array.push(prefix.chomp)
18
+ array.push(item)
19
+
20
+ puts array.join("\t")
21
+
22
+ end
23
+
data/bin/ix-nnjj ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each do |line|
4
+ adjectives = line.scan(/JJ (\w+)/)
5
+ nouns = line.scan(/NN (\w+)/)
6
+ if adjectives.size > 0
7
+ adjectives.each do |adjective|
8
+ puts "adjective: #{adjective[0]}"
9
+ end
10
+ end
11
+ if nouns.size > 0
12
+ nouns.each do |noun|
13
+ puts "noun: #{noun[0]}"
14
+ end
15
+ end
16
+ end
data/bin/ix-noeol ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ print line.chomp
5
+ end
6
+
data/bin/ix-noise ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $stdout.sync = true
4
+
5
+ loop do
6
+ puts (1..100).to_a.shuffle.first
7
+ end
data/bin/ix-normalize ADDED
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'optparse'
5
+
6
+ @configuration = {}
7
+
8
+ @configuration[:scale_min] = 0
9
+ @configuration[:scale_max] = 10
10
+
11
+ OptionParser.new do |opts|
12
+
13
+ opts.banner = "USAGE: #{File.basename($0)} [OPTIONS]"
14
+
15
+ help_string = 'Minimun value for future scaling normalization.'
16
+ opts.on('-i', '--min [N]', OptionParser::DecimalInteger, help_string) do |value|
17
+ @configuration[:scale_min] = value
18
+ end
19
+
20
+ help_string = 'Maximum value for future scaling normalization.'
21
+ opts.on('-a', '--max [N]', OptionParser::DecimalInteger, help_string) do |value|
22
+ @configuration[:scale_max] = value
23
+ end
24
+
25
+ opts.on('--extra') do |value|
26
+ puts "Normalizes numeric data, expects two columns from STDIN:"
27
+ puts "key and value, key is a string without spaces, value is a number."
28
+ puts "Original data will printed and suffixed by their corresponding normalized values."
29
+ exit 0
30
+ end
31
+
32
+ end.parse!
33
+
34
+
35
+
36
+ $stdin.sync = true
37
+
38
+ sample = { }
39
+
40
+ STDIN.each do |line|
41
+ key, value = line.split(/\s+/)
42
+ sample[key] ||= {}
43
+ sample[key][:data] ||= []
44
+ if sample[key][:total]
45
+ sample[key][:total] += value.to_f
46
+ else
47
+ sample[key][:total] = value.to_f
48
+ end
49
+ sample[key][:data] << value.to_f
50
+ end
51
+
52
+ class Array
53
+ # Future Scaling
54
+ def normalize(scale_min, scale_max)
55
+ map do |number|
56
+ divisor = (number - min) * (scale_max - scale_min)
57
+ dividend = max - min
58
+ divisor / dividend
59
+ end
60
+ end
61
+ end
62
+
63
+ sample.keys.each do |key|
64
+ normalized = sample[key][:data].normalize(@configuration[:scale_min], @configuration[:scale_max])
65
+ sample[key][:data].size.times do |needle|
66
+ puts "#{key} #{sample[key][:data][needle]} #{normalized[needle]} "
67
+ end
68
+ end
69
+
data/bin/ix-numbers ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system "ix scan '\d+'"
4
+
data/bin/ix-numerate ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ padding = ARGV[0].to_i
4
+ suffix = ARGV[1].to_s
5
+ counter = ARGV[2].to_i
6
+
7
+ STDIN.each_line do |line|
8
+ counter += 1
9
+ if padding == 0
10
+ template = "%s%s %s"
11
+ else
12
+ template = "%0.#{padding}d%s %s"
13
+ end
14
+
15
+ puts template % [counter, suffix, line]
16
+ end
data/bin/ix-occurrence ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ line = line.chomp
5
+ size = line.scan(/#{ARGV[0]}/).to_a.size
6
+ puts "%6d %s" % [size, line]
7
+ end
8
+
data/bin/ix-open ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ command = line.chomp
5
+ next if command =~ /^\s*$/
6
+ command.gsub!(/^\s+/, '')
7
+ system "open #{command.inspect}"
8
+ end
9
+
data/bin/ix-parse ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ counter = 0
5
+ STDIN.each_line do |line|
6
+ counter += 1
7
+ key, value = line.split(' : ')
8
+ prefix = key.scan(/(^\s+)(.*)/)[0][0]
9
+ key.gsub!(/^\s+/, '')
10
+ value.gsub!(/^\s+/, '')
11
+ value.gsub!(/,$/, '')
12
+ puts prefix + "#{('dir_' + counter.to_s).inspect} : {"
13
+ puts prefix + ' "source" : ' + "#{key.chomp},"
14
+ puts prefix + ' "target" : ' + "#{value.chomp}"
15
+ puts prefix + '},'
16
+ end
17
+
data/bin/ix-pass ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lower = ('0'..'Z').to_a
4
+ upper = ('0'..'z').to_a
5
+ extra = '!"#$%&\'()0=~|@`{}[]*:,./_<>?_;:]L*-+'.scan(/./)
6
+
7
+ possiblities = lower + upper + extra
8
+
9
+ output_string = ''
10
+ output_length = (ARGV[0] || 8).to_i
11
+
12
+ output_length.times do |n|
13
+ output_string << possiblities.shuffle.first()
14
+ end
15
+
16
+ puts output_string
17
+
data/bin/ix-path ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ WORDS_REGEX = /\w+/
4
+
5
+ STDIN.each_line do |line|
6
+ words = line.scan(WORDS_REGEX)
7
+ puts File.join(*words)
8
+ end
data/bin/ix-path-stats ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def build_branch(hash, string, split)
4
+ chunks = string.split(split)
5
+ clean_chunks = chunks - [""]
6
+ puts clean_chunks.inspect
7
+ dynamic_code = ""
8
+ clean_chunks.each do |chunk|
9
+ dynamic_code << "['#{chunk}'] || = {}\n"
10
+ end
11
+ puts dynamic_code
12
+ end
13
+
14
+ tree = {}
15
+
16
+ STDIN.each_line do |line|
17
+ build_branch(tree, line.chomp, '/')
18
+ end
19
+
20
+ puts tree.inspect
21
+
data/bin/ix-pbcopy ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ File.open('/tmp/ix-pbcopy', 'w+') do |file|
4
+ STDIN.each_line do |line|
5
+ file.print line.chomp
6
+ end
7
+ end
8
+
9
+ system 'cat /tmp/ix-pbcopy | pbcopy'
data/bin/ix-pdf ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ groff -Tps | open -f -a /Applications/Preview.app/
4
+
data/bin/ix-percentage ADDED
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ # Percentage bar.
5
+ #
6
+ # items = (1..100).to_a
7
+ # size = (10..100).to_a
8
+ # length = size.shuffle.first
9
+ #
10
+ # items.each do |item|
11
+ # puts Percentage.new(100, item, length).to_bar
12
+ # end
13
+ #
14
+ class Percentage
15
+ def initialize(product, divisor, scale = 100)
16
+ @product = product
17
+ @scale = scale - 5
18
+ @pre_percentage = (divisor * @scale / product).to_f
19
+ @percentage = (@pre_percentage * 100 / @scale)
20
+ @divisor = divisor
21
+ end
22
+ def to_i
23
+ @percentage.to_i
24
+ end
25
+ def to_f
26
+ @percentage.to_f
27
+ end
28
+
29
+ # 0 ~ 50 green
30
+ # 50 ~ 80 yellow
31
+ # 80 ~ 100 red
32
+ def to_bar(color = true, bar = '|')
33
+ filling = (bar * @pre_percentage.to_i)
34
+ padding = 0
35
+ if color
36
+ if to_i >= 0 and to_i < 50
37
+ filling = "" + (bar * @pre_percentage.to_f) + ""
38
+ end
39
+ if to_i >= 50 and to_i < 80
40
+ filling = "" + (bar * @pre_percentage.to_f) + ""
41
+ end
42
+ if to_i >= 80
43
+ filling = "" + (bar * @pre_percentage.to_f) + ""
44
+ end
45
+ if filling.size > 0
46
+ padding = 13
47
+ end
48
+ end
49
+ bindings = [filling, to_f, '%', @divisor]
50
+ "[%-#{@scale + padding}s%7.3f%s] %10.2f incidents for" % bindings
51
+ end
52
+ end
53
+
54
+
55
+ class Array
56
+
57
+ def mean
58
+ product = 0;
59
+ each do |number|
60
+ product += number
61
+ end
62
+ product / size
63
+ end
64
+
65
+ def product
66
+ sum = 0;
67
+ each do |number|
68
+ sum += number
69
+ end
70
+ sum
71
+ end
72
+
73
+ def to_percentage
74
+ Percentage.new(product, hash.keys.size)
75
+ end
76
+
77
+ end
78
+
79
+
80
+ hash = {}
81
+
82
+ STDIN.each_line do |line|
83
+ chunks = line.split(/\s+/)
84
+ hash[chunks[0]] ||= []
85
+ hash[chunks[0]] << chunks[1].to_f
86
+ end
87
+
88
+ total = 0
89
+ hash.keys.each do |key|
90
+ array = hash[key]
91
+ total += array.product
92
+ end
93
+
94
+ hash.keys.each do |key|
95
+ array = hash[key]
96
+ p = Percentage.new(total, array.product, 50)
97
+
98
+ template = "%s %s"
99
+ bindings = [p.to_bar, key]
100
+ puts template % bindings
101
+ end
102
+
103
+ puts "Total: #{total}"
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ items = []
4
+
5
+ STDIN.each_line do |line|
6
+ items.push(line.chomp)
7
+ end
8
+
9
+ items.permutation.each do |permutation|
10
+ puts permutation.inspect
11
+ end
12
+
data/bin/ix-pick ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system 'ix shuffle | tail -1'
4
+
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ feature = ARGV[0] || 'FEATURE'
4
+
5
+ list = []
6
+
7
+ STDIN.each_line do |line|
8
+ list.push(line.chomp)
9
+ end
10
+
11
+ derivates = []
12
+ derivates.push('Specification')
13
+ derivates.push('Implement')
14
+ derivates.push('Test on Local')
15
+ derivates.push('Test on Staging')
16
+ derivates.push('Test on Production')
17
+
18
+ if ARGV.size > 1
19
+ puts ARGV.size
20
+ derivates = ARGV[1..(ARGV.size - 1)]
21
+ end
22
+
23
+ derivates.each do |derivate|
24
+ list.each do |string|
25
+ puts "#{feature}: #{derivate}: #{string}"
26
+ end
27
+ end
data/bin/ix-prefix ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ prefix = ARGV.join(' ')
4
+
5
+ STDIN.each_line do |line|
6
+ puts prefix + line.chomp
7
+ end
data/bin/ix-pretty ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ix json-key _timestamp message | ix timestamp 1000
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $running = true
4
+
5
+ trap('INT') do
6
+ $running = true
7
+ end
8
+
9
+ STDIN.each_line do |line|
10
+ break unless $running
11
+ command = line.chomp
12
+ puts
13
+ puts "command: #{command}"
14
+ system command
15
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tmpdir'
4
+ require 'psd'
5
+ require 'json'
6
+
7
+ Dir.mktmpdir do |temporal_directory|
8
+ data = STDIN.read
9
+ psd_document_path = "#{temporal_directory}/document.psd"
10
+ File.open(psd_document_path, 'w+') do |file|
11
+ file.write(data)
12
+ end
13
+ PSD.open(psd_document_path) do |psd|
14
+ puts psd.tree.to_hash.to_json
15
+ end
16
+ end
data/bin/ix-quote ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ # puts line.chomp.inspect
5
+ template = "%<quote_start>s%<content>s%<quote_end>s"
6
+ bindings = {
7
+ :quote_start => ARGV[0] || '"',
8
+ :quote_end => ARGV[1] || '"',
9
+ :content => line.chomp
10
+ }
11
+ puts format(template, bindings)
12
+ end
data/bin/ix-rainbow ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'isna'
4
+
5
+ colors = [:green, :black, :red, :black]
6
+
7
+ STDIN.each_line do |line|
8
+ needle = 0
9
+ prefix = line.scan(/^\s+/)[0]
10
+ words = line.split(' ')
11
+ print prefix
12
+ words.each do |word|
13
+ print word.to_ansi.send(colors[needle]).to_s + ' '
14
+ needle += 1
15
+ if needle > colors.size - 1
16
+ needle = 0
17
+ end
18
+ end
19
+ puts ''
20
+ end
21
+
data/bin/ix-ramp ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lines = []
4
+
5
+ STDIN.each_line do |line|
6
+ lines.push(line.chomp)
7
+ end
8
+
9
+ lines.sort! do |a, b|
10
+ a.size <=> b.size
11
+ end
12
+
13
+ lines.each do |line|
14
+ puts line
15
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ values = [5, 7, 9, 4, 5, 9, 6]
4
+
5
+ 3.times do |n|
6
+ 15.times do |nn|
7
+ puts "group-#{n + 1} #{values.shuffle.first}"
8
+ end
9
+ end
10
+
data/bin/ix-range ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ range_opening = ARGV[0].to_i
4
+ range_closing = ARGV[1].to_i
5
+
6
+ (range_opening..range_closing).to_a.each do |number|
7
+ puts number
8
+ end
9
+