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
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ line.unpack("C*").each do |char|
5
+ puts char.to_i.to_s(2) + ' '
6
+ end
7
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+
4
+ puts 'digraph G {'
5
+ puts 'rankdir = LR;'
6
+
7
+ QUOTED_NODES_REGEX = /("[^"]+")(\s*)("[^"]+")/
8
+
9
+ template = '"%s" -> "%s"'
10
+ STDIN.each_line do |line|
11
+ line = line.chomp
12
+ if line =~ QUOTED_NODES_REGEX
13
+ list = line.scan(QUOTED_NODES_REGEX)
14
+ node_a, space, node_b = list[0]
15
+ else
16
+ node_a, node_b = line.split(' ')
17
+ end
18
+ puts template % [node_a, node_b]
19
+ end
20
+
21
+ puts '}'
22
+
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'json'
5
+
6
+ values = ARGV
7
+
8
+ STDIN.each_line do |line|
9
+ words = line.split(' ')
10
+ object = {}
11
+ values.each_with_index do |value, index|
12
+ object[value] = words[index]
13
+ end
14
+ puts object.to_json
15
+ end
16
+
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Morse
4
+
5
+ MAPPING = {
6
+ 'a' => '.-',
7
+ 'b' => '-...',
8
+ 'c' => '-.-.',
9
+ 'd' => '-..',
10
+ 'e' => '.',
11
+ 'f' => '..-.',
12
+ 'g' => '--.',
13
+ 'h' => '....',
14
+ 'i' => '..',
15
+ 'j' => '.---',
16
+ 'k' => '-.-',
17
+ 'l' => '.-..',
18
+ 'm' => '--',
19
+ 'n' => '-.',
20
+ 'o' => '---',
21
+ 'p' => '.--.',
22
+ 'q' => '--.-',
23
+ 'r' => '.-.',
24
+ 's' => '...',
25
+ 't' => '-',
26
+ 'u' => '..-',
27
+ 'v' => '...-',
28
+ 'w' => '.--',
29
+ 'x' => '-..-',
30
+ 'y' => '-.--',
31
+ 'z' => '--..',
32
+ '0' => '-----',
33
+ '1' => '.----',
34
+ '2' => '..---',
35
+ '3' => '...--',
36
+ '4' => '....-',
37
+ '5' => '.....',
38
+ '6' => '-....',
39
+ '7' => '--...',
40
+ '8' => '---..',
41
+ '9' => '----.',
42
+ ' ' => ' / ',
43
+ }
44
+
45
+ def self.text_to_morse(string)
46
+ result = ''
47
+ string.scan(/[a-zA-Z0-9]| /).each do |char|
48
+ result << MAPPING[char.downcase] + ' '
49
+ end
50
+ result
51
+ end
52
+
53
+ def self.morse_to_text(string)
54
+ result = ''
55
+ string.split(' / ').each do |word|
56
+ word.split(' ').each do |char|
57
+ MAPPING.each do |k, v|
58
+ if v == char
59
+ result << k
60
+ end
61
+ end
62
+ end
63
+ result << ' '
64
+ end
65
+ result
66
+ end
67
+
68
+ end
69
+
70
+ STDIN.each_line do |line|
71
+ puts Morse.text_to_morse(line)
72
+ end
data/bin/ix-tick ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $running = true
4
+
5
+ STDOUT.sync = true
6
+
7
+ shutdown = proc do
8
+ $running = false
9
+ $stderr.puts 'bye.'
10
+ end
11
+
12
+ trap('INT', &shutdown)
13
+ trap('QUIT', &shutdown)
14
+ trap('TERM', &shutdown)
15
+
16
+ STDIN.each_line do |line|
17
+ puts line.chomp
18
+ sleep (ARGV[0] || 1).to_i
19
+ break unless $running
20
+ end
data/bin/ix-time ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts "#{Time.now} #{line.chomp}"
5
+ end
6
+
data/bin/ix-times ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ times = ARGV[0].to_i
4
+
5
+ STDIN.each do |line|
6
+ times.times do
7
+ print line
8
+ end
9
+ end
10
+
data/bin/ix-timestamp ADDED
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $stdout.sync = true
4
+
5
+ if ARGV[0]
6
+ if ARGV[0] == '-h'
7
+ puts ''
8
+ puts 'Leyend below:'
9
+ puts ''
10
+ puts ' - [ diff ] Indicates the time elapsed since the previous line to the current line.'
11
+ puts ' - [ time ] Indicates the time elapsed since the beginning of time.'
12
+ puts ''
13
+ puts ' Please note that all times are shown in seconds'
14
+ puts ''
15
+ puts ''
16
+ exit 0
17
+ else
18
+ divide = 1000
19
+ end
20
+ else
21
+ divide = 1
22
+ end
23
+
24
+ previous = nil
25
+
26
+ diffs = []
27
+
28
+ regex_float = /[0-9]{10,13}\.\d+/
29
+ regex_int = /[0-9]{10,13}/
30
+
31
+ first_timestamp = false
32
+
33
+ STDIN.each_line do |line|
34
+ line.chomp!
35
+
36
+ timestamps = line.scan(regex_float)
37
+
38
+ if timestamps == []
39
+ timestamps = line.scan(regex_int)
40
+ end
41
+
42
+ if timestamps == []
43
+ next
44
+ end
45
+
46
+ timestamps.each do |timestamp|
47
+
48
+ unless first_timestamp
49
+ first_timestamp = Time.at(timestamps.first.to_f / divide)
50
+ end
51
+
52
+ date = Time.at(timestamp.to_f / divide)
53
+ previous = date unless previous
54
+ diff = (date - previous)
55
+ template = "%20s %s %20.5f < diff %10.5f < time -- %s"
56
+ bindings = []
57
+ bindings.push(timestamp)
58
+ bindings.push(date)
59
+ bindings.push(diff)
60
+ if ENV['REPLAY']
61
+ sleep diff
62
+ end
63
+ bindings.push(date - first_timestamp)
64
+ diffs.push(diff)
65
+ bindings.push(line)
66
+ puts template % bindings
67
+ previous = date
68
+ end
69
+
70
+ end
71
+
72
+ total = 0
73
+ diffs.each do |diff|
74
+ total += diff
75
+ end
76
+
77
+ puts ''
78
+ puts "# Total time elapsed: #{total}"
79
+ puts ''
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lines = {}
4
+
5
+ TIMESTAMP_REGEX = /[0-9]{10}\.\d+/
6
+
7
+ STDIN.each_line do |line|
8
+ if line =~ TIMESTAMP_REGEX
9
+ timestamp = line.scan(TIMESTAMP_REGEX)[0]
10
+ lines[timestamp] = line
11
+ end
12
+ end
13
+
14
+ lines.keys.sort.each do |timestap|
15
+ puts lines[timestap].chomp
16
+ end
data/bin/ix-timestamp2 ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Expects a timestamp perline
4
+
5
+ require 'time'
6
+
7
+ STDIN.each do |line|
8
+ puts '=' * 80
9
+ orignal_time = line.chomp
10
+ parsed_time = Time.at(line.chomp.to_i)
11
+ puts "#{orignal_time} => #{parsed_time}"
12
+ puts ''
13
+ end
14
+
data/bin/ix-title ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ ix-ucwords | ix sentence
data/bin/ix-to-f ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.to_f
5
+ end
6
+
data/bin/ix-to-i ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.to_i
5
+ end
6
+
data/bin/ix-to-sym ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp.to_sym.inspect
5
+ end
6
+
data/bin/ix-to_i ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.to_i
5
+ end
6
+
data/bin/ix-todo ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ REGEX = /(^\s*)(.*)/
4
+ PREFIX = ARGV[0] || '# '
5
+
6
+ STDIN.each_line do |line|
7
+ chunks = line.chomp.scan(REGEX)
8
+ space, data = chunks[0]
9
+ puts "#{space}# TODO: #{data}"
10
+ end
11
+
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ WORDS_REGEX = /\w+/
4
+ UPPER_CASE_WORDS = /([A-Z])/
5
+ SPACE_PADDING = /^\s+/
6
+ STARTS_WITH_UPPERCASE = /\s*[A-Z]/
7
+
8
+ starts_with_uppercase = false
9
+
10
+ STDIN.each_line do |line|
11
+ line.chomp!
12
+ if line =~ STARTS_WITH_UPPERCASE
13
+ starts_with_uppercase = true
14
+ end
15
+ line.gsub!(UPPER_CASE_WORDS, ' \1')
16
+ padding = line.scan(SPACE_PADDING)[0].to_s
17
+ words = line.scan(WORDS_REGEX)
18
+
19
+ if starts_with_uppercase
20
+ padding = padding[1..(padding.size - 1)]
21
+ end
22
+ snake = words.map { |word| word.downcase } * '_'
23
+ puts padding + line + ' %<' + snake + '>s'
24
+ end
25
+
data/bin/ix-transpose ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if ARGV[0] == '-l'
4
+ orientation = :left
5
+ else
6
+ orientation = :right
7
+ end
8
+
9
+ matrix = []
10
+
11
+ row = []
12
+
13
+ max_size = 0
14
+
15
+ STDIN.each_char do |char|
16
+ if char == "\n"
17
+ if row.size > max_size
18
+ max_size = row.size
19
+ end
20
+ matrix << row
21
+ row = []
22
+ else
23
+ row << char
24
+ end
25
+ end
26
+
27
+ matrix.each do |row|
28
+ if row.size < max_size
29
+ (max_size - row.size).times do
30
+ row << ' '
31
+ end
32
+ end
33
+ end
34
+
35
+ if orientation == :right
36
+ matrix = matrix.transpose
37
+ else
38
+ matrix = matrix.reverse.transpose
39
+ end
40
+
41
+ matrix.each do |row|
42
+ if orientation == :right
43
+ puts row.join('')
44
+ else
45
+ puts row.reverse.join('')
46
+ end
47
+ end
48
+
data/bin/ix-tree ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+
3
+ path=`ix join '/'`
4
+
5
+ mkdir -p $path
6
+
7
+ first=`echo $path | ix split '/' | head -1`
8
+
9
+ tree $first
10
+
11
+ if [ "$first" == "/" ]; then
12
+ echo Cant delete root.
13
+ exit 1
14
+ else
15
+ command="rm -rf $first"
16
+ echo Delete command: $command
17
+ $command
18
+ fi
19
+
data/bin/ix-trim ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp.gsub(/^\s+|\s+$/, '')
5
+ end
data/bin/ix-truncate ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'ostruct'
4
+ require 'optparse'
5
+
6
+ configuration = OpenStruct.new
7
+
8
+ configuration.limit = 80
9
+
10
+ OptionParser.new do |options|
11
+ options.banner = "USAGE: #{File.basename($0)} [OPTIONS]"
12
+ help_string = 'Read from stdin and dump each truncated line to limit -l [N] to stdout.'
13
+ parser = OptionParser::DecimalInteger
14
+ options.on('-l', '--limit [N]', parser, help_string) do |value|
15
+ configuration.limit = value
16
+ end
17
+ end.parse!
18
+
19
+ STDIN.each_line do |line|
20
+ puts line[0..configuration.limit]
21
+ end
22
+
data/bin/ix-ts ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts "#{Time.now.to_f} #{line}"
5
+ end
6
+
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+
5
+ TAB_REGEX = /\t/
6
+
7
+ STDIN.each_line do |line|
8
+ output_object = {}
9
+ fields = line.split(TAB_REGEX)
10
+ ARGV.each_with_index do |argument, index|
11
+ output_object[argument] = fields[index]
12
+ end
13
+ puts output_object.to_json
14
+ end
15
+
data/bin/ix-ucwords ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ words = line.scan(/\w+/)
5
+ map = words.map do |word|
6
+ start = word[0]
7
+ word[0] = start.upcase
8
+ word
9
+ end
10
+ puts map.join(' ')
11
+ end
data/bin/ix-unescape ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'uri'
4
+
5
+ STDIN.each_line do |line|
6
+ puts URI.decode(line.chomp)
7
+ end
8
+
data/bin/ix-unhtml ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env php
2
+ <?php
3
+
4
+ while (false !== ($line = fgets(STDIN))) {
5
+ echo strip_tags($line);
6
+ }
7
+
8
+ ?>
data/bin/ix-upcase ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ puts line.chomp.upcase
5
+ end
data/bin/ix-url-check ADDED
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'net/http'
4
+
5
+ $running = true
6
+
7
+ trap('INT') { $running = false }
8
+
9
+ STDIN.each do |line|
10
+
11
+ break unless $running
12
+
13
+ begin
14
+
15
+ uri = URI(line.chomp)
16
+ start = Time.now.to_f
17
+ res = Net::HTTP.get_response(uri)
18
+ finish = Time.now.to_f
19
+ bench = (finish - start)
20
+ puts "#{res.code} #{uri}"
21
+ rescue => e
22
+ puts "ERROR: #{e.message} #{uri}"
23
+ end
24
+ end
25
+
data/bin/ix-urls ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ scrappers = []
4
+ results = []
5
+
6
+ class QuotedUrlScrapper
7
+ REGEX = /"\w+:\/\/[^"]+"/
8
+ def initialize(text)
9
+ @text = text
10
+ end
11
+ def get_urls
12
+ @text.scan(REGEX).map do |url|
13
+ url.chop!
14
+ url.reverse.chop.reverse
15
+ end
16
+ end
17
+ end
18
+
19
+ class TextUrlScrapper
20
+ REGEX = /\w+:\/\/[^\s]+/
21
+ def initialize(text)
22
+ @text = text
23
+ end
24
+ def get_urls
25
+ @text.scan(REGEX).map do |url|
26
+ url.gsub!(/".*/, '')
27
+ url.gsub!(/'.*/, '')
28
+ end
29
+ end
30
+ end
31
+
32
+ scrappers.push(QuotedUrlScrapper)
33
+ scrappers.push(TextUrlScrapper)
34
+
35
+ STDIN.each_line do |line|
36
+ scrappers.each do |scrapper|
37
+ parser = scrapper.new(line)
38
+ parser.get_urls.each do |url|
39
+ results << url
40
+ end
41
+ end
42
+ end
43
+
44
+ results.uniq.each do |url|
45
+ puts url
46
+ end
data/bin/ix-vim ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ application = ARGV[0]
4
+ target_path = File.dirname(__FILE__)
5
+ target_file = "#{target_path}/ix-#{application}"
6
+
7
+ system "vim #{target_file}"
8
+ system "chmod +x #{target_file}"
9
+
data/bin/ix-words ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ line = line.chomp
5
+ array = line.scan(/\w+/)
6
+ array.each do |word|
7
+ puts word
8
+ end
9
+ end
data/bin/ix-wrap ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ start = ARGV[0]
4
+ finish = ARGV[1]
5
+
6
+ puts start
7
+ STDIN.each_line do |line|
8
+ puts line.chomp
9
+ end
10
+ puts finish