zucker 8 → 9

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 (366) hide show
  1. data/CHANGELOG +14 -0
  2. data/MIT-LICENSE +1 -1
  3. data/README +1 -1
  4. data/Rakefile +33 -40
  5. data/desc/alias_for.yaml +17 -0
  6. data/desc/aliases.yaml +18 -0
  7. data/desc/array.yaml +13 -0
  8. data/desc/array_to_proc.yaml +16 -0
  9. data/desc/binding.yaml +22 -0
  10. data/desc/blank.yaml +9 -0
  11. data/desc/cc.yaml +10 -0
  12. data/desc/class_to_proc.yaml +11 -0
  13. data/desc/dd.yaml +23 -0
  14. data/desc/egonil.yaml +15 -0
  15. data/desc/engine.yaml +15 -0
  16. data/desc/enumerable.yaml +10 -0
  17. data/desc/file.yaml +15 -0
  18. data/desc/hash.yaml +14 -0
  19. data/desc/hash_to_proc.yaml +10 -0
  20. data/desc/info.yaml +20 -0
  21. data/desc/iterate.yaml +16 -0
  22. data/desc/ivars.yaml +19 -0
  23. data/desc/kernel.yaml +14 -0
  24. data/desc/mcopy.yaml +11 -0
  25. data/desc/mm.yaml +15 -0
  26. data/desc/not.yaml +11 -0
  27. data/desc/oo.yaml +10 -0
  28. data/desc/os.yaml +19 -0
  29. data/desc/qq.yaml +11 -0
  30. data/desc/regexp_to_proc.yaml +12 -0
  31. data/desc/regexp_visualize.yaml +23 -0
  32. data/desc/sandbox.yaml +12 -0
  33. data/desc/square_brackets_for.yaml +22 -0
  34. data/desc/string.yaml +23 -0
  35. data/desc/tap.yaml +17 -0
  36. data/desc/unary.yaml +15 -0
  37. data/desc/union.yaml +10 -0
  38. data/desc/version.yaml +28 -0
  39. data/doc/zucker_doc.html +2688 -0
  40. data/doc/zucker_doc.rb +553 -0
  41. data/lib/zucker.rb +10 -9
  42. data/lib/zucker/array2proc.rb +2 -18
  43. data/lib/zucker/{2/array2proc.rb → array_to_proc.rb} +0 -0
  44. data/lib/zucker/binding.rb +4 -5
  45. data/lib/zucker/cc.rb +7 -2
  46. data/lib/zucker/class2proc.rb +2 -12
  47. data/lib/zucker/{1/class2proc.rb → class_to_proc.rb} +0 -0
  48. data/lib/zucker/file.rb +22 -0
  49. data/lib/zucker/hash2proc.rb +2 -16
  50. data/lib/zucker/{1/hash2proc.rb → hash_to_proc.rb} +0 -0
  51. data/lib/zucker/kernel.rb +4 -2
  52. data/lib/zucker/mm.rb +14 -8
  53. data/lib/zucker/regexp2proc.rb +2 -12
  54. data/lib/zucker/{1/regexp2proc.rb → regexp_to_proc.rb} +0 -0
  55. data/lib/zucker/regexp_visualize.rb +26 -0
  56. data/lib/zucker/sandbox.rb +1 -11
  57. data/spec/alias_for_spec.rb +117 -0
  58. data/spec/aliases_spec.rb +13 -0
  59. data/spec/array_spec.rb +23 -0
  60. data/spec/array_to_proc_spec.rb +12 -0
  61. data/spec/binding_spec.rb +6 -0
  62. data/spec/blank_spec.rb +20 -0
  63. data/spec/cc_spec.rb +6 -0
  64. data/spec/class_to_proc_spec.rb +9 -0
  65. data/spec/dd_spec.rb +37 -0
  66. data/spec/egonil_spec.rb +32 -0
  67. data/spec/engine_spec.rb +11 -0
  68. data/spec/enumerable_spec.rb +8 -0
  69. data/spec/file_spec.rb +30 -0
  70. data/spec/hash_spec.rb +25 -0
  71. data/spec/hash_to_proc_spec.rb +12 -0
  72. data/spec/info_spec.rb +8 -0
  73. data/spec/iterate_spec.rb +59 -0
  74. data/spec/ivars_spec.rb +20 -0
  75. data/spec/kernel_spec.rb +37 -0
  76. data/spec/mcopy_spec.rb +13 -0
  77. data/spec/mm_spec.rb +6 -0
  78. data/spec/not_spec.rb +12 -0
  79. data/spec/oo_spec.rb +6 -0
  80. data/spec/os_spec.rb +37 -0
  81. data/spec/qq_spec.rb +19 -0
  82. data/spec/regexp_to_proc_spec.rb +9 -0
  83. data/spec/regexp_visualize_spec.rb +38 -0
  84. data/spec/sandbox_spec.rb +12 -0
  85. data/spec/spec_helper.rb +18 -0
  86. data/spec/square_brackets_for_spec.rb +59 -0
  87. data/spec/string_spec.rb +65 -0
  88. data/spec/tap_spec.rb +18 -0
  89. data/spec/unary_spec.rb +26 -0
  90. data/spec/union_spec.rb +17 -0
  91. data/spec/version_spec.rb +55 -0
  92. data/zucker.gemspec +21 -0
  93. metadata +139 -323
  94. data/lib/zucker/1/D.rb +0 -21
  95. data/lib/zucker/1/aliases.rb +0 -30
  96. data/lib/zucker/1/all.rb +0 -8
  97. data/lib/zucker/1/array.rb +0 -19
  98. data/lib/zucker/1/array2proc.rb +0 -12
  99. data/lib/zucker/1/binding.rb +0 -27
  100. data/lib/zucker/1/blank.rb +0 -28
  101. data/lib/zucker/1/debug.rb +0 -6
  102. data/lib/zucker/1/default.rb +0 -27
  103. data/lib/zucker/1/egonil.rb +0 -16
  104. data/lib/zucker/1/enumerable.rb +0 -14
  105. data/lib/zucker/1/hash.rb +0 -21
  106. data/lib/zucker/1/iterate.rb +0 -25
  107. data/lib/zucker/1/ivars.rb +0 -28
  108. data/lib/zucker/1/kernel.rb +0 -22
  109. data/lib/zucker/1/mcopy.rb +0 -11
  110. data/lib/zucker/1/mm.rb +0 -33
  111. data/lib/zucker/1/sandbox.rb +0 -17
  112. data/lib/zucker/1/square_brackets_for.rb +0 -22
  113. data/lib/zucker/1/string.rb +0 -27
  114. data/lib/zucker/1/unary.rb +0 -24
  115. data/lib/zucker/1/union.rb +0 -16
  116. data/lib/zucker/2/D.rb +0 -21
  117. data/lib/zucker/2/aliases.rb +0 -30
  118. data/lib/zucker/2/all.rb +0 -8
  119. data/lib/zucker/2/array.rb +0 -19
  120. data/lib/zucker/2/binding.rb +0 -27
  121. data/lib/zucker/2/blank.rb +0 -28
  122. data/lib/zucker/2/class2proc.rb +0 -12
  123. data/lib/zucker/2/debug.rb +0 -6
  124. data/lib/zucker/2/default.rb +0 -27
  125. data/lib/zucker/2/egonil.rb +0 -16
  126. data/lib/zucker/2/enumerable.rb +0 -14
  127. data/lib/zucker/2/hash.rb +0 -21
  128. data/lib/zucker/2/hash2proc.rb +0 -16
  129. data/lib/zucker/2/info.rb +0 -166
  130. data/lib/zucker/2/iterate.rb +0 -25
  131. data/lib/zucker/2/ivars.rb +0 -28
  132. data/lib/zucker/2/kernel.rb +0 -20
  133. data/lib/zucker/2/mcopy.rb +0 -11
  134. data/lib/zucker/2/mm.rb +0 -33
  135. data/lib/zucker/2/regexp2proc.rb +0 -12
  136. data/lib/zucker/2/sandbox.rb +0 -21
  137. data/lib/zucker/2/square_brackets_for.rb +0 -22
  138. data/lib/zucker/2/string.rb +0 -27
  139. data/lib/zucker/2/unary.rb +0 -24
  140. data/lib/zucker/2/union.rb +0 -16
  141. data/lib/zucker/3/D.rb +0 -21
  142. data/lib/zucker/3/alias_for.rb +0 -21
  143. data/lib/zucker/3/aliases.rb +0 -30
  144. data/lib/zucker/3/all.rb +0 -8
  145. data/lib/zucker/3/array.rb +0 -25
  146. data/lib/zucker/3/array2proc.rb +0 -18
  147. data/lib/zucker/3/binding.rb +0 -27
  148. data/lib/zucker/3/blank.rb +0 -28
  149. data/lib/zucker/3/class2proc.rb +0 -12
  150. data/lib/zucker/3/debug.rb +0 -8
  151. data/lib/zucker/3/default.rb +0 -37
  152. data/lib/zucker/3/egonil.rb +0 -16
  153. data/lib/zucker/3/enumerable.rb +0 -14
  154. data/lib/zucker/3/hash.rb +0 -21
  155. data/lib/zucker/3/hash2proc.rb +0 -16
  156. data/lib/zucker/3/info.rb +0 -169
  157. data/lib/zucker/3/iterate.rb +0 -25
  158. data/lib/zucker/3/ivars.rb +0 -28
  159. data/lib/zucker/3/kernel.rb +0 -50
  160. data/lib/zucker/3/mcopy.rb +0 -10
  161. data/lib/zucker/3/mm.rb +0 -33
  162. data/lib/zucker/3/not.rb +0 -19
  163. data/lib/zucker/3/regexp2proc.rb +0 -12
  164. data/lib/zucker/3/sandbox.rb +0 -21
  165. data/lib/zucker/3/square_brackets_for.rb +0 -22
  166. data/lib/zucker/3/string.rb +0 -49
  167. data/lib/zucker/3/tap.rb +0 -11
  168. data/lib/zucker/3/unary.rb +0 -24
  169. data/lib/zucker/3/union.rb +0 -16
  170. data/lib/zucker/4/D.rb +0 -21
  171. data/lib/zucker/4/alias_for.rb +0 -21
  172. data/lib/zucker/4/aliases.rb +0 -35
  173. data/lib/zucker/4/all.rb +0 -8
  174. data/lib/zucker/4/array.rb +0 -25
  175. data/lib/zucker/4/array2proc.rb +0 -18
  176. data/lib/zucker/4/binding.rb +0 -27
  177. data/lib/zucker/4/blank.rb +0 -28
  178. data/lib/zucker/4/class2proc.rb +0 -12
  179. data/lib/zucker/4/debug.rb +0 -8
  180. data/lib/zucker/4/default.rb +0 -40
  181. data/lib/zucker/4/egonil.rb +0 -16
  182. data/lib/zucker/4/engine.rb +0 -69
  183. data/lib/zucker/4/enumerable.rb +0 -14
  184. data/lib/zucker/4/hash.rb +0 -21
  185. data/lib/zucker/4/hash2proc.rb +0 -16
  186. data/lib/zucker/4/info.rb +0 -173
  187. data/lib/zucker/4/iterate.rb +0 -25
  188. data/lib/zucker/4/ivars.rb +0 -28
  189. data/lib/zucker/4/kernel.rb +0 -27
  190. data/lib/zucker/4/mcopy.rb +0 -10
  191. data/lib/zucker/4/mm.rb +0 -33
  192. data/lib/zucker/4/not.rb +0 -19
  193. data/lib/zucker/4/os.rb +0 -50
  194. data/lib/zucker/4/q.rb +0 -7
  195. data/lib/zucker/4/regexp2proc.rb +0 -12
  196. data/lib/zucker/4/sandbox.rb +0 -23
  197. data/lib/zucker/4/square_brackets_for.rb +0 -22
  198. data/lib/zucker/4/string.rb +0 -54
  199. data/lib/zucker/4/tap.rb +0 -11
  200. data/lib/zucker/4/unary.rb +0 -24
  201. data/lib/zucker/4/union.rb +0 -16
  202. data/lib/zucker/4/version.rb +0 -115
  203. data/lib/zucker/5/alias_for.rb +0 -21
  204. data/lib/zucker/5/aliases.rb +0 -51
  205. data/lib/zucker/5/all.rb +0 -4
  206. data/lib/zucker/5/array.rb +0 -25
  207. data/lib/zucker/5/array2proc.rb +0 -18
  208. data/lib/zucker/5/binding.rb +0 -34
  209. data/lib/zucker/5/blank.rb +0 -28
  210. data/lib/zucker/5/cc.rb +0 -25
  211. data/lib/zucker/5/class2proc.rb +0 -12
  212. data/lib/zucker/5/control.rb +0 -4
  213. data/lib/zucker/5/dd.rb +0 -24
  214. data/lib/zucker/5/debug.rb +0 -4
  215. data/lib/zucker/5/default.rb +0 -4
  216. data/lib/zucker/5/egonil.rb +0 -16
  217. data/lib/zucker/5/engine.rb +0 -69
  218. data/lib/zucker/5/enumerable.rb +0 -14
  219. data/lib/zucker/5/env.rb +0 -4
  220. data/lib/zucker/5/extensions.rb +0 -4
  221. data/lib/zucker/5/hash.rb +0 -27
  222. data/lib/zucker/5/hash2proc.rb +0 -16
  223. data/lib/zucker/5/info.rb +0 -177
  224. data/lib/zucker/5/iterate.rb +0 -26
  225. data/lib/zucker/5/ivars.rb +0 -28
  226. data/lib/zucker/5/kernel.rb +0 -34
  227. data/lib/zucker/5/mcopy.rb +0 -10
  228. data/lib/zucker/5/mm.rb +0 -34
  229. data/lib/zucker/5/not.rb +0 -19
  230. data/lib/zucker/5/object.rb +0 -4
  231. data/lib/zucker/5/oo.rb +0 -17
  232. data/lib/zucker/5/os.rb +0 -49
  233. data/lib/zucker/5/qq.rb +0 -12
  234. data/lib/zucker/5/regexp2proc.rb +0 -12
  235. data/lib/zucker/5/sandbox.rb +0 -25
  236. data/lib/zucker/5/shortcuts.rb +0 -4
  237. data/lib/zucker/5/square_brackets_for.rb +0 -21
  238. data/lib/zucker/5/string.rb +0 -54
  239. data/lib/zucker/5/tap.rb +0 -11
  240. data/lib/zucker/5/to_proc.rb +0 -4
  241. data/lib/zucker/5/unary.rb +0 -24
  242. data/lib/zucker/5/union.rb +0 -16
  243. data/lib/zucker/5/version.rb +0 -118
  244. data/lib/zucker/6/alias_for.rb +0 -21
  245. data/lib/zucker/6/aliases.rb +0 -51
  246. data/lib/zucker/6/all.rb +0 -4
  247. data/lib/zucker/6/array.rb +0 -25
  248. data/lib/zucker/6/array2proc.rb +0 -18
  249. data/lib/zucker/6/binding.rb +0 -34
  250. data/lib/zucker/6/blank.rb +0 -28
  251. data/lib/zucker/6/cc.rb +0 -25
  252. data/lib/zucker/6/class2proc.rb +0 -12
  253. data/lib/zucker/6/control.rb +0 -4
  254. data/lib/zucker/6/dd.rb +0 -23
  255. data/lib/zucker/6/debug.rb +0 -4
  256. data/lib/zucker/6/default.rb +0 -4
  257. data/lib/zucker/6/egonil.rb +0 -27
  258. data/lib/zucker/6/engine.rb +0 -68
  259. data/lib/zucker/6/enumerable.rb +0 -14
  260. data/lib/zucker/6/env.rb +0 -4
  261. data/lib/zucker/6/extensions.rb +0 -4
  262. data/lib/zucker/6/hash.rb +0 -27
  263. data/lib/zucker/6/hash2proc.rb +0 -16
  264. data/lib/zucker/6/info.rb +0 -192
  265. data/lib/zucker/6/iterate.rb +0 -27
  266. data/lib/zucker/6/ivars.rb +0 -28
  267. data/lib/zucker/6/kernel.rb +0 -34
  268. data/lib/zucker/6/mcopy.rb +0 -10
  269. data/lib/zucker/6/mm.rb +0 -34
  270. data/lib/zucker/6/not.rb +0 -19
  271. data/lib/zucker/6/object.rb +0 -4
  272. data/lib/zucker/6/oo.rb +0 -17
  273. data/lib/zucker/6/os.rb +0 -54
  274. data/lib/zucker/6/qq.rb +0 -12
  275. data/lib/zucker/6/regexp2proc.rb +0 -12
  276. data/lib/zucker/6/sandbox.rb +0 -25
  277. data/lib/zucker/6/shortcuts.rb +0 -4
  278. data/lib/zucker/6/square_brackets_for.rb +0 -21
  279. data/lib/zucker/6/string.rb +0 -54
  280. data/lib/zucker/6/tap.rb +0 -11
  281. data/lib/zucker/6/to_proc.rb +0 -4
  282. data/lib/zucker/6/unary.rb +0 -24
  283. data/lib/zucker/6/union.rb +0 -16
  284. data/lib/zucker/6/version.rb +0 -118
  285. data/lib/zucker/7/alias_for.rb +0 -21
  286. data/lib/zucker/7/aliases.rb +0 -51
  287. data/lib/zucker/7/all.rb +0 -4
  288. data/lib/zucker/7/array.rb +0 -25
  289. data/lib/zucker/7/array2proc.rb +0 -18
  290. data/lib/zucker/7/binding.rb +0 -34
  291. data/lib/zucker/7/blank.rb +0 -28
  292. data/lib/zucker/7/cc.rb +0 -25
  293. data/lib/zucker/7/class2proc.rb +0 -12
  294. data/lib/zucker/7/control.rb +0 -4
  295. data/lib/zucker/7/dd.rb +0 -23
  296. data/lib/zucker/7/debug.rb +0 -4
  297. data/lib/zucker/7/default.rb +0 -4
  298. data/lib/zucker/7/egonil.rb +0 -27
  299. data/lib/zucker/7/engine.rb +0 -68
  300. data/lib/zucker/7/enumerable.rb +0 -14
  301. data/lib/zucker/7/env.rb +0 -4
  302. data/lib/zucker/7/extensions.rb +0 -4
  303. data/lib/zucker/7/hash.rb +0 -27
  304. data/lib/zucker/7/hash2proc.rb +0 -16
  305. data/lib/zucker/7/info.rb +0 -192
  306. data/lib/zucker/7/iterate.rb +0 -27
  307. data/lib/zucker/7/ivars.rb +0 -28
  308. data/lib/zucker/7/kernel.rb +0 -34
  309. data/lib/zucker/7/mcopy.rb +0 -10
  310. data/lib/zucker/7/mm.rb +0 -34
  311. data/lib/zucker/7/not.rb +0 -19
  312. data/lib/zucker/7/object.rb +0 -4
  313. data/lib/zucker/7/oo.rb +0 -17
  314. data/lib/zucker/7/os.rb +0 -54
  315. data/lib/zucker/7/qq.rb +0 -12
  316. data/lib/zucker/7/regexp2proc.rb +0 -12
  317. data/lib/zucker/7/sandbox.rb +0 -25
  318. data/lib/zucker/7/shortcuts.rb +0 -4
  319. data/lib/zucker/7/square_brackets_for.rb +0 -21
  320. data/lib/zucker/7/string.rb +0 -54
  321. data/lib/zucker/7/tap.rb +0 -11
  322. data/lib/zucker/7/to_proc.rb +0 -4
  323. data/lib/zucker/7/unary.rb +0 -24
  324. data/lib/zucker/7/union.rb +0 -16
  325. data/lib/zucker/7/version.rb +0 -118
  326. data/lib/zucker/8/alias_for.rb +0 -21
  327. data/lib/zucker/8/aliases.rb +0 -51
  328. data/lib/zucker/8/all.rb +0 -4
  329. data/lib/zucker/8/array.rb +0 -25
  330. data/lib/zucker/8/array2proc.rb +0 -18
  331. data/lib/zucker/8/binding.rb +0 -33
  332. data/lib/zucker/8/blank.rb +0 -28
  333. data/lib/zucker/8/cc.rb +0 -25
  334. data/lib/zucker/8/class2proc.rb +0 -12
  335. data/lib/zucker/8/control.rb +0 -4
  336. data/lib/zucker/8/dd.rb +0 -23
  337. data/lib/zucker/8/debug.rb +0 -4
  338. data/lib/zucker/8/default.rb +0 -4
  339. data/lib/zucker/8/egonil.rb +0 -27
  340. data/lib/zucker/8/engine.rb +0 -68
  341. data/lib/zucker/8/enumerable.rb +0 -14
  342. data/lib/zucker/8/env.rb +0 -4
  343. data/lib/zucker/8/extensions.rb +0 -4
  344. data/lib/zucker/8/hash.rb +0 -27
  345. data/lib/zucker/8/hash2proc.rb +0 -16
  346. data/lib/zucker/8/info.rb +0 -192
  347. data/lib/zucker/8/iterate.rb +0 -27
  348. data/lib/zucker/8/ivars.rb +0 -28
  349. data/lib/zucker/8/kernel.rb +0 -34
  350. data/lib/zucker/8/mcopy.rb +0 -10
  351. data/lib/zucker/8/mm.rb +0 -34
  352. data/lib/zucker/8/not.rb +0 -19
  353. data/lib/zucker/8/object.rb +0 -4
  354. data/lib/zucker/8/oo.rb +0 -17
  355. data/lib/zucker/8/os.rb +0 -54
  356. data/lib/zucker/8/qq.rb +0 -12
  357. data/lib/zucker/8/regexp2proc.rb +0 -12
  358. data/lib/zucker/8/sandbox.rb +0 -25
  359. data/lib/zucker/8/shortcuts.rb +0 -4
  360. data/lib/zucker/8/square_brackets_for.rb +0 -21
  361. data/lib/zucker/8/string.rb +0 -54
  362. data/lib/zucker/8/tap.rb +0 -11
  363. data/lib/zucker/8/to_proc.rb +0 -4
  364. data/lib/zucker/8/unary.rb +0 -24
  365. data/lib/zucker/8/union.rb +0 -16
  366. data/lib/zucker/8/version.rb +0 -118
@@ -1,27 +0,0 @@
1
- require 'zucker'
2
-
3
- def iterate(*params)
4
- # params.shift.zip(*params).each{ |*elements| yield *elements }
5
- raise ArgumentError, "wrong number of arguments (0)" if params.empty?
6
-
7
- first = params.shift
8
- if params.empty? # single param - like each
9
- if block_given?
10
- first.map{|e| yield e }
11
- else
12
- first.map.to_enum
13
- end
14
- else # multiple params
15
- max_size = [first, *params].max_by(&:count).size
16
- padded_first = first.to_a + [nil]*(max_size - first.count) # append nils
17
- obj = padded_first.zip *params
18
- if block_given?
19
- obj.map{|es| yield *es }
20
- else
21
- obj.map.to_enum
22
- end
23
- end
24
- end
25
-
26
- # J-_-L
27
-
@@ -1,28 +0,0 @@
1
- require 'zucker'
2
-
3
- def instance_variables_from(obj, *only)
4
- iter =
5
- if obj.is_a? Binding
6
- obj.eval('local_variables').map{|e| [obj.eval("#{e}"), e] }
7
- elsif obj.is_a? Hash
8
- obj.map{|k,v| [v,k] }
9
- else
10
- # elsif obj.is_a? Enumerable
11
- obj.each.with_index
12
- end
13
-
14
- ret = []
15
- iter.each{ |value, arg|
16
- arg = arg.to_s
17
- if only.include?(arg) || only.include?(arg.to_sym) || only.empty?
18
- arg = '_' + arg if (48..57).member? arg.unpack('C')[0] # 1.8+1.9
19
- ret << ivar = :"@#{arg}"
20
- self.instance_variable_set ivar, value
21
- end
22
- }
23
- ret
24
- end
25
- alias ivars instance_variables_from
26
-
27
- # J-_-L
28
-
@@ -1,34 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- private
5
-
6
- def activate_warnings!
7
- $VERBOSE = true
8
- end
9
-
10
- def deactivate_warnings!
11
- $VERBOSE = false
12
- end
13
-
14
- def library?
15
- caller[0].rindex(/:\d+(:in `.*')?$/)
16
- $PROGRAM_NAME != $` # __FILE__
17
- end
18
-
19
- def executed_directly?
20
- caller[0].rindex(/:\d+(:in `.*')?$/)
21
- $PROGRAM_NAME == $` # __FILE__
22
- end
23
- alias standalone? executed_directly?
24
-
25
- def irb?
26
- !!(( IRB and $0 == 'irb' ) rescue nil)
27
- end
28
-
29
- def ignore_sigint! # ctrl+c
30
- Signal.trap *%w|SIGINT IGNORE|
31
- end
32
- end
33
-
34
- # J-_-L
@@ -1,10 +0,0 @@
1
- require 'zucker'
2
-
3
- class Object
4
- def mcopy
5
- Marshal.load Marshal.dump self
6
- end
7
- end
8
-
9
- # J-_-L
10
-
@@ -1,34 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- def m(levels = 1)
5
- if self.is_a? Module
6
- klass, method_function = self, :public_methods
7
- else
8
- klass, method_function = self.class, :public_instance_methods
9
-
10
- eigen = self.singleton_methods
11
- if !eigen.empty?
12
- puts :Eigenclass # sorry for not being up to date, I just love the word
13
- p self.singleton_methods
14
- end
15
- end
16
-
17
- levels.times{ |level|
18
- if cur = klass.ancestors[level]
19
- p cur # put class name
20
- p cur.send method_function, false # put methods of the class
21
- else
22
- break
23
- end
24
- }
25
-
26
- self # or whatever
27
- end
28
-
29
- alias mm m
30
- alias method_list m
31
- end
32
-
33
- # J-_-L
34
-
@@ -1,19 +0,0 @@
1
- require 'zucker'
2
-
3
- class Object
4
- def not
5
- NotClass.new self
6
- end
7
-
8
- class NotClass < BasicObject
9
- def initialize(receiver)
10
- @receiver = receiver
11
- end
12
-
13
- def method_missing(m, *args, &block)
14
- not @receiver.public_send( m, *args, &block )
15
- end
16
- end
17
- end
18
-
19
- # J-_-L
@@ -1,4 +0,0 @@
1
- require 'zucker'
2
- Zucker.require_this __FILE__
3
-
4
- # J-_-L
@@ -1,17 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- private
5
-
6
- def o(desc = nil)
7
- caller[0].rindex( /:(\d+)(:in (`.*'))?$/ )
8
- m = $3 ? "method #$3, " : ""
9
- d = desc ? "#{desc}: r" : 'R'
10
-
11
- puts "#{d}eached #{m}line #$1 of file #$`"
12
- # [$`, $1.to_i, $3.to_sym, desc]
13
- end
14
- alias oo o
15
- end
16
-
17
- # J-_-L
@@ -1,54 +0,0 @@
1
- require 'zucker'
2
- require 'rbconfig'
3
-
4
- module OS
5
- class << self
6
- def is?(what)
7
- what === RbConfig::CONFIG['host_os']
8
- end
9
- alias is is?
10
-
11
- def to_s
12
- RbConfig::CONFIG['host_os']
13
- end
14
- end
15
-
16
- module_function
17
-
18
- def linux?
19
- OS.is?( /linux|cygwin/ )
20
- end
21
-
22
- def mac?
23
- OS.is?( /mac|darwin/ )
24
- end
25
-
26
- def bsd?
27
- OS.is?( /bsd/ )
28
- end
29
-
30
- def windows?
31
- OS.is?( /mswin|mingw/ )
32
- end
33
-
34
- def solaris?
35
- OS.is?( /solaris|sunos/ )
36
- end
37
-
38
- def posix?
39
- linux? or mac? or bsd? or solaris? or begin
40
- fork do end
41
- true
42
- rescue NotImplementedError, NoMethodError
43
- false
44
- end
45
- end
46
-
47
- #def symbian?
48
- #TODO who knows what symbian returns?
49
- #end
50
-
51
- # ...
52
- end
53
-
54
- # J-_-L
@@ -1,12 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- private
5
-
6
- def q(*args)
7
- puts args.map( &:inspect )*' ' unless args.empty?
8
- end
9
- alias qq q
10
- end
11
-
12
- # J-_-L
@@ -1,12 +0,0 @@
1
- require 'zucker'
2
-
3
- class Regexp
4
- def to_proc
5
- proc do |e|
6
- e.to_s[self]
7
- end
8
- end
9
- end
10
-
11
- # J-_-L
12
-
@@ -1,25 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- private
5
-
6
- def sandbox(rescueblock_or_default=nil)
7
- Thread.start do
8
- $SAFE = 4
9
- yield
10
- end.value
11
- rescue SecurityError => e
12
- if !rescueblock_or_default.nil?
13
- if rescueblock_or_default.is_a? Proc
14
- rescueblock_or_default.call e
15
- else
16
- rescueblock_or_default
17
- end
18
- else
19
- raise e
20
- end
21
- end
22
- end
23
-
24
- # J-_-L
25
-
@@ -1,4 +0,0 @@
1
- require 'zucker'
2
- Zucker.require_this __FILE__
3
-
4
- # J-_-L
@@ -1,21 +0,0 @@
1
- require 'zucker'
2
-
3
- class Module
4
- def square_brackets_for(ivar, assignment = true)
5
- # undef [] if respond_to? :[]
6
- # undef []= if respond_to? :[]=
7
-
8
- define_method :[] do |key|
9
- (instance_variable_get :"@#{ivar}")[key]
10
- end
11
-
12
- if assignment
13
- define_method :[]= do |key, value|
14
- (instance_variable_get :"@#{ivar}")[key] = value
15
- end
16
- end
17
- end
18
- end
19
-
20
- # J-_-L
21
-
@@ -1,54 +0,0 @@
1
- require 'zucker'
2
-
3
- class String
4
- def -(rem)
5
- gsub( Regexp === rem ? rem : rem.to_s, '' )
6
- end
7
-
8
- def ^(pos)
9
- pos = pos.to_i
10
- if pos >= 0
11
- self[pos..-1]
12
- else
13
- self[0...pos]
14
- end
15
- end
16
-
17
- def lchomp(arg = $/)
18
- reverse.chomp(arg).reverse
19
- end
20
-
21
- def lchomp!(arg = $/)
22
- reverse.chomp!(arg).reverse
23
- end
24
-
25
- def ords
26
- unpack 'C*'
27
- # bytes.to_a
28
- end
29
-
30
- def constantize(default_value = nil) # always uses global scope as in AS... is this good?
31
- get_constant = lambda{
32
- self.split(/::/).inject( Object ){ |base_constant, current_constant|
33
- base_constant.const_get current_constant
34
- }
35
- }
36
-
37
- if !default_value && !block_given?
38
- get_constant.call
39
- else
40
- begin
41
- get_constant.call
42
- rescue NameError
43
- if block_given?
44
- yield self
45
- else
46
- default_value
47
- end
48
- end
49
- end
50
- end
51
- end
52
-
53
- # J-_-L
54
-
@@ -1,11 +0,0 @@
1
- require 'zucker'
2
-
3
- def tap_on(obj, &block)
4
- obj.tap &block
5
- end
6
-
7
- def make_new(what, *args, &block)
8
- what.new(*args).tap &block
9
- end
10
-
11
- # J-_-L
@@ -1,4 +0,0 @@
1
- require 'zucker'
2
- Zucker.require_this __FILE__
3
-
4
- # J-_-L
@@ -1,24 +0,0 @@
1
- require 'zucker'
2
-
3
- class String
4
- def +@
5
- self
6
- end
7
-
8
- def -@
9
- to_sym
10
- end
11
- end
12
-
13
- class Symbol
14
- def +@
15
- to_s
16
- end
17
-
18
- def -@
19
- self
20
- end
21
- end
22
-
23
- # J-_-L
24
-
@@ -1,16 +0,0 @@
1
- require 'zucker'
2
-
3
- class Regexp
4
- def |(arg)
5
- Regexp.union self, arg.is_a?(Regexp) ? arg : arg.to_s
6
- end
7
- end
8
-
9
- class String
10
- def |(arg)
11
- Regexp.union self, arg.is_a?(Regexp) ? arg : arg.to_s
12
- end
13
- end
14
-
15
- # J-_-L
16
-
@@ -1,118 +0,0 @@
1
- require 'zucker'
2
- require 'date'
3
- require 'time'
4
-
5
- module RubyVersion
6
- class << self
7
- def to_s
8
- RUBY_VERSION
9
- end
10
-
11
- # comparable
12
- def <=>(other)
13
- value = case other
14
- when Integer
15
- RUBY_VERSION.to_i
16
- when Float
17
- RUBY_VERSION.to_f
18
- when String
19
- RUBY_VERSION
20
- when Date, Time
21
- other.class.parse(RUBY_RELEASE_DATE)
22
- else
23
- other = other.to_s
24
- RUBY_VERSION
25
- end
26
- value <=> other
27
- end
28
- include Comparable
29
-
30
- # chaining for dsl-like language
31
- def is?(other = nil)
32
- if other
33
- RubyVersion == other
34
- else
35
- RubyVersion
36
- end
37
- end
38
- alias is is?
39
-
40
- # aliases
41
- alias below <
42
- alias below? <
43
- alias at_most <=
44
- alias at_most? <=
45
- alias above >
46
- alias above? >
47
- alias at_least >=
48
- alias at_least? >=
49
- alias exactly ==
50
- alias exactly? ==
51
- def not(other)
52
- self != other
53
- end
54
- alias not? not
55
- alias between between?
56
-
57
- # compare dates
58
- def newer_than(other)
59
- if other.is_a? Date or other.is_a? Time
60
- RubyVersion > other
61
- else
62
- RUBY_RELEASE_DATE > other.to_s
63
- end
64
- end
65
- alias newer_than? newer_than
66
-
67
- def older_than(other)
68
- if other.is_a? Date or other.is_a? Time
69
- RubyVersion < other
70
- else
71
- RUBY_RELEASE_DATE < other.to_s
72
- end
73
- end
74
- alias older_than? older_than
75
-
76
- def released_today
77
- RubyVersion.date == Date.today
78
- end
79
- alias released_today? released_today
80
-
81
- # accessors
82
-
83
- def major
84
- RUBY_VERSION.to_i
85
- end
86
- alias main major
87
-
88
- def minor
89
- RUBY_VERSION.split('.')[1].to_i
90
- end
91
- alias mini minor
92
-
93
- def tiny
94
- RUBY_VERSION.split('.')[2].to_i
95
- end
96
-
97
- alias teeny tiny
98
-
99
- def patchlevel
100
- RUBY_PATCHLEVEL
101
- end
102
-
103
- def platform
104
- RUBY_PLATFORM
105
- end
106
-
107
- def release_date
108
- Date.parse RUBY_RELEASE_DATE
109
- end
110
- alias date release_date
111
-
112
- def description
113
- RUBY_DESCRIPTION
114
- end
115
- end
116
- end
117
-
118
- # J-_-L