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,40 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Attribute
4
+ attr_accessor :name
5
+ attr_accessor :space
6
+ def initialize(name, space)
7
+ @name = name
8
+ @space = space
9
+ end
10
+ def to_s
11
+ raise 'child must implement'
12
+ end
13
+ end
14
+
15
+ class SimpleMethod < Attribute
16
+ def to_s
17
+ "\n#{space}def #{name}\n#{space}end"
18
+ end
19
+ end
20
+
21
+ names = []
22
+ objects = []
23
+
24
+ STDIN.each_line do |line|
25
+ name = line.chomp
26
+ space = name.scan(/^\s+/)[0].to_s
27
+ name = name.gsub(/^\s+/, '')
28
+ name = name.gsub(/\W+/, '_')
29
+ name = name.downcase
30
+ names.push(name)
31
+ objects.push(SimpleMethod.new(name, space))
32
+ end
33
+
34
+ names.sort.each do |name|
35
+ objects.each do |object|
36
+ if object.name == name
37
+ puts object
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ WORDS_REGEX = /[a-zA-Z]+/
4
+ EMPTY_LINE = /^\s+$/
5
+ USEFUL_OPTIONS = []
6
+
7
+ class String
8
+
9
+ def ucword
10
+ result = ''
11
+ count = 0
12
+ each_char.each do |char|
13
+ count += 1
14
+ if count == 1
15
+ result << char.upcase
16
+ else
17
+ result << char.downcase
18
+ end
19
+ end
20
+ result
21
+ end
22
+
23
+ def ucword!
24
+ replace ucword
25
+ end
26
+
27
+ def chars
28
+ scan(/./)
29
+ end
30
+
31
+ end
32
+
33
+ class UsefulOption
34
+
35
+ def self.short_flags
36
+ @short_flags ||= [
37
+ "A",
38
+ "B",
39
+ "C",
40
+ "D",
41
+ "E",
42
+ "F",
43
+ "G",
44
+ "H",
45
+ "I",
46
+ "J",
47
+ "K",
48
+ "L",
49
+ "M",
50
+ "N",
51
+ "O",
52
+ "P",
53
+ "Q",
54
+ "R",
55
+ "S",
56
+ "T",
57
+ "U",
58
+ "V",
59
+ "W",
60
+ "X",
61
+ "Y",
62
+ "Z",
63
+ "h"
64
+ ]
65
+ end
66
+
67
+ def initialize(words_array)
68
+ unless words_array.is_a?(Array)
69
+ raise "not a valid option: #{words_array}"
70
+ end
71
+ if words_array.size == 0
72
+ raise "empty option: #{words_array.inspect}"
73
+ end
74
+ @words_array = words_array
75
+ end
76
+
77
+ def _find_and_assign_short_flag_from_chars(chars)
78
+ found = false
79
+ selected_char = nil
80
+
81
+ chars.each do |char|
82
+ unless self.class.short_flags.include?(char)
83
+ self.class.short_flags.push(char)
84
+ selected_char = char
85
+ found = true
86
+ break
87
+ end
88
+ end
89
+
90
+ [found, selected_char]
91
+ end
92
+
93
+ def to_short_flag
94
+ selected_char = nil
95
+ found = false
96
+
97
+ @words_array.each do |word|
98
+ found, selected_char = _find_and_assign_short_flag_from_chars(word.downcase.chars)
99
+ break if found
100
+ end
101
+
102
+ unless found
103
+ found, selected_char = _find_and_assign_short_flag_from_chars(('a'..'z').to_a)
104
+ end
105
+
106
+ unless found
107
+ $stderr.puts "Cant assing short flag!"
108
+ $stderr.puts "Probably using too many opts?"
109
+ $stderr.puts self.class.short_flags.inspect
110
+ exit 1
111
+ end
112
+
113
+ '-' + selected_char
114
+ end
115
+
116
+ def to_long_flag
117
+ words = @words_array.dup
118
+ words.map! do |word|
119
+ word.downcase
120
+ end
121
+ '--' + (words * '-')
122
+ end
123
+
124
+ def to_symbol
125
+ words = @words_array.dup
126
+ words.map! do |word|
127
+ word.downcase
128
+ end
129
+ (words * '_').to_sym
130
+ end
131
+
132
+ def to_description
133
+ words = @words_array.dup
134
+ words.map! do |word|
135
+ word.downcase
136
+ end
137
+ words.first.ucword!
138
+ (words * ' ') + '.'
139
+ end
140
+
141
+ def to_optparse
142
+ string = ''
143
+ string << " opts.on('#{to_short_flag}', '#{to_long_flag}', '#{to_description}') do |value|\n"
144
+ string << " options[#{to_symbol.inspect}] = value\n"
145
+ string << " end\n"
146
+ string << "\n"
147
+ string
148
+ end
149
+
150
+ end
151
+
152
+ STDIN.each_line do |line|
153
+ next if line =~ EMPTY_LINE
154
+ words = line.scan(WORDS_REGEX)
155
+ option = UsefulOption.new(words)
156
+ USEFUL_OPTIONS.push(option)
157
+ end
158
+
159
+ puts "require 'optparse'"
160
+ puts ""
161
+ puts "options = {}"
162
+ puts ""
163
+ puts "OptionParser.new do |opts|"
164
+ puts ""
165
+ puts " opts.banner = \"Usage: \#{$0} [OPTIONS]\""
166
+ puts ""
167
+
168
+ USEFUL_OPTIONS.each do |option|
169
+ puts option.to_optparse
170
+ end
171
+
172
+ puts ""
173
+ puts "end.parse!"
174
+ puts ""
175
+
176
+ puts "required_options = #{USEFUL_OPTIONS.map { |opt| opt.to_symbol }.inspect }"
177
+ puts 'required_options.each do |option|'
178
+ puts ' unless options[option]'
179
+ puts ' $stderr.puts "Can not run #{option.to_s} was not given."'
180
+ puts ' exit 1'
181
+ puts ' end'
182
+ puts 'end'
183
+
184
+ puts ""
185
+
186
+ puts "p options"
187
+ puts "p ARGV"
188
+ puts ""
189
+
data/bin/ix-ruby-procs ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Attribute
4
+ attr_accessor :name
5
+ attr_accessor :space
6
+ def initialize(name, space)
7
+ @name = name
8
+ @space = space
9
+ end
10
+ def to_s
11
+ raise 'child must implement'
12
+ end
13
+ end
14
+
15
+ class SimpleMethod < Attribute
16
+ def to_s
17
+ "\n#{space}#{name} = proc do\n#{space}end"
18
+ end
19
+ end
20
+
21
+ names = []
22
+ objects = []
23
+
24
+ STDIN.each_line do |line|
25
+ name = line.chomp
26
+ space = name.scan(/^\s+/)[0].to_s
27
+ name = name.gsub(/^\s+/, '')
28
+ name = name.gsub(/\W+/, '_')
29
+ name = name.downcase
30
+ names.push(name)
31
+ objects.push(SimpleMethod.new(name, space))
32
+ end
33
+
34
+ names.sort.each do |name|
35
+ objects.each do |object|
36
+ if object.name == name
37
+ puts object
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ WORDS_REGEX = /\w+/
4
+
5
+ STDIN.each_line do |line|
6
+ words = line.scan(WORDS_REGEX)
7
+ words.each do |word|
8
+ puts "puts '#{word} : ' + #{word}.inspect # remove_put_var"
9
+ end
10
+ end
11
+
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Attribute
4
+ attr_accessor :name
5
+ attr_accessor :space
6
+ def initialize(name, space)
7
+ @name = name
8
+ @space = space
9
+ end
10
+ def to_s
11
+ raise 'child must implement'
12
+ end
13
+ end
14
+
15
+ class AttributeSetter < Attribute
16
+ def to_s
17
+ "\n#{space}def #{name}=(#{name})\n#{space} @#{name} = #{name}\n#{space}end"
18
+ end
19
+ end
20
+
21
+ class AttributeGetter < Attribute
22
+ def to_s
23
+ "\n#{space}def #{name}\n#{space} @#{name}\n#{space}end"
24
+ end
25
+ end
26
+
27
+ names = []
28
+ objects = []
29
+
30
+ STDIN.each_line do |line|
31
+ name = line.chomp
32
+ space = name.scan(/^\s+/)[0].to_s
33
+ name = name.gsub(/^\s+/, '')
34
+ name = name.gsub(/\W+/, '_')
35
+ name = name.downcase
36
+ names.push(name)
37
+ objects.push(AttributeGetter.new(name, space))
38
+ objects.push(AttributeSetter.new(name, space))
39
+ end
40
+
41
+ names.sort.each do |name|
42
+ objects.each do |object|
43
+ if object.name == name
44
+ puts object
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'json'
5
+
6
+ STDIN.each do |line|
7
+ hash = eval(line)
8
+ puts JSON.dump(hash)
9
+ end
data/bin/ix-ruler ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ PREFIX_REGEX = /^\s+/
4
+
5
+ LENGTH = (ARGV[0] || 78).to_i
6
+
7
+ STDIN.each_line do |line|
8
+ prefix = line.scan(PREFIX_REGEX)[0].to_s
9
+ puts ''
10
+ puts "#{prefix}# #{line.gsub(PREFIX_REGEX, '')}"
11
+ puts "#{prefix}# #{'=' * LENGTH}"
12
+ end
13
+
data/bin/ix-run ADDED
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'open3'
4
+ require 'pp'
5
+ require 'json'
6
+
7
+ class Shell
8
+ def self.execute(command)
9
+ stdout, stderr, status = Open3.capture3(ENV, command)
10
+ status = status.exitstatus
11
+ rescue StandardError => error
12
+ stdout = ""
13
+ stderr = error.message
14
+ status = 1
15
+ ensure
16
+ return stdout, stderr, status
17
+ end
18
+ end
19
+
20
+
21
+ class Command
22
+
23
+ REGEX = {
24
+ :comment => /^\s*#/,
25
+ :empty_line => /^\s*$/,
26
+ :variables => /[A-Z_]+=[^\s]+[\s]/,
27
+ :trailing_whitespace => /\s+$/
28
+ }
29
+
30
+ def initialize(string)
31
+ @command = string
32
+ end
33
+
34
+ def is_empty_line?
35
+ @command =~ REGEX[:empty_line]
36
+ end
37
+
38
+ def is_comment?
39
+ @command =~ REGEX[:comment]
40
+ end
41
+
42
+ def has_variables?
43
+ @command =~ REGEX[:variables]
44
+ end
45
+
46
+ def get_variables
47
+ @command.scan(REGEX[:variables])
48
+ end
49
+
50
+ def get_comment
51
+ @command.gsub(REGEX[:comment], '')
52
+ end
53
+
54
+ def to_s
55
+ return @command unless has_variables?
56
+ command = @command
57
+ get_variables.each do |variable|
58
+ command.gsub!(variable, '')
59
+ key, value = variable.split('=')
60
+ value = value.gsub!(REGEX[:trailing_whitespace], '')
61
+ ENV[key] = value
62
+ end
63
+ command
64
+ end
65
+
66
+ def execute
67
+ stdout, stderr, status = Shell.execute(to_s)
68
+ hash = {
69
+ :timestamp => Time.now.to_f,
70
+ :stdout => stdout,
71
+ :stderr => stderr,
72
+ :status => status,
73
+ :command => to_s
74
+ }
75
+ end
76
+
77
+ end
78
+
79
+ counter = 0
80
+
81
+ STDIN.each_line do |line|
82
+ command = Command.new(line.chomp)
83
+
84
+ if command.is_empty_line?
85
+ next
86
+ end
87
+
88
+ if command.is_comment?
89
+ # puts "# comment:#{command.get_comment}"
90
+ next
91
+ end
92
+
93
+ command.get_variables.each do |variable|
94
+ # puts "# setup env var: #{variable}"
95
+ next
96
+ end
97
+
98
+ counter += 1
99
+
100
+ hash = command.execute
101
+ hash[:count] = counter
102
+
103
+ puts hash.to_json
104
+
105
+ end
data/bin/ix-saldo ADDED
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+
5
+ AMOUNT_REGEX = /^[^ ]+/
6
+
7
+ balance = 0
8
+
9
+ STDIN.each_line do |line|
10
+
11
+ amount = line.scan(AMOUNT_REGEX)[0].to_f
12
+ description = line.gsub(AMOUNT_REGEX, '')
13
+ balance += amount
14
+
15
+ description.chomp!
16
+ description.gsub!(/^\s+/, '')
17
+
18
+ object = {}
19
+ object[:description] = description
20
+ object[:amount] = amount
21
+ object[:balance] = balance
22
+ puts object.to_json
23
+
24
+ end
25
+
data/bin/ix-sat ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ puts "total\tsubtotal\tiva"
4
+ STDIN.each_line do |line|
5
+ total = line.to_f
6
+ subtotal = total / 1.16
7
+ iva = subtotal * 0.16
8
+ puts "#{total}\t#{subtotal}\t#{iva}"
9
+ end
10
+
data/bin/ix-scan ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ matcher = ARGV[0]
4
+ regex = Regexp.new(matcher)
5
+
6
+ STDIN.each_line do |line|
7
+ line = line.chomp
8
+ line.scan(regex).each do |match|
9
+ # puts match * "\t"
10
+ puts match
11
+ end
12
+ end
13
+
data/bin/ix-scrum ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ if ARGV[0]
5
+ project = ARGV[0]
6
+ else
7
+ project = 'PLACEIT'
8
+ end
9
+
10
+ date = Time.now
11
+
12
+ puts date.strftime("[SCRUM] #{project.upcase} - %A %B %d %Y")
13
+
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if ARGV[0]
4
+ project = ARGV[0]
5
+ else
6
+ project = 'PLACEIT'
7
+ end
8
+
9
+ date = Time.now
10
+
11
+ puts date.strftime("[SCRUM SUMMARY] #{project.upcase} - %A %B %d %Y")
12
+
data/bin/ix-sentence ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # begin
4
+ STDIN.each_line do |line|
5
+ line.chomp!
6
+ line.gsub!(/(^\w)|(^\s+\w)/) { |m| m.upcase }
7
+ line.gsub!(/\s\+$/, '')
8
+ line.gsub!(/_/, ' ')
9
+ if line[line.size - 1] == '.'
10
+ puts line
11
+ else
12
+ if line.size > 0 # avoid '.' as output
13
+ puts line + '.'
14
+ end
15
+ end
16
+ end
17
+
18
+ # rescue => e
19
+ # puts e.message
20
+ # e.backtrace.each do |line|
21
+ # puts line
22
+ # end
23
+ # end
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ COMMENT_REGEX = /(\s+#)(.*)/
4
+
5
+ STDIN.each_line do |line|
6
+ if line =~ COMMENT_REGEX
7
+ line.gsub!(COMMENT_REGEX) do |match|
8
+ "# XX > \1"
9
+ end
10
+ end
11
+ puts line
12
+ end
data/bin/ix-show-tabs ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDIN.each_line do |line|
4
+ print line.gsub(/(\t+)/, "\\1\e[0;0;41m<--- tab\e[0m")
5
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'isna'
4
+
5
+ "\\1\e[0;0;34m<--- space\e[0m"
6
+ STDIN.each_line do |line|
7
+ spaces = line.gsub(/([ ]+$)/, "[\\1]".to_ansi.negative.underline.red.blink.to_s + '<--- space'.to_ansi.red.to_s)
8
+ tabs = spaces.gsub(/(\t+$)/, "\\1\e[0;0;41m<--- tab\e[0m")
9
+ print tabs
10
+ end
data/bin/ix-shuffle ADDED
@@ -0,0 +1,11 @@
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.shuffle.each do |line|
10
+ puts line
11
+ end
data/bin/ix-signature ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ echo ''
3
+ echo ''
4
+ echo ' - Kazuyoshi Tlacaelel'
5
+ echo ''
6
+ ix jd
7
+ echo ''
data/bin/ix-size ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ limit = ARGV[0].to_i - 1
4
+
5
+ STDIN.each_line do |line|
6
+ line.chomp!
7
+ puts "#{line.size.to_s.ljust(10, ' ')} #{line[0..(limit)]} "
8
+ end
9
+