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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 362167445d202cbbf3db2dbfdd52f3fd7665a5e85ac6aa657084b15b2caa85f6
4
+ data.tar.gz: 1b6c85e79eab94644b194ebb7612e7e2b916fd65abfd21a49d26c99468850c69
5
+ SHA512:
6
+ metadata.gz: ac80246f8e44632204bb35da1e0e7abc3b5424df6f254f479bc47387404ef05fb2c41f50d9182f158a8a274829ed6dddc95fdbed3b7e57bec08bf76894a74d54
7
+ data.tar.gz: e271231627968961f3f900b6c0c13d0422271fb9e100c63181125921bed19c9cbe4137ce4fa9bd2bf1696c07fa95556a119bf3cb44e9695491b353009016f546
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+
2
+ gem 'isna', '0.0.4'
3
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/bin/ix ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if ARGV[0]
4
+ command = "ix-#{ARGV[0]}"
5
+ args = ARGV
6
+ args.shift
7
+ system(command, *args)
8
+ else
9
+ dir = File.dirname($0)
10
+ Dir.glob("#{dir}/ix-*").each do |tool|
11
+ puts "#{File.basename(tool)}"
12
+ end
13
+ end
14
+
data/bin/ix-acronym ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ acronym = []
5
+ words = []
6
+ line.chomp!
7
+ new_line = line.gsub('_', ' ')
8
+ new_line.scan(/\w+/).each do |word|
9
+ acronym.push(word[0])
10
+ words.push(word)
11
+ end
12
+ upper_cased_acronym = acronym.map do |char|
13
+ char.upcase
14
+ end
15
+ expanded_acronym = words.map do |word|
16
+ word.downcase!
17
+ word = word[0].upcase + word[1..(word.size - 1)]
18
+ end
19
+ puts (upper_cased_acronym * '') + " - #{expanded_acronym * ' '}."
20
+ end
21
+
data/bin/ix-add ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ add_amount = ARGV[0].to_i
4
+
5
+ STDIN.each_line do |line|
6
+ puts(line.to_i + add_amount)
7
+ end
8
+
data/bin/ix-append ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp
5
+ end
6
+
7
+ print ARGV[0]
8
+
data/bin/ix-arguments ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ arguments = []
4
+
5
+ STDIN.each_line do |line|
6
+ arguments.push(line.chomp)
7
+ end
8
+
9
+ template = "(%s)"
10
+ bindings = [(arguments * ', ')]
11
+ puts template % bindings
12
+
data/bin/ix-array ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ array = []
4
+
5
+ STDIN.each_line do |line|
6
+ item = line.chomp
7
+ if item =~ /^\d+$/
8
+ item = item.to_i
9
+ end
10
+ array << item
11
+ end
12
+
13
+ puts '['
14
+ array.each do |item|
15
+ puts ' ' + item.inspect + ','
16
+ end
17
+ puts ']'
data/bin/ix-ascii ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system 'seq 33 126 | ix chr | ix numerate'
data/bin/ix-avg ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ sum = 0
4
+
5
+ count = 0
6
+
7
+ STDIN.each_line do |line|
8
+ count += 1
9
+ sum += line.to_i
10
+ end
11
+
12
+ if count > 0
13
+ puts (sum / count)
14
+ else
15
+ puts 'count is zero'
16
+ end
17
+
18
+
data/bin/ix-aws-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 = '!@#$%^&*()_+-=[]{}|\''.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-banner ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ banner -w 30 | ix box2 | ix transpose | ix tac
data/bin/ix-base ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def decode(base, string)
4
+ data = ((0..9).to_a + ('a'..'z').to_a + ('A'..'Z').to_a) + ['+', '/']
5
+ if base > data.size
6
+ raise "Max base is: #{data.size}"
7
+ end
8
+ total = 0
9
+ count = 0
10
+ string.reverse.each_char do |char|
11
+ if char =~ /^\d+$/
12
+ char = char.to_i
13
+ end
14
+ index = data.index(char)
15
+ total = total + (index * (base ** count))
16
+ count += 1
17
+ end
18
+ total
19
+ end
20
+
21
+ STDIN.each_line do |line|
22
+ puts decode(ARGV[0].to_i, line.chomp)
23
+ end
24
+
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts "<img src='#{line.chomp!}' />"
5
+ end
6
+
data/bin/ix-basename ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # transforms paths from stdin to a list of basenames
4
+
5
+ STDIN.each_line do |path|
6
+ puts File.basename(path)
7
+ end
8
+
data/bin/ix-bash-to-md ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lines = []
4
+
5
+ STDIN.each_line do |line|
6
+ lines.push(line)
7
+ end
8
+
9
+ data = (lines * '')
10
+
11
+ chunks = data.split('#')
12
+
13
+ chunks.each_with_index do |chunk, index|
14
+ puts ''
15
+ puts index
16
+ puts chunk
17
+ end
data/bin/ix-bcat ADDED
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Bcat
4
+
5
+ # Converts ANSI color sequences to HTML.
6
+ #
7
+ # The ANSI module is based on code from the following libraries:
8
+ #
9
+ # ansi2html.sh:
10
+ # http://github.com/pixelb/scripts/blob/master/scripts/ansi2html.sh
11
+ #
12
+ # HTML::FromANSI:
13
+ # http://cpansearch.perl.org/src/NUFFIN/HTML-FromANSI-2.03/lib/HTML/FromANSI.pm
14
+ class ANSI
15
+ ESCAPE = "\x1b"
16
+
17
+ # Linux console palette
18
+ STYLES = {
19
+ 'ef0' => 'color:#000',
20
+ 'ef1' => 'color:#A00',
21
+ 'ef2' => 'color:#0A0',
22
+ 'ef3' => 'color:#A50',
23
+ 'ef4' => 'color:#00A',
24
+ 'ef5' => 'color:#A0A',
25
+ 'ef6' => 'color:#0AA',
26
+ 'ef7' => 'color:#AAA',
27
+ 'ef8' => 'color:#555',
28
+ 'ef9' => 'color:#F55',
29
+ 'ef10' => 'color:#5F5',
30
+ 'ef11' => 'color:#FF5',
31
+ 'ef12' => 'color:#55F',
32
+ 'ef13' => 'color:#F5F',
33
+ 'ef14' => 'color:#5FF',
34
+ 'ef15' => 'color:#FFF',
35
+ 'eb0' => 'background-color:#000',
36
+ 'eb1' => 'background-color:#A00',
37
+ 'eb2' => 'background-color:#0A0',
38
+ 'eb3' => 'background-color:#A50',
39
+ 'eb4' => 'background-color:#00A',
40
+ 'eb5' => 'background-color:#A0A',
41
+ 'eb6' => 'background-color:#0AA',
42
+ 'eb7' => 'background-color:#AAA',
43
+ 'eb8' => 'background-color:#555',
44
+ 'eb9' => 'background-color:#F55',
45
+ 'eb10' => 'background-color:#5F5',
46
+ 'eb11' => 'background-color:#FF5',
47
+ 'eb12' => 'background-color:#55F',
48
+ 'eb13' => 'background-color:#F5F',
49
+ 'eb14' => 'background-color:#5FF',
50
+ 'eb15' => 'background-color:#FFF'
51
+ }
52
+
53
+ ##
54
+ # The default xterm 256 colour palette
55
+
56
+ (0..5).each do |red|
57
+ (0..5).each do |green|
58
+ (0..5).each do |blue|
59
+ c = 16 + (red * 36) + (green * 6) + blue
60
+ r = red > 0 ? red * 40 + 55 : 0
61
+ g = green > 0 ? green * 40 + 55 : 0
62
+ b = blue > 0 ? blue * 40 + 55 : 0
63
+ STYLES["ef#{c}"] = "color:#%2.2x%2.2x%2.2x" % [r, g, b]
64
+ STYLES["eb#{c}"] = "background-color:#%2.2x%2.2x%2.2x" % [r, g, b]
65
+ end
66
+ end
67
+ end
68
+
69
+ (0..23).each do |gray|
70
+ c = gray+232
71
+ l = gray*10 + 8
72
+ STYLES["ef#{c}"] = "color:#%2.2x%2.2x%2.2x" % [l, l, l]
73
+ STYLES["eb#{c}"] = "background-color:#%2.2x%2.2x%2.2x" % [l, l, l]
74
+ end
75
+
76
+ def initialize(input)
77
+ @input =
78
+ if input.respond_to?(:to_str)
79
+ [input]
80
+ elsif !input.respond_to?(:each)
81
+ raise ArgumentError, "input must respond to each"
82
+ else
83
+ input
84
+ end
85
+ @stack = []
86
+ end
87
+
88
+ def to_html
89
+ buf = []
90
+ each { |chunk| buf << chunk }
91
+ buf.join
92
+ end
93
+
94
+ def each
95
+ buf = ''
96
+ @input.each do |chunk|
97
+ buf << chunk
98
+ tokenize(buf) do |tok, data|
99
+ case tok
100
+ when :text
101
+ yield data
102
+ when :display
103
+ case code = data
104
+ when 0 ; yield reset_styles if @stack.any?
105
+ when 1 ; yield push_tag("b") # bright
106
+ when 2 ; #dim
107
+ when 3, 4 ; yield push_tag("u")
108
+ when 5, 6 ; yield push_tag("blink")
109
+ when 7 ; #reverse
110
+ when 8 ; yield push_style("display:none")
111
+ when 9 ; yield push_tag("strike")
112
+ when 30..37 ; yield push_style("ef#{code - 30}")
113
+ when 40..47 ; yield push_style("eb#{code - 40}")
114
+ when 90..97 ; yield push_style("ef#{8 + code - 90}")
115
+ when 100..107 ; yield push_style("eb#{8 + code - 100}")
116
+ end
117
+ when :xterm256
118
+ code = data
119
+ yield push_style("ef#{code}")
120
+ end
121
+ end
122
+ end
123
+ yield buf if !buf.empty?
124
+ yield reset_styles if @stack.any?
125
+ self
126
+ end
127
+
128
+ def push_tag(tag, style=nil)
129
+ style = STYLES[style] if style && !style.include?(':')
130
+ @stack.push tag
131
+ [ "<#{tag}",
132
+ (" style='#{style}'" if style),
133
+ ">"
134
+ ].join
135
+ end
136
+
137
+ def push_style(style)
138
+ push_tag "span", style
139
+ end
140
+
141
+ def reset_styles
142
+ stack, @stack = @stack, []
143
+ stack.reverse.map { |tag| "</#{tag}>" }.join
144
+ end
145
+
146
+ def tokenize(text)
147
+ tokens = [
148
+ # characters to remove completely
149
+ [/\A\x08+/, lambda { |m| '' }],
150
+
151
+ [/\A\x1b\[38;5;(\d+)m/, lambda { |m| yield :xterm256, $1.to_i; '' } ],
152
+
153
+ # ansi escape sequences that mess with the display
154
+ [/\A\x1b\[((?:\d{1,3};?)+|)m/, lambda { |m|
155
+ m = '0' if m.strip.empty?
156
+ m.chomp(';').split(';').
157
+ each { |code| yield :display, code.to_i };
158
+ '' }],
159
+
160
+ # malformed sequences
161
+ [/\A\x1b\[?[\d;]{0,3}/, lambda { |m| '' }],
162
+
163
+ # real text
164
+ [/\A([^\x1b\x08]+)/m, lambda { |m| yield :text, m; '' }]
165
+ ]
166
+
167
+ while (size = text.size) > 0
168
+ tokens.each do |pattern, sub|
169
+ break if text.sub!(pattern) { sub.call($1) }
170
+ end
171
+ break if text.size == size
172
+ end
173
+ end
174
+
175
+ end
176
+ end
177
+
178
+ data = []
179
+
180
+ STDIN.each_line do |line|
181
+ data.push(line)
182
+ end
183
+
184
+ puts Bcat::ANSI.new(data).to_html
data/bin/ix-bellgrep ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'json'
5
+
6
+ regex = /#{ARGV[0]}/
7
+
8
+ STDIN.each_line do |line|
9
+ if line =~ regex
10
+ object = {}
11
+ object['timestamp'] = Time.now.tv_sec
12
+ object['line'] = line.chomp
13
+ object['match'] = line.scan(regex)
14
+ puts object.to_json
15
+ $stderr.puts "\a"
16
+ end
17
+ end
data/bin/ix-bench ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts ''
5
+ puts "log('before: ' + #{line.chomp.inspect})"
6
+ puts line
7
+ puts "log(' after: ' + #{line.chomp.inspect})"
8
+ end
9
+
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # ix scan '\d+' | ix base 2 | ix chr
4
+
5
+ STDIN.each_line do |line|
6
+ print line.to_i(2).chr
7
+ end
8
+
data/bin/ix-blackbox ADDED
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ inputs = []
4
+ outputs = []
5
+ system = 'n/a'
6
+
7
+ INPUT_REGEX = /^\w+/
8
+ SYSTEM_REGEX = /^\s{4}\w+/
9
+ OUTPUT_REGEX = /^\s{8}\w+/
10
+ SPACE_REGEX = /^\s+/
11
+
12
+ STDIN.each_line do |line|
13
+
14
+ line.chomp!
15
+
16
+ if line =~ INPUT_REGEX
17
+ inputs.push(line.gsub(SPACE_REGEX, ''))
18
+ end
19
+
20
+ if line =~ OUTPUT_REGEX
21
+ outputs.push(line.gsub(SPACE_REGEX, ''))
22
+ end
23
+
24
+ if line =~ SYSTEM_REGEX
25
+ system = line.gsub(SPACE_REGEX, '')
26
+ end
27
+
28
+ end
29
+
30
+ TEMPLATE = '"%s" -> "%s"'
31
+
32
+ puts "digraph #{system} {
33
+ rankdir = LR;
34
+ "
35
+
36
+ inputs.each do |input|
37
+ puts TEMPLATE % [input, system]
38
+ end
39
+
40
+ outputs.each do |output|
41
+ puts TEMPLATE % [system, output]
42
+ end
43
+
44
+ puts '}'
45
+
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ inputs = []
4
+ outputs = []
5
+ system = 'n/a'
6
+
7
+ INPUT_REGEX = /^\w+/
8
+ SYSTEM_REGEX = /^\s{4}\w+/
9
+ OUTPUT_REGEX = /^\s{8}\w+/
10
+ SPACE_REGEX = /^\s+/
11
+
12
+ STDIN.each_line do |line|
13
+
14
+ line.chomp!
15
+
16
+ if line =~ INPUT_REGEX
17
+ inputs.push(line.gsub(SPACE_REGEX, ''))
18
+ end
19
+
20
+ if line =~ OUTPUT_REGEX
21
+ outputs.push(line.gsub(SPACE_REGEX, ''))
22
+ end
23
+
24
+ if line =~ SYSTEM_REGEX
25
+ system = line.gsub(SPACE_REGEX, '')
26
+ end
27
+
28
+ end
29
+
30
+ ROW_TEMPLATE = '
31
+ <tr>
32
+ <td>
33
+ %s
34
+ </td>
35
+ <td>
36
+ %s
37
+ </td>
38
+ <td>
39
+ %s
40
+ </td>
41
+ </tr>
42
+ '
43
+
44
+ ROW_HEADER_TEMPLATE = '
45
+ <tr>
46
+ <th>
47
+ %s
48
+ </th>
49
+ <th>
50
+ %s
51
+ </th>
52
+ <th>
53
+ %s
54
+ </th>
55
+ </tr>
56
+ '
57
+ puts HEADER = '<p> Fuctional Specification: %s </p>' % [system]
58
+
59
+ TABLE_OPENING = '<table border=1>'
60
+
61
+ TABLE_HEADER = '
62
+ <caption>
63
+ Fuctional Specification: %s
64
+ </caption>
65
+ %s
66
+ '
67
+
68
+ header = ROW_HEADER_TEMPLATE % [
69
+ 'Type',
70
+ 'Name',
71
+ 'Description'
72
+ ]
73
+
74
+ puts TABLE_OPENING
75
+
76
+ puts TABLE_HEADER % [system, header]
77
+
78
+ inputs.each do |input|
79
+ puts ROW_TEMPLATE % ['Input', input, '']
80
+ end
81
+
82
+ outputs.each do |output|
83
+ puts ROW_TEMPLATE % ['Output', output, '']
84
+ end
85
+
86
+ puts '</table>'
data/bin/ix-blamer ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ extend = false
4
+
5
+ if ARGV[0] == '-e'
6
+ extend = true
7
+ end
8
+
9
+ Dir.glob('**/*.rb').each do |file|
10
+ system "git blame #{file} | awk '{print $2}' | sort | uniq -c | sort -n | sed 's/(//g' | ix swap > /tmp/blamer.cache"
11
+ if extend
12
+ output = `cat /tmp/blamer.cache | ix percentage`
13
+ puts file
14
+ output.each_line do |line|
15
+ puts " #{line}"
16
+ end
17
+ puts ''
18
+ next
19
+ end
20
+ percent = `cat /tmp/blamer.cache | ix percentage | tail -2 | head -1`
21
+ puts "#{percent.chomp} #{file}"
22
+ end
23
+
data/bin/ix-box ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def boxify(string)
4
+ join = '+'
5
+ frame = '-'
6
+ wall = '|'
7
+ width = 0
8
+ height = 0
9
+ string.each_line do |line|
10
+ if line.size > width
11
+ width = line.chomp.size
12
+ end
13
+ height += 1
14
+ end
15
+ puts "#{join}#{frame}#{frame * width}#{frame}#{join}"
16
+ string.each_line do |line|
17
+ puts "#{wall} #{line.chomp}#{' ' * (width - line.chomp.size)} #{wall}"
18
+ end
19
+ puts "#{join}#{frame}#{frame * width}#{frame}#{join}"
20
+ end
21
+
22
+ box = ARGV[0] == '-b'
23
+
24
+ if box
25
+ text = ''
26
+ STDIN.each_line do |line|
27
+ text << line
28
+ end
29
+ boxify(text)
30
+ else
31
+ STDIN.each_line do |line|
32
+ boxify(line.chomp)
33
+ end
34
+ end
35
+
data/bin/ix-box2 ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ix transpose | ix box -b | ix transpose
data/bin/ix-box3 ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ix transpose | ix box2 | ix transpose
data/bin/ix-camel ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ line = line.chomp
5
+ line.gsub!(/\W+/, ' ')
6
+ line.gsub!(/\s+/, '_')
7
+ line.gsub!(/^[_]+|[_]+$/, '')
8
+ line.gsub!(/_/, ' ')
9
+ line.downcase!
10
+ words = line.scan(/\w+/)
11
+ capitalized = words.map do |word|
12
+ word = word.to_s
13
+ word[0] = word[0].upcase
14
+ word
15
+ end
16
+ puts capitalized.join('')
17
+ end
data/bin/ix-cat ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+
3
+ application=$1
4
+ target_path=`dirname $0`
5
+ target_file="$target_path/ix-$application"
6
+
7
+ cat $target_file
data/bin/ix-catafter ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Usage: catafter [pattern]
4
+
5
+ unless ARGV[0]
6
+ $stderr.puts 'give me a pattern.'
7
+ exit 1
8
+ end
9
+
10
+ pattern = Regexp.new ARGV[0]
11
+
12
+ flag = false
13
+
14
+ STDIN.each do |line|
15
+ flag = true if line =~ pattern
16
+ puts line if flag
17
+ end
18
+