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
data/CHANGELOG CHANGED
@@ -1,3 +1,17 @@
1
+ 2011-01-22 | Zucker 9
2
+ * removed history versions (sorry, it caused too much gem/rdoc troubles)
3
+ * add file cube: File.delete! and File.gsub
4
+ * debug pack improvements
5
+ * binding: typos + return nil
6
+ * cc: support for ripl + return nil
7
+ * mm: also show eigenclass for modules + nicer displaying + return nil
8
+ * added Regexp#visualize
9
+ * removed optional sandbox param
10
+ * renamed xxx2proc to xxx_to_proc
11
+ * changed rakefile/rspec/gemspec structure
12
+ * more minor fixes and improvements
13
+
14
+
1
15
  2010-10-06 | Zucker 8
2
16
  * fixed a little alias_for bug
3
17
  * disabled rdoc creation when installing (in favour of the custom docs)
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 Jan Lelis
1
+ Copyright (c) 2010-2011 Jan Lelis
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README CHANGED
@@ -2,6 +2,6 @@ See http://rubyzucker.info or doc/zucker_doc.html
2
2
 
3
3
  Please see the github wiki page, for discussion and contributing: http://wiki.github.com/janlelis/zucker
4
4
 
5
- Copyright (c) 2010 Jan Lelis, http://rbjl.net, released under the MIT license
5
+ Copyright (c) 2010-2011 Jan Lelis, http://rbjl.net, released under the MIT license
6
6
 
7
7
  J-_-L
data/Rakefile CHANGED
@@ -1,7 +1,6 @@
1
1
  require 'rake'
2
- # require 'rubygems'
3
- require 'rake/gempackagetask'
4
- require 'spec/rake/spectask'
2
+ require 'rspec/core/rake_task'
3
+ require 'fileutils'
5
4
 
6
5
  if RUBY_VERSION >= '1.9.2'
7
6
  require_relative 'lib/zucker'
@@ -9,47 +8,49 @@ else
9
8
  require 'lib/zucker'
10
9
  end
11
10
 
11
+ @path = Rake.application.find_rakefile_location[1]
12
+
12
13
  desc 'Build documentation'
13
14
  task 'doc' do
14
- zucker_path = Rake.application.find_rakefile_location[1]
15
- ruby File.join(zucker_path, 'doc/zucker_doc.rb'), zucker_path
15
+ ruby File.join(@path, 'doc/zucker_doc.rb'), @path
16
16
  end
17
17
 
18
18
  task 'default' => 'spec'
19
- Spec::Rake::SpecTask.new('spec') do |t|
20
- t.spec_files = FileList['spec/*.rb']
19
+ RSpec::Core::RakeTask.new('spec') do |t|
20
+ t.ruby_opts = "-r " + File.join(@path, 'spec', 'spec_helper')
21
+
21
22
  if RUBY_VERSION < '1.9'
22
- t.spec_files -= Zucker::NON_1_8_CUBES.map{|e| "spec/#{e}_spec.rb"}
23
+ t.pattern = File.join(@path, 'spec', '*_spec.rb')
24
+ else
25
+ t.pattern = File.join(@path, 'spec', '*.rb')
23
26
  end
24
27
  end
25
28
 
26
29
  # gem
27
- spec = Gem::Specification.new do |s|
28
- s.name = 'zucker'
29
- s.version = Zucker::VERSION
30
- s.date = Zucker::DATE
31
- s.authors = ['Jan Lelis','and others']
32
- s.email = 'mail@janlelis.de'
33
- s.summary = "Sweeten your Ruby code with this syntactic sugar :).
34
- Adds a lot of little helpers that you do not want to miss again.
35
- See http://rubyzucker.info"
36
- s.description = s.summary
37
- s.homepage = 'http://rubyzucker.info'
38
- s.files = FileList[ '[a-zA-Z]*', 'lib/**/*' ].to_a
39
- s.require_paths = ["lib"]
40
- s.required_ruby_version = '>= 1.8.7' # 1.9 recommended
41
- s.add_development_dependency 'coderay'
42
- s.has_rdoc = false
43
- s.rdoc_options = '--version' # don't generate
30
+ def gemspec
31
+ @gemspec ||= eval(File.read( File.join(@path, 'zucker.gemspec') ), binding, 'zucker.gemspec')
32
+ end
33
+
34
+ desc "Build the gem"
35
+ task :gem => :gemspec do
36
+ sh "gem build zucker.gemspec"
37
+ FileUtils.mkdir_p 'pkg'
38
+ FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", 'pkg'
39
+ end
40
+
41
+ desc "Install the gem locally"
42
+ task :install => :gem do
43
+ sh %{gem install pkg/#{gemspec.name}-#{gemspec.version}}
44
44
  end
45
45
 
46
- Rake::GemPackageTask.new(spec) do |pkg|
47
- pkg.gem_spec = spec
46
+ desc "Validate the gemspec"
47
+ task :gemspec do
48
+ gemspec.validate
48
49
  end
49
50
 
50
51
  # release
51
52
  desc 'run specs, build doc, bump version, set date, copy version directories and add these changes to git'
52
- task 'prepare_release' => %w[spec doc] do # run specs and doc
53
+ task 'prepare_release' => %w[spec] do # run specs
53
54
  # really want to release?
54
55
  print 'Do you really want to release? ...then enter release: '
55
56
  exit if $stdin.gets.chomp != 'release'
@@ -61,15 +62,7 @@ task 'prepare_release' => %w[spec doc] do # run specs and doc
61
62
  zucker_rb.sub! /DATE\s*=.*$/, "DATE = '#{Date.today}'"
62
63
  File.open 'lib/zucker.rb','w' do |f| f.write zucker_rb end
63
64
 
64
- # copy version directories
65
- `mkdir lib/zucker/#@v`
66
- `cp lib/zucker/*.* lib/zucker/#@v/`
67
- `mkdir desc/#@v`
68
- `cp desc/*.* desc/#@v/`
69
- `mkdir doc/#@v`
70
- `cp doc/*.* doc/#@v/`
71
- `mkdir spec/#@v`
72
- `cp spec/*.* spec/#@v/`
65
+ `rake doc`
73
66
 
74
67
  # add changes to git and tag
75
68
  `git add .`
@@ -80,10 +73,10 @@ task 'prepare_release' => %w[spec doc] do # run specs and doc
80
73
  puts "prepared Zucker #@v gem release"
81
74
  end
82
75
 
83
- desc 'prepare_release, build gem, and push it to git and rubygems'
76
+ desc 'prepare_release, build gem, and push it to git and display rubygems push command'
84
77
  task 'release' => %w[gem] do
78
+ `git push origin master`
85
79
  `git push origin master --tags`
86
- last_gem = Dir['pkg/zucker-*.gem'].sort[-1] # TODO better sorting or date for zucker-10
87
- exit if last_gem =~ /next/ # some error happened, do not pollute rubygems.org
80
+ last_gem = Dir['pkg/zucker-*.gem'].sort[-1] # TODO read version from lib/zucker.rb for zucker-10
88
81
  puts "gem push pkg/#{last_gem}"
89
82
  end
@@ -0,0 +1,17 @@
1
+ alias_for:
2
+ summary: 'A different way to create aliases: Reversed order and you can pass multiple alias names.'
3
+ why: "It's clearer in which order to put the arguments."
4
+ methods:
5
+ alias_for, aliases_for: |
6
+ alias_for :methods, :ms # creates an alias for the method :methods with the name ms
7
+ module Enumerable
8
+ aliases_for :zip, :with, :%
9
+ end # creates multiple aliases
10
+ Module#method_alias_for, Module#method_aliases_for: |
11
+ # same as alias_for, but using Module#alias_method instead of alias
12
+ info:
13
+ - Thanks to Kristian Mandrup for the idea and alias method specs.
14
+ versions:
15
+ - 1.9
16
+ - 1.8
17
+
@@ -0,0 +1,18 @@
1
+ aliases:
2
+ summary: Some convenient aliases (and constants) for existing methods.
3
+ methods:
4
+ Object#is_an?: Object.is_a?
5
+ Enumerable#with: Enumerable#zip
6
+ Enumerable#%: Enumerable#zip
7
+ Array#**: Array#product
8
+ Hash#+: Hash#merge
9
+ Binding#[]: Binding#eval
10
+ File.filename: File.basename
11
+ Dir.join: File.join
12
+ Dir.split: File.split
13
+ Infinity: 1.0 / 0.0
14
+ NaN: 0.0 / 0.0
15
+ versions:
16
+ - 1.9
17
+ - 1.8
18
+
@@ -0,0 +1,13 @@
1
+ array:
2
+ summary: Methods one could miss for ⇧Array⇧.
3
+ why:
4
+ - ⇧Array⇧ has ⇧&⇧ and ⇧|⇧, but why does it not have ⇧^⇧?
5
+ - ⇧sum⇧ is just needed pretty often..
6
+ methods:
7
+ Array#^: "[1,2,3,4] ^ [3,4,5,6] # => [1,2,5,6]"
8
+ Array#sum: "[1,2,3,4,5].sum # => 15"
9
+ Array#chrs: "[72, 97, 108, 108, 111].chrs # => 'Hallo'"
10
+ versions:
11
+ - 1.9
12
+ - 1.8
13
+
@@ -0,0 +1,16 @@
1
+ array_to_proc:
2
+ summary: Calls the method named by the first paramenter and passes the other elements as paramaters.
3
+ why: When using ⇧Symbol#to_proc⇧, you often wish to pass parameters.
4
+ methods:
5
+ Array#to_proc: |
6
+ [1,2,3,4].map &[:*, 5] # => [5, 10, 15, 20]
7
+ # you can also chain them, if the first parameter is an Array
8
+ [1,2,3,4].map &[[:to_s, 2],[:+, 'b']] # => ["1b", "10b", "11b", "100b"]
9
+ info:
10
+ - Inspired by →this article→http://www.sanityinc.com/articles/adding-array-to-proc-to-ruby→.
11
+ - "More about →to_proc→http://rbjl.net/29-become-a-proc-star→."
12
+ - Chaining inspired by →eregon→http://github.com/eregon/Classes/blob/master/to_proc.rb→.
13
+ versions:
14
+ - 1.9
15
+ - 1.8
16
+
@@ -0,0 +1,22 @@
1
+ binding:
2
+ summary: Adds a ⇧Binding#vars⇧. It gives you information about the current environment variables.
3
+ methods:
4
+ Binding#variables, Binding#vars: |
5
+ # shows your current environment's variables, irb example:
6
+ >> a=3
7
+ => 3
8
+ >> binding.vars
9
+ => #<Binding:0x94c4b50>
10
+ local variables
11
+ - a: 3
12
+ - _: #<Binding:0x94c4b50>
13
+ (instance variables)
14
+ - none
15
+ self
16
+ - main
17
+ block_given?
18
+ - false
19
+ versions:
20
+ - 1.9
21
+ - 1.8
22
+
@@ -0,0 +1,9 @@
1
+ blank:
2
+ summary: Does pretty the same as in ActiveSupport (Every object can be asked if it is blank).
3
+ why: It's too familiar ;)
4
+ methods:
5
+ Object#blank?: "'an object'.blank? # => false"
6
+ versions:
7
+ - 1.9
8
+ - 1.8
9
+
@@ -0,0 +1,10 @@
1
+ cc:
2
+ summary: ⇧c⇧ outputs the current method callstack.
3
+ methods:
4
+ c, cc: |
5
+ c # shows the method callstack
6
+ c true # do not hide irb/ripl callstack
7
+ versions:
8
+ - 1.9
9
+ - 1.8
10
+
@@ -0,0 +1,11 @@
1
+ class_to_proc:
2
+ summary: Creates a new instance of the class.
3
+ methods:
4
+ Class#to_proc: "[ [1,2],[3,5,6,7,3] ].map(&Set) # => [ Set[1,2], Set[5,6,7,3] ]"
5
+ info:
6
+ - Inspired by Ruby Facets.
7
+ - "More about →to_proc→http://rbjl.net/29-become-a-proc-star→."
8
+ versions:
9
+ - 1.9
10
+ - 1.8
11
+
@@ -0,0 +1,23 @@
1
+ dd:
2
+ summary: Easy debug printing with the ⇧p⇧ alternative ⇧.d⇧. It outputs to stdout and returns ⇧self⇧. Accepts a block.
3
+ methods:
4
+ Object#d, Object#dd: |
5
+ some.d.methods.d.noone.d.knows.d
6
+ # ...outputs 4 lines with the inspected objects
7
+ # => (result)
8
+
9
+ 21+Math.sin(42).d
10
+ # outputs -0.916521547915634
11
+ # => 20.0834784520844
12
+
13
+ name = 'Earth'
14
+ 'Hello ' + name.d{|e| "The length is: #{e.size}"}
15
+ # outputs "The length is: 5"
16
+ # => 'Hello Earth'
17
+ info:
18
+ - "This is inspired by the →⇧.tap⇧ method→http://moonbase.rydia.net/mental/blog/programming/eavesdropping-on-expressions→."
19
+ - There is also ⇧tap⇧ cube with more ⇧tap⇧ methods.
20
+ versions:
21
+ - 1.9
22
+ - 1.8
23
+
@@ -0,0 +1,15 @@
1
+ egonil:
2
+ summary: Creates a block, where ⇧nil⇧ does not raise ⇧NoMethodError⇧s.
3
+ methods:
4
+ egonil, nn: |
5
+ egonil do
6
+ nil.some_methods.that[:do].not.exist
7
+ end # => nil
8
+
9
+ nn{ nil.some_methods.that[:do].not.exist } # => nil
10
+ info:
11
+ - See →this post→http://rbjl.net/26-the-28-bytes-of-ruby-joy→ for more information and discussion.
12
+ versions:
13
+ - 1.9
14
+ - 1.8
15
+
@@ -0,0 +1,15 @@
1
+ engine:
2
+ summary: Adds a ⇧RubyEngine⇧ class for easy compatibility checks.
3
+ methods:
4
+ RubyEngine: |
5
+ RubyEngine: "# outputs the interpreter name"
6
+ RubyEngine.mri?: "RubyEngine.mri? # true if using the official Ruby interpreter"
7
+ RubyEngine.jruby?: "RubyEngine.jruby? # true if using JRuby"
8
+ RubyEngine.rubinius?: "RubyEngine.rubinius? # true if using rubinius"
9
+ RubyEngine.ree?: "RubyEngine.ree? # true if using enterprise edition"
10
+ RubyEngine.ironruby?: "RubyEngine.ironruby? # true if using IronRuby"
11
+ RubyEngine.macruby?: "RubyEngine.macruby? # true if using MacRuby"
12
+ RubyEngine.cardinal?: "RubyEngine.cardinal? # true if using parrot"
13
+ versions:
14
+ - 1.9
15
+ - 1.8
@@ -0,0 +1,10 @@
1
+ enumerable:
2
+ summary: ⇧Enumerable⇧ extensions.
3
+ methods:
4
+ Enumerable#mash: "[1,2,3].mash{|e| [e, e.to_s] } # => {1=>'1',2=>'2',3=>'3'}"
5
+ info:
6
+ - Inspired by Ruby Facets' ⇧mash⇧.
7
+ versions:
8
+ - 1.9
9
+ - 1.8
10
+
@@ -0,0 +1,15 @@
1
+ file:
2
+ summary: Extensions for ⇧File⇧.
3
+ methods:
4
+ File#gsub: |
5
+ File.gsub 'some_filename', {
6
+ /hi/ => 'cu',
7
+ /\d/ => proc do ($&.to_i+1).to_s end
8
+ } # will read the file and substitute the hash keys with their values
9
+ File#delete!: "File.delete! 'some_filename' # will delete the file, don't care if it exist."
10
+ info:
11
+ - "Idea for ⇧.File#delete!⇧. from sugar-high."
12
+ versions:
13
+ - 1.9
14
+ - 1.8
15
+
@@ -0,0 +1,14 @@
1
+ hash:
2
+ summary: Some sugar for dealing with hashs.
3
+ methods:
4
+ Hash.zip: "Hash.zip [1,2,3], [4,5,6] # => {1=>4, 2=>5, 3=>6}"
5
+ Hash#<<: |
6
+ {1=>2} << [3, 4] # => { 1=>2, 3=>4 }
7
+ {1=>2} << { 5=>6 } # => { 1=>2, 5=>6 }
8
+ Hash#&: "{ 1=>4, 2=>5, 3=>6 } & { 1=>4, 2=>7 } # => { 1=>4 }"
9
+ info:
10
+ - Some of the operators are inspired by Ruby Facets.
11
+ versions:
12
+ - 1.9
13
+ - 1.8
14
+
@@ -0,0 +1,10 @@
1
+ hash_to_proc:
2
+ summary: Use a hash to apply procs to specific objects.
3
+ methods:
4
+ Hash#to_proc: "[1,2,3,4].map(&{\n2 => lambda {|e| e + 1000},\n4 => :to_s,\n}) # => [1, 1002, 3, '4']"
5
+ info:
6
+ - "More about →to_proc→http://rbjl.net/29-become-a-proc-star→."
7
+ versions:
8
+ - 1.9
9
+ - 1.8
10
+
@@ -0,0 +1,20 @@
1
+ info:
2
+ summary: Access environment information with the ⇧Info⇧ module.
3
+ why: "You don't need to remember in which global variable, constant or special method the information you are searching for is hidden."
4
+ methods:
5
+ Info: |
6
+ # for example
7
+ Info.working_directory # Dir.pwd
8
+ Info.load_path # $:
9
+ Info.platform # RUBY_PLATFORM
10
+ Info.current_file # similar to __FILE__
11
+ # you could also add them to the global namespace with: include Info
12
+ # see the source file for the list of accessors or
13
+ Info.list
14
+ info:
15
+ - Please note that it is not possible to put some of __THOSE_KEYWORDS__ in methods, so the result might slightly differ. This might affect ⇧current_file⇧, ⇧current_file_directory⇧, ⇧current_line⇧ and ⇧current_method⇧.
16
+ - Thanks to Facets for the ⇧caller⇧ Regexp.
17
+ versions:
18
+ - 1.9
19
+ - 1.8 (not all information)
20
+
@@ -0,0 +1,16 @@
1
+ iterate:
2
+ summary: Iterate over one or more collections.
3
+ why: "It's like ⇧.each⇧ with two differences: It feels more like a control structure and you can easily iterate over multiple objects."
4
+ methods:
5
+ iterate: |
6
+ iterate [1,2], [3,4,5] do |e,f|
7
+ puts "#{e},#{f}"
8
+ end
9
+ # outputs
10
+ # 1,3
11
+ # 2,4
12
+ # ,5
13
+ versions:
14
+ - 1.9
15
+ - 1.8
16
+
@@ -0,0 +1,19 @@
1
+ ivars:
2
+ summary: This method lets you easily assign lots of instance variables.
3
+ why: |
4
+ Often, you have to write boilerplate code for assigning instance variables, for example this one:
5
+ ⇧def initialize(variable1, variable2)
6
+   @variable1, @variable2 = variable1, variable2
7
+ end⇧
8
+ methods:
9
+ instance_variables_from, ivars: |
10
+ def a_method(a = 1, b = 2)
11
+ instance_variables_from binding # assigns @a and @b
12
+
13
+ params = {:c => 3, :d => 4}
14
+ instance_variables_from params # # assigns @c and @d
15
+ end
16
+ versions:
17
+ - 1.9
18
+ - 1.8
19
+