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,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,50 +0,0 @@
1
- require 'zucker'
2
-
3
- require 'rbconfig'
4
-
5
- module OS
6
- class << OS
7
- def is?(what)
8
- what === RbConfig::CONFIG['host_os']
9
- end
10
- alias is is?
11
-
12
- def to_s
13
- RbConfig::CONFIG['host_os']
14
- end
15
- end
16
-
17
- module_function
18
-
19
- def linux?
20
- OS.is? /linux|cygwin/
21
- end
22
-
23
- def mac?
24
- OS.is? /mac|darwin/
25
- end
26
-
27
- def bsd?
28
- OS.is? /bsd/
29
- end
30
-
31
- def windows?
32
- OS.is? /mswin|win|mingw/
33
- end
34
-
35
- def solaris?
36
- OS.is? /solaris|sunos/
37
- end
38
-
39
- def posix?
40
- linux? or mac? or bsd? or solaris? or Process.respond_to?(:fork)
41
- end
42
-
43
- #def symbian?
44
- #TODO who knows what symbian returns?
45
- #end
46
-
47
- # ...
48
- end
49
-
50
- # J-_-L
@@ -1,7 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- def q(*args)
5
- puts args.map( &:inspect ).join ' '
6
- end
7
- end
@@ -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,23 +0,0 @@
1
- require 'zucker'
2
-
3
- module Kernel
4
- def sandbox(rescueblock_or_default=nil)
5
- Thread.start do
6
- $SAFE = 4
7
- yield
8
- end.value
9
- rescue SecurityError => e
10
- if !rescueblock_or_default.nil?
11
- if rescueblock_or_default.is_a? Proc
12
- rescueblock_or_default.call e
13
- else
14
- rescueblock_or_default
15
- end
16
- else
17
- raise e
18
- end
19
- end
20
- end
21
-
22
- # J-_-L
23
-
@@ -1,22 +0,0 @@
1
- require 'zucker'
2
-
3
- def square_brackets_for(ivar, assignment = true)
4
- # undef [] if respond_to? :[]
5
- # undef []= if respond_to? :[]=
6
-
7
- #instance_eval do
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
-
19
- end
20
-
21
- # J-_-L
22
-
@@ -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,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,115 +0,0 @@
1
- require 'zucker'
2
-
3
- module RubyVersion
4
- class << self
5
- def to_s
6
- RUBY_VERSION
7
- end
8
-
9
- def is?(other_version = nil)
10
- compare other_version
11
- end
12
- alias is is?
13
-
14
- # accessors
15
-
16
- def major
17
- RUBY_VERSION.to_i
18
- end
19
- alias main major
20
-
21
- def minor
22
- RUBY_VERSION.split('.')[1].to_i
23
- end
24
- alias mini minor
25
-
26
- def tiny
27
- RUBY_VERSION.split('.')[2].to_i
28
- end
29
- alias teeny tiny
30
-
31
- def patchlevel
32
- RUBY_PATCHLEVEL
33
- end
34
-
35
- def platform
36
- RUBY_PLATFORM
37
- end
38
-
39
- def release_date
40
- Date.parse RUBY_RELEASE_DATE
41
- end
42
- alias date release_date
43
-
44
- def description
45
- RUBY_DESCRIPTION
46
- end
47
-
48
- private
49
-
50
- def compare(other_version)
51
- case other_version
52
- when nil
53
- matcher
54
- when Float
55
- other_version == RUBY_VERSION.to_f
56
- else
57
- other_version.to_s == RUBY_VERSION
58
- end
59
- end
60
-
61
-
62
- def matcher
63
- return @ruby if @ruby
64
-
65
- @ruby = RUBY_VERSION.dup
66
- @ruby.instance_eval do
67
- alias below <
68
- alias below? <
69
- alias at_most <=
70
- alias at_most? <=
71
- alias above >
72
- alias above? >
73
- alias at_least >=
74
- alias at_least? >=
75
- alias exactly ==
76
- alias exactly? ==
77
- def not(other)
78
- self != other
79
- end
80
- alias not? not
81
- alias between between?
82
-
83
- def newer_than(other)
84
- case other.class
85
- when Date, Time
86
- other.class.parse(RUBY_RELEASE_DATE) > other
87
- else
88
- RUBY_RELEASE_DATE > other.to_s
89
- end
90
- end
91
- alias newer_than? newer_than
92
-
93
- def older_than(other)
94
- case other.class
95
- when Date, Time
96
- other.class.parse(RUBY_RELEASE_DATE) < other
97
- else
98
- RUBY_RELEASE_DATE < other.to_s
99
- end
100
- end
101
- alias older_than? older_than
102
-
103
- def released_today
104
- RubyVersion.date == Date.today
105
- end
106
- alias released_today? released_today
107
- end
108
-
109
- @ruby.freeze
110
- end
111
-
112
- end
113
- end
114
-
115
- # J-_-L
@@ -1,21 +0,0 @@
1
- require 'zucker'
2
-
3
- def alias_for(m, *aliases)
4
- aliases.each{ |a|
5
- class_eval "alias #{a} #{m}"
6
- }
7
- end
8
- alias aliases_for alias_for
9
-
10
- class Module
11
- def alias_method_for(m, *alias_methods)
12
- alias_methods.each{ |a|
13
- class_eval do
14
- alias_method a.to_sym, m.to_sym
15
- end
16
- }
17
- end
18
- alias alias_methods_for alias_method_for
19
- end
20
-
21
- # J-_-L
@@ -1,51 +0,0 @@
1
- require 'zucker'
2
-
3
- class Object
4
- alias is_an? is_a? # thanks to utility_belt
5
- end
6
-
7
- module Enumerable
8
- alias with zip
9
- alias % zip
10
- end
11
-
12
- class Array
13
- alias ** product
14
- alias contains? include?
15
- end
16
-
17
- class String
18
- alias contains? include?
19
- end
20
-
21
- class Hash
22
- alias + merge
23
- end
24
-
25
- class Binding
26
- #alias [] eval
27
- def [](expr)
28
- self.eval "#{expr}"
29
- end
30
- end
31
-
32
- class << File
33
- alias filename basename # thanks rdp :)
34
- end
35
-
36
- class << Dir
37
- def join(*args)
38
- File.join(*args)
39
- end
40
-
41
- def split(*args)
42
- File.split(*args)
43
- end
44
- end
45
-
46
- # constants - who would use these in real-world code for other things?
47
- Infinity = 1.0 / 0.0 # or 2*Float::MAX or Float::INFINITY
48
- NaN = 0.0 / 0.0
49
-
50
- # J-_-L
51
-
@@ -1,4 +0,0 @@
1
- require 'zucker'
2
- Zucker.require_all
3
-
4
- # J-_-L