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,12 +0,0 @@
1
- require 'zucker'
2
-
3
- class Class
4
- def to_proc
5
- Proc.new do |*args|
6
- self.new *args
7
- end
8
- end
9
- end
10
-
11
- # J-_-L
12
-
@@ -1,8 +0,0 @@
1
- require 'zucker'
2
-
3
- require 'zucker'
4
-
5
- require 'zucker/3/D'
6
- require 'zucker/3/mm'
7
- require 'zucker/3/binding'
8
-
@@ -1,37 +0,0 @@
1
- require 'zucker'
2
-
3
- require 'zucker'
4
-
5
- # default
6
- zucker = %w|
7
- alias_for
8
- aliases
9
- array
10
- array2proc
11
- blank
12
- class2proc
13
- egonil
14
- enumerable
15
- hash
16
- hash2proc
17
- info
18
- iterate
19
- ivars
20
- kernel
21
- mcopy
22
- not
23
- regexp2proc
24
- sandbox
25
- square_brackets_for
26
- string
27
- tap
28
- unary
29
- union
30
- |
31
-
32
- # remove 1.9 if 1.8
33
- if RUBY_VERSION < '1.9'
34
- zucker -= %w|not tap union|
35
- end
36
-
37
- zucker.each{|rb| require File.join( 'zucker', '3', rb )}
@@ -1,16 +0,0 @@
1
- require 'zucker'
2
-
3
- def egonil(nil_value = nil)
4
- yield
5
- rescue NoMethodError => e
6
- if e.message =~ /NilClass$/
7
- nil_value
8
- else
9
- raise NoMethodError
10
- end
11
- end
12
-
13
- alias nn egonil
14
-
15
- # J-_-L
16
-
@@ -1,14 +0,0 @@
1
- require 'zucker'
2
-
3
- module Enumerable
4
- def mash
5
- ret = {}
6
- each{ |kv|
7
- ret.store *( yield(kv)[0,2] )
8
- }
9
- ret
10
- end
11
- end
12
-
13
- # J-_-L
14
-
@@ -1,21 +0,0 @@
1
- require 'zucker'
2
-
3
- class Hash
4
- def self.zip(keys,values)
5
- Hash[ *keys.zip( values ).flatten ]
6
- end
7
-
8
- def <<(other)
9
- case
10
- when other.is_a?(Hash)
11
- merge! other
12
- when other.is_a?(Enumerable) || other.respond_to?(:to_splat)
13
- merge! Hash[*other]
14
- else
15
- raise TypeError, 'can only append other Hashs and Enumerables (or Classes that implement to_splat)'
16
- end
17
- end
18
- end
19
-
20
- # J-_-L
21
-
@@ -1,16 +0,0 @@
1
- require 'zucker'
2
-
3
- class Hash
4
- def to_proc
5
- Proc.new{ |obj|
6
- if self.member? obj
7
- self[obj].to_proc.call obj
8
- else
9
- obj
10
- end
11
- }
12
- end
13
- end
14
-
15
- # J-_-L
16
-
@@ -1,169 +0,0 @@
1
- require 'zucker'
2
-
3
- module Info
4
- class << Info
5
- # hash like access
6
- def [](what)
7
- send what
8
- end
9
-
10
- # list available info methods
11
- def list
12
- singleton_methods - [:[], :list, '[]', 'list']
13
- end
14
- end
15
-
16
- module_function
17
-
18
- # current script file
19
- def current_file
20
- __FILE__
21
- end
22
-
23
- def current_file_directory
24
- File.dirname(__FILE__)
25
- end
26
-
27
- # input
28
- def last_input_file
29
- $FILENAME
30
- end
31
-
32
- def last_input_line_number
33
- $.
34
- end
35
-
36
- def last_input
37
- $_
38
- end
39
-
40
- # program
41
- def program_name
42
- $0
43
- end
44
-
45
- def program_arguments
46
- $:
47
- end
48
-
49
- def loaded_programs
50
- $"
51
- end
52
-
53
- def program_data
54
- ::DATA
55
- end
56
-
57
- def child_program_status
58
- $CHILD_STATUS
59
- end
60
-
61
- # system info
62
- def environment
63
- ::ENV
64
- end
65
- alias env environment
66
-
67
- def working_directory
68
- Dir.pwd
69
- end
70
-
71
- def platform
72
- ::RUBY_PLATFORM
73
- end
74
-
75
- def process_id
76
- $$
77
- end
78
-
79
- def load_path
80
- $:
81
- end
82
-
83
- # current
84
- def current_line
85
- __LINE__
86
- end
87
-
88
- def current_method # 1.9
89
- __method__
90
- end
91
-
92
- def current_callstack
93
- caller
94
- end
95
-
96
- # dealing with strings
97
- def gets_separator
98
- $/
99
- end
100
-
101
- def join_separator
102
- $,
103
- end
104
-
105
- def print_separator
106
- $,
107
- end
108
-
109
- def split_separator
110
- $;
111
- end
112
-
113
- # misc
114
- def security_level
115
- $SAFE
116
- end
117
-
118
- def warnings_activated?
119
- $VERBOSE
120
- end
121
-
122
- def debug_activated?
123
- $DEBUG
124
- end
125
-
126
- def last_exception
127
- $!
128
- end
129
-
130
- # defined objects
131
- def global_variables
132
- Object.send :global_variables
133
- end
134
-
135
- def global_constants
136
- Object.constants
137
- end
138
-
139
- # encoding (1.9)
140
- def source_encoding
141
- __ENCODING__
142
- end
143
-
144
- def external_encoding
145
- Encoding.default_external
146
- end
147
-
148
- def internal_encoding
149
- Encoding.default_internal
150
- end
151
-
152
- # ruby version info
153
- def ruby_version
154
- ::RUBY_VERSION
155
- end
156
-
157
- def ruby_patchlevel
158
- ::RUBY_PATCHLEVEL
159
- end
160
-
161
- def ruby_description
162
- ::RUBY_DESCRIPTION
163
- end
164
-
165
- def ruby_release_date
166
- ::RUBY_RELEASE_DATE
167
- end
168
- end
169
-
@@ -1,25 +0,0 @@
1
- require 'zucker'
2
-
3
- def iterate(*params)
4
- # params.shift.zip(*params).each{ |*elements| yield *elements }
5
-
6
- first = params.shift
7
- if params.empty? # single param - like each
8
- if block_given?
9
- first.map{|e| yield e }
10
- else
11
- first.map
12
- end
13
- else
14
- padded_first = Array.new( [first, *params].max_by(&:size).size ){|i| first[i] } # append nils
15
- obj = padded_first.zip *params
16
- if block_given?
17
- obj.map{|es| yield *es }
18
- else
19
- obj.map.to_enum
20
- end
21
- end
22
- end
23
-
24
- # J-_-L
25
-
@@ -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,50 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- def activate_warnings!
5
- $VERBOSE = true
6
- end
7
-
8
- def deactivate_warnings!
9
- $VERBOSE = false
10
- end
11
-
12
- def library?
13
- __FILE__ != $PROGRAM_NAME
14
- end
15
-
16
- def executed_directly?
17
- __FILE__ == $PROGRAM_NAME
18
- end
19
- alias standalone? executed_directly?
20
-
21
- def ignore_sigint! # ctrl+c
22
- Signal.trap *%w|SIGINT IGNORE|
23
- end
24
-
25
- # version getter
26
- def ruby_1_9?
27
- RUBY_VERSION[2,1] == '9'
28
- end
29
-
30
- def ruby_1_8?
31
- RUBY_VERSION[2,1] == '8'
32
- end
33
-
34
- def ruby_1_9!
35
- if RUBY_VERSION[2,1] != '9'
36
- fail NotImplementedError, "Sorry, this script requires Ruby 1.9, but was executed with a different Ruby version!"
37
- end
38
- true
39
- end
40
-
41
- def ruby_1_8!
42
- if RUBY_VERSION[2,1] != '8'
43
- fail NotImplementedError, "Sorry, this script requires Ruby 1.8, but was executed with a different Ruby version!"
44
- end
45
- true
46
- end
47
- end
48
-
49
- # J-_-L
50
-
@@ -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,33 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- def method_list(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 method_list
30
- end
31
-
32
- # J-_-L
33
-