facets 2.6.0 → 2.7.0

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 (321) hide show
  1. data/HISTORY.rdoc +331 -35
  2. data/MANIFEST +685 -826
  3. data/{doc/guide/notes.rd → NOTES} +0 -0
  4. data/README.rdoc +73 -25
  5. data/Rakefile +245 -2
  6. data/TODO +5 -0
  7. data/demo/hook.rd +47 -0
  8. data/demo/scenario_require.rd +9 -0
  9. data/doc/README.more +24 -6
  10. data/doc/manual/about.rb +47 -0
  11. data/doc/manual/annotations.rdoc +60 -0
  12. data/doc/manual/associations.rdoc +55 -0
  13. data/doc/manual/blockups.rdoc +101 -0
  14. data/doc/manual/capsule.rdoc +34 -0
  15. data/doc/manual/command.rdoc +177 -0
  16. data/doc/manual/core.rdoc +37 -0
  17. data/doc/manual/faq.rdoc +32 -0
  18. data/doc/manual/typecast.html +112 -0
  19. data/lib/core/facets.rb +359 -11
  20. data/lib/core/facets/array/combination.rb +3 -3
  21. data/lib/core/facets/array/index.rb +4 -1
  22. data/lib/core/facets/array/permutation.rb +2 -2
  23. data/lib/core/facets/array/product.rb +1 -1
  24. data/lib/core/facets/binding/eval.rb +1 -1
  25. data/lib/core/facets/denumerable.rb +76 -0
  26. data/lib/core/facets/duplicable.rb +34 -0
  27. data/lib/core/facets/enumerable/count.rb +10 -4
  28. data/lib/core/facets/enumerable/defer.rb +77 -0
  29. data/lib/core/facets/enumerable/each_by.rb +1 -1
  30. data/lib/core/facets/enumerable/every.rb +35 -0
  31. data/lib/{more/facets/elementwise.rb → core/facets/enumerable/ewise.rb} +0 -0
  32. data/lib/core/facets/enumerable/filter.rb +25 -0
  33. data/lib/core/facets/enumerable/group_by.rb +1 -1
  34. data/lib/core/facets/enumerable/none.rb +3 -2
  35. data/lib/core/facets/enumerable/one.rb +3 -2
  36. data/lib/core/facets/enumerable/per.rb +61 -0
  37. data/lib/core/facets/exception/raised.rb +14 -0
  38. data/lib/core/facets/integer/odd.rb +5 -1
  39. data/lib/core/facets/kernel/__dir__.rb +13 -3
  40. data/lib/core/facets/kernel/__here__.rb +14 -0
  41. data/lib/core/facets/kernel/__method__.rb +9 -3
  42. data/lib/core/facets/kernel/ask.rb +1 -0
  43. data/lib/core/facets/kernel/equate.rb +13 -0
  44. data/lib/core/facets/kernel/extension.rb +9 -0
  45. data/lib/core/facets/kernel/identical.rb +4 -0
  46. data/lib/core/facets/kernel/instance_exec.rb +2 -1
  47. data/lib/core/facets/kernel/method.rb +49 -0
  48. data/lib/core/facets/kernel/object_send.rb +2 -2
  49. data/lib/core/facets/kernel/{state.rb → object_state.rb} +23 -12
  50. data/lib/core/facets/kernel/require_all.rb +6 -1
  51. data/lib/core/facets/kernel/require_local.rb +8 -1
  52. data/lib/core/facets/kernel/require_relative.rb +52 -0
  53. data/lib/core/facets/kernel/source_location.rb +13 -0
  54. data/lib/core/facets/kernel/tap.rb +13 -6
  55. data/lib/core/facets/module/attr_setter.rb +57 -0
  56. data/lib/core/facets/module/instance_method.rb +24 -0
  57. data/lib/core/facets/module/module_load.rb +60 -44
  58. data/lib/core/facets/module/module_require.rb +1 -0
  59. data/lib/core/facets/nilclass/to_f.rb +1 -1
  60. data/lib/core/facets/objectspace/op_fetch.rb +3 -0
  61. data/lib/core/facets/proc/curry.rb +4 -3
  62. data/lib/core/facets/string/bytes.rb +10 -4
  63. data/lib/core/facets/string/camelcase.rb +6 -5
  64. data/lib/core/facets/string/chars.rb +5 -1
  65. data/lib/core/facets/string/each_char.rb +1 -1
  66. data/lib/core/facets/string/each_word.rb +1 -1
  67. data/lib/core/facets/string/lines.rb +11 -4
  68. data/lib/core/facets/string/start_with.rb +9 -2
  69. data/lib/core/facets/string/unfold.rb +27 -0
  70. data/lib/core/facets/symbol/succ.rb +3 -3
  71. data/lib/core/facets/symbol/thrown.rb +20 -0
  72. data/lib/core/facets/symbol/to_proc.rb +3 -2
  73. data/lib/core/facets/time/to_time.rb +1 -1
  74. data/lib/core/facets/to_hash.rb +41 -100
  75. data/lib/core/facets/unboundmethod/name.rb +20 -23
  76. data/lib/more/facets/ansicode.rb +1 -10
  77. data/lib/more/facets/autoarray.rb +3 -31
  78. data/lib/more/facets/basicobject.rb +73 -0
  79. data/lib/more/facets/blankslate.rb +2 -66
  80. data/lib/{lore → more}/facets/cgi.rb +0 -0
  81. data/lib/more/facets/class_extend.rb +1 -0
  82. data/lib/{lore → more}/facets/continuation.rb +0 -0
  83. data/lib/{lore → more}/facets/date.rb +3 -3
  84. data/lib/more/facets/enumargs.rb +192 -0
  85. data/lib/more/facets/enumerablepass.rb +2 -216
  86. data/lib/more/facets/enumerator.rb +62 -0
  87. data/lib/more/facets/{equatable.rb → equitable.rb} +11 -11
  88. data/lib/more/facets/expirable.rb +13 -41
  89. data/lib/{lore → more}/facets/fileutils.rb +0 -0
  90. data/lib/{lore → more}/facets/fileutils/head.rb +0 -0
  91. data/lib/{lore → more}/facets/fileutils/safe_ln.rb +0 -0
  92. data/lib/{lore → more}/facets/fileutils/slice.rb +0 -0
  93. data/lib/{lore → more}/facets/fileutils/tail.rb +0 -0
  94. data/lib/{lore → more}/facets/fileutils/wc.rb +0 -0
  95. data/lib/{lore → more}/facets/fileutils/whereis.rb +0 -0
  96. data/lib/{lore → more}/facets/fileutils/which.rb +0 -0
  97. data/lib/{lore → more}/facets/getoptlong.rb +0 -0
  98. data/lib/more/facets/hook.rb +2 -29
  99. data/lib/more/facets/inheritor.rb +2 -2
  100. data/lib/more/facets/instance_eval.rb +50 -0
  101. data/lib/more/facets/instance_function.rb +78 -0
  102. data/lib/more/facets/main.rb +20 -15
  103. data/lib/more/facets/memoize.rb +1 -113
  104. data/lib/more/facets/module/attr.rb +83 -0
  105. data/lib/more/facets/module/attr_tester.rb +44 -0
  106. data/lib/more/facets/module/attr_toggler.rb +59 -0
  107. data/lib/more/facets/module/attr_validator.rb +34 -0
  108. data/lib/more/facets/{class_extension.rb → module/class_extend.rb} +21 -13
  109. data/lib/more/facets/once.rb +59 -0
  110. data/lib/more/facets/openmodule.rb +1 -0
  111. data/lib/more/facets/orderedhash.rb +1 -33
  112. data/lib/{lore → more}/facets/ostruct.rb +0 -0
  113. data/lib/more/facets/ostructable.rb +1 -4
  114. data/lib/more/facets/partial.rb +18 -16
  115. data/lib/{lore → more}/facets/pathname.rb +0 -0
  116. data/lib/more/facets/preinitialize.rb +157 -0
  117. data/lib/{lore → more}/facets/rbconfig.rb +0 -0
  118. data/lib/more/facets/recorder.rb +1 -2
  119. data/lib/{lore → more}/facets/set.rb +0 -0
  120. data/lib/{lore → more}/facets/shellwords.rb +0 -0
  121. data/lib/{lore → more}/facets/uri.rb +0 -0
  122. data/lib/{lore → more}/facets/yaml.rb +0 -0
  123. data/lib/{lore → more}/facets/zlib.rb +0 -0
  124. data/meta/loadpath +0 -1
  125. data/meta/sitemap +4 -0
  126. data/meta/version +1 -1
  127. data/test/core/enumerable/test_count.rb +1 -1
  128. data/test/{more/test_filter.rb → core/enumerable/test_defer.rb} +24 -22
  129. data/test/{more/test_elementor.rb → core/enumerable/test_every.rb} +2 -15
  130. data/test/core/enumerable/test_ewise.rb +23 -0
  131. data/test/core/enumerable/test_per.rb +18 -0
  132. data/test/core/enumerable/test_take.rb +13 -0
  133. data/test/core/kernel/test_deepcopy.rb +1 -1
  134. data/test/{more/test_1stclassmethod.rb → core/kernel/test_method.rb} +2 -7
  135. data/test/core/kernel/test_tap.rb +1 -1
  136. data/test/core/proc/test_curry.rb +11 -0
  137. data/test/core/string/test_bytes.rb +1 -1
  138. data/test/core/string/test_camelcase.rb +23 -6
  139. data/test/core/string/test_lines.rb +1 -1
  140. data/test/core/string/test_unfold.rb +14 -0
  141. data/test/{more → core}/test_blank.rb +0 -0
  142. data/test/{more → core}/test_boolean.rb +0 -0
  143. data/test/{more → core}/test_functor.rb +0 -0
  144. data/test/{lore → more}/test_basicobject.rb +0 -0
  145. data/test/more/{test_class_extension.rb → test_class_extend.rb} +6 -6
  146. data/test/{lore → more}/test_continuation.rb +0 -0
  147. data/test/{lore → more}/test_date.rb +0 -0
  148. data/test/more/{test_enumerablepass.rb → test_enumargs.rb} +2 -4
  149. data/test/more/{test_equatable.rb → test_equitable.rb} +2 -2
  150. data/test/more/{test_instantise.rb → test_instance_function.rb} +3 -2
  151. data/test/more/test_memoize.rb +1 -1
  152. data/test/{lore → more}/test_ostruct.rb +0 -0
  153. metadata +865 -1016
  154. data/RELEASE +0 -38
  155. data/doc/README.lore +0 -51
  156. data/doc/log/basic_stats/index.html +0 -39
  157. data/doc/log/changelog.html +0 -648
  158. data/doc/log/changelog.txt +0 -217
  159. data/doc/log/stats/index.html +0 -39
  160. data/doc/log/testlog.txt +0 -278
  161. data/doc/notes/CHANGES +0 -2529
  162. data/doc/rdoc/lore/classes/Array.html +0 -176
  163. data/doc/rdoc/lore/classes/CGI.html +0 -191
  164. data/doc/rdoc/lore/classes/Config.html +0 -135
  165. data/doc/rdoc/lore/classes/Continuation.html +0 -113
  166. data/doc/rdoc/lore/classes/Date.html +0 -631
  167. data/doc/rdoc/lore/classes/DateTime.html +0 -583
  168. data/doc/rdoc/lore/classes/Enumerable.html +0 -89
  169. data/doc/rdoc/lore/classes/Enumerable/Enumerator.html +0 -147
  170. data/doc/rdoc/lore/classes/File.html +0 -128
  171. data/doc/rdoc/lore/classes/FileUtils.html +0 -434
  172. data/doc/rdoc/lore/classes/GetoptLong.html +0 -118
  173. data/doc/rdoc/lore/classes/GetoptLong/DSL.html +0 -208
  174. data/doc/rdoc/lore/classes/Kernel.html +0 -135
  175. data/doc/rdoc/lore/classes/Logger.html +0 -229
  176. data/doc/rdoc/lore/classes/Logger/Ansicolor.html +0 -277
  177. data/doc/rdoc/lore/classes/Logger/LogDevice.html +0 -121
  178. data/doc/rdoc/lore/classes/NilClass.html +0 -119
  179. data/doc/rdoc/lore/classes/OpenStruct.html +0 -432
  180. data/doc/rdoc/lore/classes/Pathname.html +0 -353
  181. data/doc/rdoc/lore/classes/Set.html +0 -117
  182. data/doc/rdoc/lore/classes/Shellwords.html +0 -111
  183. data/doc/rdoc/lore/classes/String.html +0 -140
  184. data/doc/rdoc/lore/classes/Time.html +0 -154
  185. data/doc/rdoc/lore/classes/URI.html +0 -454
  186. data/doc/rdoc/lore/classes/URI/Hash.html +0 -105
  187. data/doc/rdoc/lore/classes/URI/Kernel.html +0 -122
  188. data/doc/rdoc/lore/classes/Zlib.html +0 -188
  189. data/doc/rdoc/lore/created.rid +0 -1
  190. data/doc/rdoc/lore/files/README.html +0 -286
  191. data/doc/rdoc/lore/files/doc/README_lore.html +0 -155
  192. data/doc/rdoc/lore/files/lib/lore/facets/basicobject_rb.html +0 -118
  193. data/doc/rdoc/lore/files/lib/lore/facets/cgi_rb.html +0 -111
  194. data/doc/rdoc/lore/files/lib/lore/facets/continuation_rb.html +0 -147
  195. data/doc/rdoc/lore/files/lib/lore/facets/date_rb.html +0 -97
  196. data/doc/rdoc/lore/files/lib/lore/facets/enumerator_rb.html +0 -111
  197. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/head_rb.html +0 -96
  198. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/safe_ln_rb.html +0 -96
  199. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/slice_rb.html +0 -96
  200. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/tail_rb.html +0 -96
  201. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/wc_rb.html +0 -96
  202. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/whereis_rb.html +0 -96
  203. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/which_rb.html +0 -96
  204. data/doc/rdoc/lore/files/lib/lore/facets/fileutils_rb.html +0 -131
  205. data/doc/rdoc/lore/files/lib/lore/facets/getoptlong_rb.html +0 -135
  206. data/doc/rdoc/lore/files/lib/lore/facets/logger_rb.html +0 -142
  207. data/doc/rdoc/lore/files/lib/lore/facets/ostruct_rb.html +0 -135
  208. data/doc/rdoc/lore/files/lib/lore/facets/pathname_rb.html +0 -145
  209. data/doc/rdoc/lore/files/lib/lore/facets/rbconfig_rb.html +0 -124
  210. data/doc/rdoc/lore/files/lib/lore/facets/set_rb.html +0 -96
  211. data/doc/rdoc/lore/files/lib/lore/facets/shellwords_rb.html +0 -124
  212. data/doc/rdoc/lore/files/lib/lore/facets/uri_rb.html +0 -125
  213. data/doc/rdoc/lore/files/lib/lore/facets/yaml_rb.html +0 -146
  214. data/doc/rdoc/lore/files/lib/lore/facets/zlib_rb.html +0 -97
  215. data/doc/rdoc/lore/fr_class_index.html +0 -73
  216. data/doc/rdoc/lore/fr_file_index.html +0 -71
  217. data/doc/rdoc/lore/fr_method_index.html +0 -177
  218. data/doc/rdoc/lore/index.html +0 -26
  219. data/doc/rdoc/lore/rdoc-style.css +0 -177
  220. data/doc/release-notes/RELEASE-2.0.5 +0 -8
  221. data/doc/release-notes/RELEASE-2.1.0 +0 -9
  222. data/doc/release-notes/RELEASE-2.1.1 +0 -5
  223. data/doc/release-notes/RELEASE-2.1.2 +0 -6
  224. data/doc/release-notes/RELEASE-2.1.3 +0 -5
  225. data/doc/release-notes/RELEASE-2.2.0 +0 -14
  226. data/doc/release-notes/RELEASE-2.2.1 +0 -4
  227. data/doc/release-notes/RELEASE-2.3.0 +0 -6
  228. data/doc/release-notes/RELEASE-2.4.0 +0 -70
  229. data/doc/release-notes/RELEASE-2.4.1 +0 -8
  230. data/doc/release-notes/RELEASE-2.4.2 +0 -4
  231. data/doc/release-notes/RELEASE-2.4.3 +0 -78
  232. data/doc/release-notes/RELEASE-2.4.4 +0 -38
  233. data/doc/release-notes/RELEASE-2.4.5 +0 -37
  234. data/doc/release-notes/RELEASE-2.5.0 +0 -83
  235. data/lib/core/facets/kernel/instance.rb +0 -19
  236. data/lib/lore/facets/basicobject.rb +0 -14
  237. data/lib/lore/facets/enumerator.rb +0 -67
  238. data/lib/lore/facets/logger.rb +0 -291
  239. data/lib/more/facets/1stclassmethod.rb +0 -140
  240. data/lib/more/facets/advisable.rb +0 -162
  241. data/lib/more/facets/association.rb +0 -210
  242. data/lib/more/facets/attr.rb +0 -209
  243. data/lib/more/facets/basex.rb +0 -37
  244. data/lib/more/facets/bbcode.rb +0 -397
  245. data/lib/more/facets/bicrypt.rb +0 -265
  246. data/lib/more/facets/binreadable.rb +0 -221
  247. data/lib/more/facets/censor.rb +0 -97
  248. data/lib/more/facets/classmethods.rb +0 -199
  249. data/lib/more/facets/consoleutils.rb +0 -99
  250. data/lib/more/facets/crypt.rb +0 -166
  251. data/lib/more/facets/dependency.rb +0 -151
  252. data/lib/more/facets/downloader.rb +0 -281
  253. data/lib/more/facets/duplicable.rb +0 -43
  254. data/lib/more/facets/elementor.rb +0 -133
  255. data/lib/more/facets/filter.rb +0 -121
  256. data/lib/more/facets/heap.rb +0 -22
  257. data/lib/more/facets/infinity.rb +0 -193
  258. data/lib/more/facets/ini.rb +0 -264
  259. data/lib/more/facets/instantise.rb +0 -1
  260. data/lib/more/facets/instantize.rb +0 -95
  261. data/lib/more/facets/interval.rb +0 -282
  262. data/lib/more/facets/iteration.rb +0 -65
  263. data/lib/more/facets/linkedlist.rb +0 -222
  264. data/lib/more/facets/lrucache.rb +0 -157
  265. data/lib/more/facets/matcher.rb +0 -140
  266. data/lib/more/facets/memoizer.rb +0 -74
  267. data/lib/more/facets/minitar.rb +0 -1063
  268. data/lib/more/facets/nackclass.rb +0 -41
  269. data/lib/more/facets/net/smtp_tls.rb +0 -131
  270. data/lib/more/facets/nilstatus.rb +0 -48
  271. data/lib/more/facets/overload.rb +0 -94
  272. data/lib/more/facets/paramix.rb +0 -202
  273. data/lib/more/facets/pool.rb +0 -91
  274. data/lib/more/facets/pqueue.rb +0 -449
  275. data/lib/more/facets/pry.rb +0 -32
  276. data/lib/more/facets/reflection.rb +0 -145
  277. data/lib/more/facets/semaphore.rb +0 -92
  278. data/lib/more/facets/settings.rb +0 -248
  279. data/lib/more/facets/snapshot.rb +0 -209
  280. data/lib/more/facets/sparse_array.rb +0 -809
  281. data/lib/more/facets/string/mask.rb +0 -278
  282. data/lib/more/facets/string/obfuscate.rb +0 -65
  283. data/lib/more/facets/string/stylize.rb +0 -169
  284. data/lib/more/facets/string/words.rb +0 -167
  285. data/lib/more/facets/syncarray.rb +0 -114
  286. data/lib/more/facets/synchash.rb +0 -157
  287. data/lib/more/facets/typecast.rb +0 -261
  288. data/lib/more/facets/uninheritable.rb +0 -50
  289. data/lib/more/facets/xmlhash.rb +0 -112
  290. data/lib/more/facets/xoxo.rb +0 -259
  291. data/lib/more/facets/ziputils.rb +0 -490
  292. data/task/conflicts +0 -63
  293. data/task/coverage.rake +0 -37
  294. data/task/methods +0 -49
  295. data/task/rdoc.rake +0 -17
  296. data/task/setup.rake +0 -38
  297. data/task/test.rake +0 -145
  298. data/test/more/test_advisable.rb +0 -71
  299. data/test/more/test_association.rb +0 -38
  300. data/test/more/test_bbcode.rb +0 -21
  301. data/test/more/test_binreadable.rb +0 -50
  302. data/test/more/test_buildable.rb +0 -73
  303. data/test/more/test_classmethods.rb +0 -56
  304. data/test/more/test_crypt.rb +0 -32
  305. data/test/more/test_dependency.rb +0 -69
  306. data/test/more/test_elementwise.rb +0 -25
  307. data/test/more/test_infinity.rb +0 -40
  308. data/test/more/test_interval.rb +0 -151
  309. data/test/more/test_linkedlist.rb +0 -41
  310. data/test/more/test_lrucache.rb +0 -14
  311. data/test/more/test_overload.rb +0 -160
  312. data/test/more/test_paramix.rb +0 -170
  313. data/test/more/test_prototype.rb +0 -35
  314. data/test/more/test_snapshot.rb +0 -21
  315. data/test/more/test_sparsearray.rb +0 -279
  316. data/test/more/test_syncarray.rb +0 -15
  317. data/test/more/test_synchash.rb +0 -16
  318. data/test/more/test_typecast.rb +0 -54
  319. data/test/more/test_uninheritable.rb +0 -31
  320. data/test/more/test_xoxo.rb +0 -274
  321. data/test/test_facets.rb +0 -9
File without changes
@@ -77,10 +77,9 @@ class Recorder
77
77
 
78
78
  # Privatize all kernel methods.
79
79
 
80
- private(*instance_methods)
80
+ instance_methods.each{ |m| private(m) unless /^__/ =~ m.to_s }
81
81
 
82
82
  #
83
-
84
83
  def initialize( msg=nil )
85
84
  @msg = msg
86
85
  end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,3 +1,2 @@
1
1
  lib/core
2
- lib/lore
3
2
  lib/more
@@ -0,0 +1,4 @@
1
+ ---
2
+ site : .
3
+ #doc/rdoc : rdoc
4
+ #doc/yard : yard
@@ -1 +1 @@
1
- 2.6.0
1
+ 2.7.0
@@ -16,7 +16,7 @@ class TC_Enumerable_Count < Test::Unit::TestCase
16
16
 
17
17
  def test_count_03
18
18
  e = { 'a' => 2, 'a' => 2, 'b' => 1 }
19
- assert_equal( 1, e.count('a',2) )
19
+ assert_equal(1, e.count(['a',2]))
20
20
  end
21
21
 
22
22
  end
@@ -1,7 +1,8 @@
1
- require 'facets/filter'
1
+ require 'facets/enumerable/defer'
2
+ require 'facets/enumerable/take'
2
3
  require 'test/unit'
3
4
 
4
- class TC_Enumerator_Filter < Test::Unit::TestCase
5
+ class TC_Enumerable_Defer < Test::Unit::TestCase
5
6
 
6
7
  SOURCE = (1..1/0.0) # infinite Enumerable object
7
8
 
@@ -17,71 +18,72 @@ class TC_Enumerator_Filter < Test::Unit::TestCase
17
18
  assert_equal [1, 1, 2, 3, 5, 8, 13, 21, 34, 55], fib.take(10)
18
19
  end
19
20
 
20
- def test_filter_without_block
21
- a = SOURCE.filter
22
- assert_equal Enumerator::Filter, a.class
21
+ def test_defer_without_block
22
+ a = SOURCE.defer
23
+ assert_equal Denumerator, a.class
23
24
  assert_equal [1,2,3,4,5], a.take(5).to_a
24
25
  end
25
26
 
26
- def test_filter_with_block
27
- a = SOURCE.filter { |out,i| out << i*2 }
28
- assert_equal Enumerator::Filter, a.class
27
+ def test_defer_with_block
28
+ a = SOURCE.defer { |out,i| out << i*2 }
29
+ assert_equal Denumerator, a.class
29
30
  assert_equal [2,4,6,8,10], a.take(5).to_a
30
31
  end
31
32
 
32
33
  def test_each
33
34
  res = []
34
- (1..5).filter.each { |i| res << i }
35
+ (1..5).defer.each { |i| res << i }
35
36
  assert_equal [1,2,3,4,5], res
36
37
  end
37
38
 
38
39
  def test_return
39
- res = (1..5).filter.inject({}) { |h,v| h[v] = v*2; h }
40
+ res = (1..5).defer.inject({}) { |h,v| h[v] = v*2; h }
40
41
  assert_equal({1=>2,2=>4,3=>6,4=>8,5=>10}, res)
41
- res = (1..5).filter.inject({}) { |h,v| h[v] = v*2; break h if v>=3; h }
42
+ res = (1..5).defer.inject({}) { |h,v| h[v] = v*2; break h if v>=3; h }
42
43
  assert_equal({1=>2,2=>4,3=>6}, res)
43
44
  end
44
45
 
45
46
  def test_other_enumerable
46
- a = SOURCE.filter
47
+ a = SOURCE.defer
47
48
  assert_equal 5, a.take(5).max
48
49
  assert_equal 2, a.map { |i| i*2 }.take(5).min
49
50
  assert_equal [5,4,3,2,1], a.take(5).sort_by { |x| -x }
50
51
  end
51
52
 
52
- def test_filter_filter
53
- a = SOURCE.filter.filter { |out,i| out << i*2 }
53
+ def test_defer_defer
54
+ a = SOURCE.defer.defer { |out,i| out << i*2 }
54
55
  assert_equal [2,4,6,8,10], a.take(5).to_a
55
56
  end
56
57
 
57
- def test_filter_chain
58
- a = SOURCE.filter { |out,i| out.yield(i) if i % 2 == 0 }.
59
- filter { |out,i| out.yield(i + 100) }
58
+ def test_defer_chain
59
+ a = SOURCE.defer { |out,i| out.yield(i) if i % 2 == 0 }.
60
+ defer { |out,i| out.yield(i + 100) }
60
61
  assert_equal [102,104,106,108,110], a.take(5).to_a
61
62
  end
62
63
 
63
64
  def test_select_map
64
- a = SOURCE.filter.select { |i| i % 2 == 0 }.map { |i| i + 100 }
65
+ a = SOURCE.defer.select { |i| i % 2 == 0 }.map { |i| i + 100 }
65
66
  assert_equal [102,104,106,108,110], a.take(5).to_a
66
67
  end
67
68
 
68
69
  def test_find_all_collect
69
- a = SOURCE.filter.find_all { |i| i % 2 == 0 }.collect { |i| i + 100 }
70
+ a = SOURCE.defer.find_all { |i| i % 2 == 0 }.collect { |i| i + 100 }
70
71
  assert_equal [102,104,106,108,110], a.take(5).to_a
71
72
  end
72
73
 
73
74
  def test_reject
74
- a = SOURCE.filter.reject { |i| i % 3 == 0 }
75
+ a = SOURCE.defer.reject { |i| i % 3 == 0 }
75
76
  assert_equal [1,2,4,5,7], a.take(5).to_a
76
77
  end
77
78
 
78
79
  def test_skip_take
79
- a = SOURCE.filter.skip(20).take(5)
80
+ a = SOURCE.defer.skip(20).take(5)
80
81
  assert_equal [21,22,23,24,25], a.to_a
81
82
  end
82
83
 
83
84
  #def test_each_cons
84
- # a = SOURCE.filter
85
+ # a = SOURCE.defer
85
86
  # assert_equal [[1,2,3],[2,3,4],[3,4,5],[4,5,6]], a.each_cons(3).take(4)
86
87
  #end
87
88
  end
89
+
@@ -1,20 +1,7 @@
1
- # Test facets/elementor.rb.
2
-
3
- require 'facets/elementor.rb'
1
+ require 'facets/enumerable/every'
4
2
  require 'test/unit'
5
3
 
6
- class TCElementor < Test::Unit::TestCase
7
-
8
- def test_to_elem
9
- e = [1,2,3].to_elem
10
- assert_equal( [4,5,6], e + 3 )
11
- assert_equal( [0,1,2], e - 1 )
12
- end
13
-
14
- def test_to_elem_str
15
- e = [1,2,3].to_elem
16
- assert_equal( ['1','2','3'], e.to_s )
17
- end
4
+ class TCEvery < Test::Unit::TestCase
18
5
 
19
6
  def test_every
20
7
  a = [1,2,3]
@@ -0,0 +1,23 @@
1
+ require 'facets/enumerable/ewise'
2
+ require 'test/unit'
3
+
4
+ class TestElementWise < Test::Unit::TestCase
5
+
6
+ #def test_elementwise
7
+ # a = [1,2,3]
8
+ # b = [4,5]
9
+ # assert_equal( [4,5,6], a.elementwise + 3 )
10
+ # assert_equal( [5,7], a.elementwise + b )
11
+ # assert_equal( [[5,7],[3,4,5]], a.elementwise.+(b,2) )
12
+ # assert_equal( [[5,7],[4,5,6]], a.elementwise.+(b,3) )
13
+ #end
14
+
15
+ def test_ewise
16
+ a = [1,2,3]
17
+ assert_equal( [4,5,6], a.ewise + 3 )
18
+ assert_equal( [5,7], a.ewise + [4,5] )
19
+ assert_equal( [[5,7],[3,4,5]], a.ewise.+([4,5],2) )
20
+ assert_equal( [[5,7],[4,5,6]], a.ewise.+([4,5],3) )
21
+ end
22
+
23
+ end
@@ -0,0 +1,18 @@
1
+ require 'facets/enumerable/per'
2
+ require 'test/unit'
3
+
4
+ class TCPer < Test::Unit::TestCase
5
+
6
+ def test_per
7
+ e = [1,2,3].per.map
8
+ assert_equal( [4,5,6], e + 3 )
9
+ assert_equal( [0,1,2], e - 1 )
10
+ end
11
+
12
+ def test_per_again
13
+ e = [1,2,3].per.map
14
+ assert_equal( ['1','2','3'], e.to_s )
15
+ end
16
+
17
+ end
18
+
@@ -0,0 +1,13 @@
1
+ require 'facets/enumerable/take'
2
+ require 'test/unit'
3
+
4
+ class TC_Enumerable_Defer < Test::Unit::TestCase
5
+
6
+ SOURCE = (1..1/0.0) # infinite Enumerable object
7
+
8
+ def test_finite
9
+ assert_equal [1,2,3,4,5], SOURCE.take(5)
10
+ end
11
+
12
+ end
13
+
@@ -1,7 +1,7 @@
1
1
  require 'facets/kernel/deep_copy.rb'
2
2
  require 'test/unit'
3
3
 
4
- class TestKernelCopy < Test::Unit::TestCase
4
+ class TestKernelDeepCopy < Test::Unit::TestCase
5
5
 
6
6
  # fixtures for copy / deep_copy
7
7
  class A
@@ -1,8 +1,7 @@
1
+ require 'facets/kernel/method'
1
2
  require 'test/unit'
2
- require 'facets/1stclassmethod'
3
3
 
4
-
5
- class Test1stClassMethod < Test::Unit::TestCase
4
+ class TestKernelMethod < Test::Unit::TestCase
6
5
 
7
6
  class TestWith
8
7
  def foo ; end
@@ -14,8 +13,4 @@ class Test1stClassMethod < Test::Unit::TestCase
14
13
  assert_not_equal( t.method(:foo).__id__, t.method(:foo).__id__ )
15
14
  end
16
15
 
17
- def test_this
18
- assert_equal( this, method(:test_this) )
19
- end
20
-
21
16
  end
@@ -5,7 +5,7 @@ class TestKernelTap < Test::Unit::TestCase
5
5
 
6
6
  def test_tap
7
7
  x = "foo"
8
- r = ("foobar".tap{ gsub!(/bar/, '') })
8
+ r = ("foobar".tap{ |x| x.gsub!(/bar/, '') })
9
9
  assert_equal(x, r)
10
10
  end
11
11
 
@@ -21,5 +21,16 @@ class TestProcCurry < Test::Unit::TestCase
21
21
  assert_equal( 9, c[2][3] )
22
22
  end
23
23
 
24
+ def test_inclass_scope
25
+ # first test the lambda
26
+ org = lambda{ |y, x| x + " " + y }
27
+ foo = org.curry['yeah']
28
+ assert_equal('boo yeah', foo['boo'])
29
+ # now test it as a method definition
30
+ baz = Class.new
31
+ baz.__send__(:define_method, 'foo', foo)
32
+ assert_equal('boo yeah',baz.new.foo('boo'))
33
+ end
34
+
24
35
  end
25
36
 
@@ -5,7 +5,7 @@ class TC_String_Bytes < Test::Unit::TestCase
5
5
 
6
6
  def test_bytes
7
7
  s = "abc"
8
- assert_equal( s.unpack('C*'), s.bytes )
8
+ assert_equal( s.unpack('C*'), s.bytes.to_a )
9
9
  end
10
10
 
11
11
  end
@@ -1,11 +1,15 @@
1
- require 'facets/string/camelcase.rb'
1
+ require 'facets/string/camelcase'
2
2
  require 'test/unit'
3
3
 
4
4
  class StringCamelCaseTest < Test::Unit::TestCase
5
5
 
6
+ def test_camelcase
7
+ assert_equal("camelCase", "Camel_case".camelcase(false))
8
+ end
9
+
6
10
  def test_camelcase_converts_underscore_to_captialized
7
- assert_equal( "AbcXyz", "abc_xyz".camelcase )
8
- assert_equal( "AbcXyz", "abc____xyz".camelcase )
11
+ assert_equal( "abcXyz", "abc_xyz".camelcase )
12
+ assert_equal( "abcXyz", "abc____xyz".camelcase )
9
13
  end
10
14
 
11
15
  #def test_camelcase_converts_spaces_to_captialized
@@ -15,6 +19,11 @@ class StringCamelCaseTest < Test::Unit::TestCase
15
19
  # assert_equal( "AbcXyz", "abc\nxyz".camelcase )
16
20
  #end
17
21
 
22
+ def test_camelcase_true_converts_underscore_to_captialized
23
+ assert_equal( "AbcXyz", "abc_xyz".camelcase(true) )
24
+ assert_equal( "AbcXyz", "abc____xyz".camelcase(true) )
25
+ end
26
+
18
27
  def test_camelcase_false_converts_underscore_to_captialized
19
28
  assert_equal( "abcXyz", "abc_xyz".camelcase(false) )
20
29
  assert_equal( "abcXyz", "abc____xyz".camelcase(false) )
@@ -28,9 +37,9 @@ class StringCamelCaseTest < Test::Unit::TestCase
28
37
  #end
29
38
 
30
39
  def test_camelcase_converts_paths_to_module_names
31
- assert_equal( 'ThisIsIt', 'this_is_it'.camelcase )
32
- assert_equal( 'MyModule::MyClass', 'my_module/my_class'.camelcase )
33
- assert_equal( '::MyModule::MyClass', '/my_module/my_class'.camelcase )
40
+ assert_equal( 'ThisIsIt', 'this_is_it'.camelcase(true) )
41
+ assert_equal( 'MyModule::MyClass', 'my_module/my_class'.camelcase(true) )
42
+ assert_equal( '::MyModule::MyClass', '/my_module/my_class'.camelcase(true) )
34
43
  end
35
44
 
36
45
  #def test_camelcase_converts_methods_to_module_names
@@ -38,5 +47,13 @@ class StringCamelCaseTest < Test::Unit::TestCase
38
47
  # assert_equal( '::MyModule::MyClass', '__my_module__my_class'.camelcase )
39
48
  #end
40
49
 
50
+ def test_lower_camelcase
51
+ assert_equal( "abcXyz", "abc_xyz".lower_camelcase )
52
+ end
53
+
54
+ def test_upper_camelcase
55
+ assert_equal( "AbcXyz", "abc_xyz".upper_camelcase )
56
+ end
57
+
41
58
  end
42
59
 
@@ -4,7 +4,7 @@ require 'test/unit'
4
4
  class TC_String_Lines < Test::Unit::TestCase
5
5
 
6
6
  def test_lines
7
- assert_equal( ['a','b','c'], "a\nb\nc".lines )
7
+ assert_equal( ["a","b",'c'], "a\nb\nc".lines.to_a )
8
8
  end
9
9
 
10
10
  end
@@ -0,0 +1,14 @@
1
+ require 'test/unit'
2
+ require 'facets/string/unfold'
3
+
4
+ class TC_String_Unfold < Test::Unit::TestCase
5
+
6
+ def test_unfold
7
+ str = "This is a test of\nparagraph folding."
8
+ res = str.unfold
9
+ exp = "This is a test of paragraph folding."
10
+ assert_equal(exp, res)
11
+ end
12
+
13
+ end
14
+
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  # Test facets/class_extension.rb.
2
2
 
3
- require 'facets/class_extension.rb'
3
+ require 'facets/class_extend'
4
4
  require 'test/unit'
5
5
 
6
6
  class TC_ClassExtension < Test::Unit::TestCase
@@ -8,11 +8,11 @@ class TC_ClassExtension < Test::Unit::TestCase
8
8
  # fixture
9
9
 
10
10
  module N
11
- class_extension do
11
+ class_extend do
12
12
  def n ; 43 ; end
13
13
  def s ; self ; end
14
14
  end
15
- extend class_extension
15
+ #extend class_extend # NOTE: No longer needed!
16
16
  end
17
17
 
18
18
  class X
@@ -22,7 +22,7 @@ class TC_ClassExtension < Test::Unit::TestCase
22
22
 
23
23
  module K
24
24
  include N
25
- class_extension do
25
+ class_extend do
26
26
  def n ; super + 1 ; end
27
27
  end
28
28
  end
@@ -35,7 +35,7 @@ class TC_ClassExtension < Test::Unit::TestCase
35
35
 
36
36
  def test_01
37
37
  assert_equal( 43, N.n )
38
- assert_equal( N, N.s )
38
+ assert_equal( N, N.s )
39
39
  end
40
40
  def test_02
41
41
  assert_equal( 43, X.n )
@@ -45,7 +45,7 @@ class TC_ClassExtension < Test::Unit::TestCase
45
45
  assert_equal( 11, X.new.n )
46
46
  end
47
47
  def test_04
48
- assert_equal( 43, K.n ) #notic the difference!
48
+ assert_equal( 44, K.n ) # notice the difference!
49
49
  assert_equal( K, K.s )
50
50
  end
51
51
  def test_05
File without changes
File without changes