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.
- data/HISTORY.rdoc +331 -35
- data/MANIFEST +685 -826
- data/{doc/guide/notes.rd → NOTES} +0 -0
- data/README.rdoc +73 -25
- data/Rakefile +245 -2
- data/TODO +5 -0
- data/demo/hook.rd +47 -0
- data/demo/scenario_require.rd +9 -0
- data/doc/README.more +24 -6
- data/doc/manual/about.rb +47 -0
- data/doc/manual/annotations.rdoc +60 -0
- data/doc/manual/associations.rdoc +55 -0
- data/doc/manual/blockups.rdoc +101 -0
- data/doc/manual/capsule.rdoc +34 -0
- data/doc/manual/command.rdoc +177 -0
- data/doc/manual/core.rdoc +37 -0
- data/doc/manual/faq.rdoc +32 -0
- data/doc/manual/typecast.html +112 -0
- data/lib/core/facets.rb +359 -11
- data/lib/core/facets/array/combination.rb +3 -3
- data/lib/core/facets/array/index.rb +4 -1
- data/lib/core/facets/array/permutation.rb +2 -2
- data/lib/core/facets/array/product.rb +1 -1
- data/lib/core/facets/binding/eval.rb +1 -1
- data/lib/core/facets/denumerable.rb +76 -0
- data/lib/core/facets/duplicable.rb +34 -0
- data/lib/core/facets/enumerable/count.rb +10 -4
- data/lib/core/facets/enumerable/defer.rb +77 -0
- data/lib/core/facets/enumerable/each_by.rb +1 -1
- data/lib/core/facets/enumerable/every.rb +35 -0
- data/lib/{more/facets/elementwise.rb → core/facets/enumerable/ewise.rb} +0 -0
- data/lib/core/facets/enumerable/filter.rb +25 -0
- data/lib/core/facets/enumerable/group_by.rb +1 -1
- data/lib/core/facets/enumerable/none.rb +3 -2
- data/lib/core/facets/enumerable/one.rb +3 -2
- data/lib/core/facets/enumerable/per.rb +61 -0
- data/lib/core/facets/exception/raised.rb +14 -0
- data/lib/core/facets/integer/odd.rb +5 -1
- data/lib/core/facets/kernel/__dir__.rb +13 -3
- data/lib/core/facets/kernel/__here__.rb +14 -0
- data/lib/core/facets/kernel/__method__.rb +9 -3
- data/lib/core/facets/kernel/ask.rb +1 -0
- data/lib/core/facets/kernel/equate.rb +13 -0
- data/lib/core/facets/kernel/extension.rb +9 -0
- data/lib/core/facets/kernel/identical.rb +4 -0
- data/lib/core/facets/kernel/instance_exec.rb +2 -1
- data/lib/core/facets/kernel/method.rb +49 -0
- data/lib/core/facets/kernel/object_send.rb +2 -2
- data/lib/core/facets/kernel/{state.rb → object_state.rb} +23 -12
- data/lib/core/facets/kernel/require_all.rb +6 -1
- data/lib/core/facets/kernel/require_local.rb +8 -1
- data/lib/core/facets/kernel/require_relative.rb +52 -0
- data/lib/core/facets/kernel/source_location.rb +13 -0
- data/lib/core/facets/kernel/tap.rb +13 -6
- data/lib/core/facets/module/attr_setter.rb +57 -0
- data/lib/core/facets/module/instance_method.rb +24 -0
- data/lib/core/facets/module/module_load.rb +60 -44
- data/lib/core/facets/module/module_require.rb +1 -0
- data/lib/core/facets/nilclass/to_f.rb +1 -1
- data/lib/core/facets/objectspace/op_fetch.rb +3 -0
- data/lib/core/facets/proc/curry.rb +4 -3
- data/lib/core/facets/string/bytes.rb +10 -4
- data/lib/core/facets/string/camelcase.rb +6 -5
- data/lib/core/facets/string/chars.rb +5 -1
- data/lib/core/facets/string/each_char.rb +1 -1
- data/lib/core/facets/string/each_word.rb +1 -1
- data/lib/core/facets/string/lines.rb +11 -4
- data/lib/core/facets/string/start_with.rb +9 -2
- data/lib/core/facets/string/unfold.rb +27 -0
- data/lib/core/facets/symbol/succ.rb +3 -3
- data/lib/core/facets/symbol/thrown.rb +20 -0
- data/lib/core/facets/symbol/to_proc.rb +3 -2
- data/lib/core/facets/time/to_time.rb +1 -1
- data/lib/core/facets/to_hash.rb +41 -100
- data/lib/core/facets/unboundmethod/name.rb +20 -23
- data/lib/more/facets/ansicode.rb +1 -10
- data/lib/more/facets/autoarray.rb +3 -31
- data/lib/more/facets/basicobject.rb +73 -0
- data/lib/more/facets/blankslate.rb +2 -66
- data/lib/{lore → more}/facets/cgi.rb +0 -0
- data/lib/more/facets/class_extend.rb +1 -0
- data/lib/{lore → more}/facets/continuation.rb +0 -0
- data/lib/{lore → more}/facets/date.rb +3 -3
- data/lib/more/facets/enumargs.rb +192 -0
- data/lib/more/facets/enumerablepass.rb +2 -216
- data/lib/more/facets/enumerator.rb +62 -0
- data/lib/more/facets/{equatable.rb → equitable.rb} +11 -11
- data/lib/more/facets/expirable.rb +13 -41
- data/lib/{lore → more}/facets/fileutils.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/head.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/safe_ln.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/slice.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/tail.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/wc.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/whereis.rb +0 -0
- data/lib/{lore → more}/facets/fileutils/which.rb +0 -0
- data/lib/{lore → more}/facets/getoptlong.rb +0 -0
- data/lib/more/facets/hook.rb +2 -29
- data/lib/more/facets/inheritor.rb +2 -2
- data/lib/more/facets/instance_eval.rb +50 -0
- data/lib/more/facets/instance_function.rb +78 -0
- data/lib/more/facets/main.rb +20 -15
- data/lib/more/facets/memoize.rb +1 -113
- data/lib/more/facets/module/attr.rb +83 -0
- data/lib/more/facets/module/attr_tester.rb +44 -0
- data/lib/more/facets/module/attr_toggler.rb +59 -0
- data/lib/more/facets/module/attr_validator.rb +34 -0
- data/lib/more/facets/{class_extension.rb → module/class_extend.rb} +21 -13
- data/lib/more/facets/once.rb +59 -0
- data/lib/more/facets/openmodule.rb +1 -0
- data/lib/more/facets/orderedhash.rb +1 -33
- data/lib/{lore → more}/facets/ostruct.rb +0 -0
- data/lib/more/facets/ostructable.rb +1 -4
- data/lib/more/facets/partial.rb +18 -16
- data/lib/{lore → more}/facets/pathname.rb +0 -0
- data/lib/more/facets/preinitialize.rb +157 -0
- data/lib/{lore → more}/facets/rbconfig.rb +0 -0
- data/lib/more/facets/recorder.rb +1 -2
- data/lib/{lore → more}/facets/set.rb +0 -0
- data/lib/{lore → more}/facets/shellwords.rb +0 -0
- data/lib/{lore → more}/facets/uri.rb +0 -0
- data/lib/{lore → more}/facets/yaml.rb +0 -0
- data/lib/{lore → more}/facets/zlib.rb +0 -0
- data/meta/loadpath +0 -1
- data/meta/sitemap +4 -0
- data/meta/version +1 -1
- data/test/core/enumerable/test_count.rb +1 -1
- data/test/{more/test_filter.rb → core/enumerable/test_defer.rb} +24 -22
- data/test/{more/test_elementor.rb → core/enumerable/test_every.rb} +2 -15
- data/test/core/enumerable/test_ewise.rb +23 -0
- data/test/core/enumerable/test_per.rb +18 -0
- data/test/core/enumerable/test_take.rb +13 -0
- data/test/core/kernel/test_deepcopy.rb +1 -1
- data/test/{more/test_1stclassmethod.rb → core/kernel/test_method.rb} +2 -7
- data/test/core/kernel/test_tap.rb +1 -1
- data/test/core/proc/test_curry.rb +11 -0
- data/test/core/string/test_bytes.rb +1 -1
- data/test/core/string/test_camelcase.rb +23 -6
- data/test/core/string/test_lines.rb +1 -1
- data/test/core/string/test_unfold.rb +14 -0
- data/test/{more → core}/test_blank.rb +0 -0
- data/test/{more → core}/test_boolean.rb +0 -0
- data/test/{more → core}/test_functor.rb +0 -0
- data/test/{lore → more}/test_basicobject.rb +0 -0
- data/test/more/{test_class_extension.rb → test_class_extend.rb} +6 -6
- data/test/{lore → more}/test_continuation.rb +0 -0
- data/test/{lore → more}/test_date.rb +0 -0
- data/test/more/{test_enumerablepass.rb → test_enumargs.rb} +2 -4
- data/test/more/{test_equatable.rb → test_equitable.rb} +2 -2
- data/test/more/{test_instantise.rb → test_instance_function.rb} +3 -2
- data/test/more/test_memoize.rb +1 -1
- data/test/{lore → more}/test_ostruct.rb +0 -0
- metadata +865 -1016
- data/RELEASE +0 -38
- data/doc/README.lore +0 -51
- data/doc/log/basic_stats/index.html +0 -39
- data/doc/log/changelog.html +0 -648
- data/doc/log/changelog.txt +0 -217
- data/doc/log/stats/index.html +0 -39
- data/doc/log/testlog.txt +0 -278
- data/doc/notes/CHANGES +0 -2529
- data/doc/rdoc/lore/classes/Array.html +0 -176
- data/doc/rdoc/lore/classes/CGI.html +0 -191
- data/doc/rdoc/lore/classes/Config.html +0 -135
- data/doc/rdoc/lore/classes/Continuation.html +0 -113
- data/doc/rdoc/lore/classes/Date.html +0 -631
- data/doc/rdoc/lore/classes/DateTime.html +0 -583
- data/doc/rdoc/lore/classes/Enumerable.html +0 -89
- data/doc/rdoc/lore/classes/Enumerable/Enumerator.html +0 -147
- data/doc/rdoc/lore/classes/File.html +0 -128
- data/doc/rdoc/lore/classes/FileUtils.html +0 -434
- data/doc/rdoc/lore/classes/GetoptLong.html +0 -118
- data/doc/rdoc/lore/classes/GetoptLong/DSL.html +0 -208
- data/doc/rdoc/lore/classes/Kernel.html +0 -135
- data/doc/rdoc/lore/classes/Logger.html +0 -229
- data/doc/rdoc/lore/classes/Logger/Ansicolor.html +0 -277
- data/doc/rdoc/lore/classes/Logger/LogDevice.html +0 -121
- data/doc/rdoc/lore/classes/NilClass.html +0 -119
- data/doc/rdoc/lore/classes/OpenStruct.html +0 -432
- data/doc/rdoc/lore/classes/Pathname.html +0 -353
- data/doc/rdoc/lore/classes/Set.html +0 -117
- data/doc/rdoc/lore/classes/Shellwords.html +0 -111
- data/doc/rdoc/lore/classes/String.html +0 -140
- data/doc/rdoc/lore/classes/Time.html +0 -154
- data/doc/rdoc/lore/classes/URI.html +0 -454
- data/doc/rdoc/lore/classes/URI/Hash.html +0 -105
- data/doc/rdoc/lore/classes/URI/Kernel.html +0 -122
- data/doc/rdoc/lore/classes/Zlib.html +0 -188
- data/doc/rdoc/lore/created.rid +0 -1
- data/doc/rdoc/lore/files/README.html +0 -286
- data/doc/rdoc/lore/files/doc/README_lore.html +0 -155
- data/doc/rdoc/lore/files/lib/lore/facets/basicobject_rb.html +0 -118
- data/doc/rdoc/lore/files/lib/lore/facets/cgi_rb.html +0 -111
- data/doc/rdoc/lore/files/lib/lore/facets/continuation_rb.html +0 -147
- data/doc/rdoc/lore/files/lib/lore/facets/date_rb.html +0 -97
- data/doc/rdoc/lore/files/lib/lore/facets/enumerator_rb.html +0 -111
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/head_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/safe_ln_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/slice_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/tail_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/wc_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/whereis_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils/which_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/fileutils_rb.html +0 -131
- data/doc/rdoc/lore/files/lib/lore/facets/getoptlong_rb.html +0 -135
- data/doc/rdoc/lore/files/lib/lore/facets/logger_rb.html +0 -142
- data/doc/rdoc/lore/files/lib/lore/facets/ostruct_rb.html +0 -135
- data/doc/rdoc/lore/files/lib/lore/facets/pathname_rb.html +0 -145
- data/doc/rdoc/lore/files/lib/lore/facets/rbconfig_rb.html +0 -124
- data/doc/rdoc/lore/files/lib/lore/facets/set_rb.html +0 -96
- data/doc/rdoc/lore/files/lib/lore/facets/shellwords_rb.html +0 -124
- data/doc/rdoc/lore/files/lib/lore/facets/uri_rb.html +0 -125
- data/doc/rdoc/lore/files/lib/lore/facets/yaml_rb.html +0 -146
- data/doc/rdoc/lore/files/lib/lore/facets/zlib_rb.html +0 -97
- data/doc/rdoc/lore/fr_class_index.html +0 -73
- data/doc/rdoc/lore/fr_file_index.html +0 -71
- data/doc/rdoc/lore/fr_method_index.html +0 -177
- data/doc/rdoc/lore/index.html +0 -26
- data/doc/rdoc/lore/rdoc-style.css +0 -177
- data/doc/release-notes/RELEASE-2.0.5 +0 -8
- data/doc/release-notes/RELEASE-2.1.0 +0 -9
- data/doc/release-notes/RELEASE-2.1.1 +0 -5
- data/doc/release-notes/RELEASE-2.1.2 +0 -6
- data/doc/release-notes/RELEASE-2.1.3 +0 -5
- data/doc/release-notes/RELEASE-2.2.0 +0 -14
- data/doc/release-notes/RELEASE-2.2.1 +0 -4
- data/doc/release-notes/RELEASE-2.3.0 +0 -6
- data/doc/release-notes/RELEASE-2.4.0 +0 -70
- data/doc/release-notes/RELEASE-2.4.1 +0 -8
- data/doc/release-notes/RELEASE-2.4.2 +0 -4
- data/doc/release-notes/RELEASE-2.4.3 +0 -78
- data/doc/release-notes/RELEASE-2.4.4 +0 -38
- data/doc/release-notes/RELEASE-2.4.5 +0 -37
- data/doc/release-notes/RELEASE-2.5.0 +0 -83
- data/lib/core/facets/kernel/instance.rb +0 -19
- data/lib/lore/facets/basicobject.rb +0 -14
- data/lib/lore/facets/enumerator.rb +0 -67
- data/lib/lore/facets/logger.rb +0 -291
- data/lib/more/facets/1stclassmethod.rb +0 -140
- data/lib/more/facets/advisable.rb +0 -162
- data/lib/more/facets/association.rb +0 -210
- data/lib/more/facets/attr.rb +0 -209
- data/lib/more/facets/basex.rb +0 -37
- data/lib/more/facets/bbcode.rb +0 -397
- data/lib/more/facets/bicrypt.rb +0 -265
- data/lib/more/facets/binreadable.rb +0 -221
- data/lib/more/facets/censor.rb +0 -97
- data/lib/more/facets/classmethods.rb +0 -199
- data/lib/more/facets/consoleutils.rb +0 -99
- data/lib/more/facets/crypt.rb +0 -166
- data/lib/more/facets/dependency.rb +0 -151
- data/lib/more/facets/downloader.rb +0 -281
- data/lib/more/facets/duplicable.rb +0 -43
- data/lib/more/facets/elementor.rb +0 -133
- data/lib/more/facets/filter.rb +0 -121
- data/lib/more/facets/heap.rb +0 -22
- data/lib/more/facets/infinity.rb +0 -193
- data/lib/more/facets/ini.rb +0 -264
- data/lib/more/facets/instantise.rb +0 -1
- data/lib/more/facets/instantize.rb +0 -95
- data/lib/more/facets/interval.rb +0 -282
- data/lib/more/facets/iteration.rb +0 -65
- data/lib/more/facets/linkedlist.rb +0 -222
- data/lib/more/facets/lrucache.rb +0 -157
- data/lib/more/facets/matcher.rb +0 -140
- data/lib/more/facets/memoizer.rb +0 -74
- data/lib/more/facets/minitar.rb +0 -1063
- data/lib/more/facets/nackclass.rb +0 -41
- data/lib/more/facets/net/smtp_tls.rb +0 -131
- data/lib/more/facets/nilstatus.rb +0 -48
- data/lib/more/facets/overload.rb +0 -94
- data/lib/more/facets/paramix.rb +0 -202
- data/lib/more/facets/pool.rb +0 -91
- data/lib/more/facets/pqueue.rb +0 -449
- data/lib/more/facets/pry.rb +0 -32
- data/lib/more/facets/reflection.rb +0 -145
- data/lib/more/facets/semaphore.rb +0 -92
- data/lib/more/facets/settings.rb +0 -248
- data/lib/more/facets/snapshot.rb +0 -209
- data/lib/more/facets/sparse_array.rb +0 -809
- data/lib/more/facets/string/mask.rb +0 -278
- data/lib/more/facets/string/obfuscate.rb +0 -65
- data/lib/more/facets/string/stylize.rb +0 -169
- data/lib/more/facets/string/words.rb +0 -167
- data/lib/more/facets/syncarray.rb +0 -114
- data/lib/more/facets/synchash.rb +0 -157
- data/lib/more/facets/typecast.rb +0 -261
- data/lib/more/facets/uninheritable.rb +0 -50
- data/lib/more/facets/xmlhash.rb +0 -112
- data/lib/more/facets/xoxo.rb +0 -259
- data/lib/more/facets/ziputils.rb +0 -490
- data/task/conflicts +0 -63
- data/task/coverage.rake +0 -37
- data/task/methods +0 -49
- data/task/rdoc.rake +0 -17
- data/task/setup.rake +0 -38
- data/task/test.rake +0 -145
- data/test/more/test_advisable.rb +0 -71
- data/test/more/test_association.rb +0 -38
- data/test/more/test_bbcode.rb +0 -21
- data/test/more/test_binreadable.rb +0 -50
- data/test/more/test_buildable.rb +0 -73
- data/test/more/test_classmethods.rb +0 -56
- data/test/more/test_crypt.rb +0 -32
- data/test/more/test_dependency.rb +0 -69
- data/test/more/test_elementwise.rb +0 -25
- data/test/more/test_infinity.rb +0 -40
- data/test/more/test_interval.rb +0 -151
- data/test/more/test_linkedlist.rb +0 -41
- data/test/more/test_lrucache.rb +0 -14
- data/test/more/test_overload.rb +0 -160
- data/test/more/test_paramix.rb +0 -170
- data/test/more/test_prototype.rb +0 -35
- data/test/more/test_snapshot.rb +0 -21
- data/test/more/test_sparsearray.rb +0 -279
- data/test/more/test_syncarray.rb +0 -15
- data/test/more/test_synchash.rb +0 -16
- data/test/more/test_typecast.rb +0 -54
- data/test/more/test_uninheritable.rb +0 -31
- data/test/more/test_xoxo.rb +0 -274
- data/test/test_facets.rb +0 -9
@@ -1,37 +0,0 @@
|
|
1
|
-
Facets 2.4.5 is a maintaince release. This release is notable
|
2
|
-
however in that it will likely be the last that to use SVN.
|
3
|
-
Facets will be switching to Git. Also, some libraries that
|
4
|
-
have been flagged "to be deprecated" for some time will
|
5
|
-
finally be so.
|
6
|
-
|
7
|
-
|
8
|
-
### 2.4.5 / 2008-10-02
|
9
|
-
|
10
|
-
* 6 Major Enhancements
|
11
|
-
|
12
|
-
* Re-added date.rb to lore library, and removed from core. (#r1014)
|
13
|
-
* Much improved date.rb extension now in Lore library. (#r1027)
|
14
|
-
* Deprecated kernel/suppress. Use Exception.suppress from now on. (#r1040)
|
15
|
-
* Deprecated string/style.rb. Use English project instead. (#r1074)
|
16
|
-
* Console namespace is no longer supported (for Ansicode). (#r1077)
|
17
|
-
* enumerable/mode.rb, Enumerable#mode returns array since there can be more than one. (#r1079)
|
18
|
-
* OpenCascade automatically creates nodes, use foo? to query. (#r1056)
|
19
|
-
|
20
|
-
* 11 Minor Enhancements
|
21
|
-
|
22
|
-
* Moved variablize methods out of metaid.rb and into separate files (string/ and symbol/). (#r1042)
|
23
|
-
* Added Time#advance. (#r1046)
|
24
|
-
* Speed up of Integer odd/even methods. (#r1057)
|
25
|
-
* Array#index now takes a block (this is a core override). (#r1059)
|
26
|
-
* Spilt file/write.rb into separate method files (append, create, writelines). (#r1073)
|
27
|
-
* Modified Enumerable#split to behave like String#split. (#r1076)
|
28
|
-
* hash/op.rb, split into separate method files. (#r1081)
|
29
|
-
* Added string/modulize. string/methodize handles path names now too. (#r1085)
|
30
|
-
* Class#cattr is now part of core. (#r1089)
|
31
|
-
|
32
|
-
* 2 Bug Fixes
|
33
|
-
|
34
|
-
* OpenStruct#to_h dups internal table. (#r1015)
|
35
|
-
* Fixed require of string/xor in bicrypt.rb. (#r1039)
|
36
|
-
* integer/odd.rb, fixed Ruby 1.9 condition. (#r1080)
|
37
|
-
|
@@ -1,83 +0,0 @@
|
|
1
|
-
Facets 2.5.0 is an important milestone in the development of Facets.
|
2
|
-
|
3
|
-
This release has been tested against Rails' ActiveSupport library.
|
4
|
-
As long as Facets is loaded after ActiveSupport, everything
|
5
|
-
should work fine. Of course, there's no counting for real world
|
6
|
-
trials, but all ActiveSupport testcases pass under this scenario.
|
7
|
-
|
8
|
-
Secondly, this release is the first of two (or three) down-scaling
|
9
|
-
releases intended to remove all the remaining "excess" from the
|
10
|
-
library. This is being done for a variety of reasons. Some scripts
|
11
|
-
are substantial enough to be one their own and have been spun-off
|
12
|
-
into separate largely compatible projects. In this release:
|
13
|
-
|
14
|
-
If you were using... Use this project instead...
|
15
|
-
|
16
|
-
annotations.rb Anise
|
17
|
-
|
18
|
-
bytes.rb RichUnits
|
19
|
-
times.rb
|
20
|
-
|
21
|
-
command.rb Clio
|
22
|
-
consoleutils.rb
|
23
|
-
|
24
|
-
A few others scripts have been deprecated, without an alternative
|
25
|
-
recourse, simply because they were too weak, such as uploadutils.rb,
|
26
|
-
or highly experimental, such as chain.rb and eventhook.rb.
|
27
|
-
|
28
|
-
Although this release constitutes an over all slimming down of Facets,
|
29
|
-
two excellent new libraries have been added.
|
30
|
-
|
31
|
-
1) *ini.rb* by Jeena Paradies. While YAML is frequently used by
|
32
|
-
Rubyists for configuration files, a full-on serializer like YAML
|
33
|
-
is often overkill. INI files provide a lightweight solution
|
34
|
-
specifically geared for configuration.
|
35
|
-
|
36
|
-
2) *filter.rb* by Brian Candler offers lazy evaluation chains of
|
37
|
-
Enumerable methods. This is an elegant way to optimize contiguous
|
38
|
-
maps, selections, etc. --effective even on infinite enumerators.
|
39
|
-
(Note, the name of this library may be changed in the next release.)
|
40
|
-
|
41
|
-
While work remains to be done, I am happy to say, Facets is
|
42
|
-
finally beginning to approach the level of solidity I set out to
|
43
|
-
achieve just over a year ago. Thank the Maker!
|
44
|
-
|
45
|
-
Special thanks to Brian Candler, Jeena Paradies and Tyler Rick.
|
46
|
-
|
47
|
-
Enjoy!
|
48
|
-
|
49
|
-
|
50
|
-
### 2.5.0 / 2008-11-23
|
51
|
-
|
52
|
-
* 9 Major Changes
|
53
|
-
|
54
|
-
* added Brian Candler's Enumerator::Filter
|
55
|
-
* added sparse_array.rb (was old harray.rb)
|
56
|
-
* added Jeena Paradies' ini.rb
|
57
|
-
* renamed CacheDelegator to Memoizer
|
58
|
-
* renamed DictionaryMatcher to just Matcher
|
59
|
-
* deprecated bytes.rb and times.rb (use RichUnits instead)
|
60
|
-
* deprecated uploadutils.rb; ziputils.rb will be (use Folio)
|
61
|
-
* deprecated annotations.rb (use Anise instead)
|
62
|
-
* deprecated command.rb and consoleutils.rb (use Clio instead)
|
63
|
-
|
64
|
-
* 5 Minor Changes
|
65
|
-
|
66
|
-
* deprecated chain.rb (very expiremental)
|
67
|
-
* deprecated eventhook.rb (moved to ToadCode project)
|
68
|
-
* deprecated tagiter.rb (moved to ToadCode project)
|
69
|
-
* moved Hash#symolize_keys and #stringify_keys to core lib
|
70
|
-
(still recommend #rekey instead though)
|
71
|
-
* switched to git as of 2.4.5
|
72
|
-
|
73
|
-
* 4 Bug Fixes
|
74
|
-
|
75
|
-
* memoize.rb, cache was at class-level, now at instance-level
|
76
|
-
* binding/caller.rb, fixed require for callstack.rb
|
77
|
-
* fixed missing require in string/tabto.rb
|
78
|
-
* Fixed some bugs with Time#ago/Time#hence not changing years
|
79
|
-
correctly when you changed months.
|
80
|
-
(For example, Time.utc(2008, 1, 1).ago(12, :months) incorrectly
|
81
|
-
returned 2009-01-01 instead of 2007-01-01.)
|
82
|
-
Changed Time#ago/Time#hence to still work if passed negative number.
|
83
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'facets/functor'
|
2
|
-
|
3
|
-
module Kernel
|
4
|
-
|
5
|
-
# Access internals of an object as if with
|
6
|
-
# private access.
|
7
|
-
#
|
8
|
-
# class X
|
9
|
-
# metaclass.instance.attr_reader :x
|
10
|
-
# end
|
11
|
-
#
|
12
|
-
def instance
|
13
|
-
@_instance_functor ||= Functor.new do |op,*args|
|
14
|
-
send(op,*args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# Facets' old BasicObject has been replaced totally replaced by
|
2
|
-
# Jim Weirich's BlankSlate. Since Ruby 1.9 has a BasicObject class
|
3
|
-
# this will of course be deprecated when 1.9 goes mainstream.
|
4
|
-
|
5
|
-
unless defined? ::BasicObject # just in case it already exists!
|
6
|
-
|
7
|
-
require 'facets/blankslate'
|
8
|
-
|
9
|
-
# ActiveSupport compatiable version of BasicObject
|
10
|
-
# if not Ruby 1.9+ uses Jim Weirich's BlankSlate.
|
11
|
-
BasicObject = BlankSlate
|
12
|
-
|
13
|
-
end
|
14
|
-
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'enumerator'
|
2
|
-
|
3
|
-
if RUBY_VERSION < "1.9"
|
4
|
-
|
5
|
-
module Enumerable
|
6
|
-
|
7
|
-
class Enumerator
|
8
|
-
|
9
|
-
alias :old_initialize :initialize
|
10
|
-
|
11
|
-
# Provides the ruby-1.9 block form of Enumerator, where you can write:
|
12
|
-
#
|
13
|
-
# obj = Enumerator.new do |yielder|
|
14
|
-
# .. do stuff
|
15
|
-
# yielder.yield data # or: yielder << data
|
16
|
-
# .. etc
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# When obj.each is called, the block is run once. It should call
|
20
|
-
# yielder.yield with each item it wishes to generate.
|
21
|
-
#
|
22
|
-
# Example:
|
23
|
-
#
|
24
|
-
# fib = Enumerator.new { |y|
|
25
|
-
# a = b = 1
|
26
|
-
# loop {
|
27
|
-
# y << a
|
28
|
-
# a, b = b, a + b
|
29
|
-
# }
|
30
|
-
# }
|
31
|
-
#
|
32
|
-
# assert_equal [1, 1, 2, 3, 5, 8, 13, 21, 34, 55], fib.take(10)
|
33
|
-
|
34
|
-
def initialize(*args, &block)
|
35
|
-
if block_given?
|
36
|
-
@body = block
|
37
|
-
old_initialize(self, :_start)
|
38
|
-
else
|
39
|
-
old_initialize(*args)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def _start(*args,&receiver) #:nodoc:
|
44
|
-
@body.call(Yielder.new(receiver), *args)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Wrapper to allow yielder.yield(output) or yielder << output
|
48
|
-
# in the same way as ruby-1.9
|
49
|
-
|
50
|
-
class Yielder #:nodoc:
|
51
|
-
def initialize(proc)
|
52
|
-
@proc = proc
|
53
|
-
end
|
54
|
-
def yield(*args)
|
55
|
-
@proc[*args]
|
56
|
-
end
|
57
|
-
alias :<< :yield
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
# For ruby-1.9 compatibility, define Enumerator class at top level
|
64
|
-
Enumerator = Enumerable::Enumerator unless defined? ::Enumerator
|
65
|
-
|
66
|
-
end # if RUBY_VERSION
|
67
|
-
|
data/lib/lore/facets/logger.rb
DELETED
@@ -1,291 +0,0 @@
|
|
1
|
-
# = Logger
|
2
|
-
#
|
3
|
-
# Extended variation of Ruby's standard Logger library.
|
4
|
-
#
|
5
|
-
# log = Logger.new
|
6
|
-
#
|
7
|
-
# log.setup_format do |severity, timestamp, progname, msg|
|
8
|
-
# Logger::SIMPLE_FORMAT % [severity, msg]
|
9
|
-
# end
|
10
|
-
#
|
11
|
-
# == Conventions
|
12
|
-
#
|
13
|
-
# When using debug level logger messages always append 'if $DBG'
|
14
|
-
# at the end. This hack is needed because Ruby does not support
|
15
|
-
# lazy evaluation (lisp macros).
|
16
|
-
#
|
17
|
-
# == Authors
|
18
|
-
#
|
19
|
-
# * George Moschovitis
|
20
|
-
# * TransLogarithim
|
21
|
-
#
|
22
|
-
# == Copying
|
23
|
-
#
|
24
|
-
# Copyright (c) 2005 George Moschovitis
|
25
|
-
#
|
26
|
-
# Ruby License
|
27
|
-
#
|
28
|
-
# This module is free software. You may use, modify, and/or redistribute this
|
29
|
-
# software under the same terms as Ruby.
|
30
|
-
#
|
31
|
-
# This program is distributed in the hope that it will be useful, but WITHOUT
|
32
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
33
|
-
# FOR A PARTICULAR PURPOSE.
|
34
|
-
|
35
|
-
require "logger"
|
36
|
-
require "time"
|
37
|
-
require "facets/ansicode"
|
38
|
-
|
39
|
-
# = Logger
|
40
|
-
#
|
41
|
-
# Extended variation of Ruby's standard Logger library.
|
42
|
-
# Mainly for compatibility purposes (with what?)
|
43
|
-
#
|
44
|
-
# log = Logger.new
|
45
|
-
#
|
46
|
-
# log.setup_format do |severity, timestamp, progname, msg|
|
47
|
-
# Logger::SIMPLE_FORMAT % [severity, msg]
|
48
|
-
# end
|
49
|
-
#
|
50
|
-
# When using debug level logger messages always append 'if $DBG'
|
51
|
-
# at the end. This hack is needed because Ruby does not support
|
52
|
-
# lazy evaluation (lisp macros).
|
53
|
-
#
|
54
|
-
# TODO: What's all this about then?
|
55
|
-
|
56
|
-
class Logger
|
57
|
-
|
58
|
-
# Some available logging formats.
|
59
|
-
SIMPLE_FORMAT = "%5s: %s\n"
|
60
|
-
DETAILED_FORMAT = "%s %5s: %s\n"
|
61
|
-
|
62
|
-
# Why these names ?
|
63
|
-
alias_method :devel, :debug
|
64
|
-
alias_method :fine, :debug
|
65
|
-
|
66
|
-
def ansicolor=(on)
|
67
|
-
unless is_a?(Ansicolor)
|
68
|
-
class << self
|
69
|
-
include Ansicolor
|
70
|
-
end
|
71
|
-
end
|
72
|
-
@logdev.ansicolor = on
|
73
|
-
end
|
74
|
-
|
75
|
-
# NOTE: trace is deprecated b/c binding of caller is no longer possible.
|
76
|
-
=begin
|
77
|
-
# Prints a trace message to DEBUGLOG (at debug level).
|
78
|
-
# Useful for emitting the value of variables, etc. Use
|
79
|
-
# like this:
|
80
|
-
#
|
81
|
-
# x = y = 5
|
82
|
-
# trace 'x' # -> 'x = 5'
|
83
|
-
# trace 'x ** y' # -> 'x ** y = 3125'
|
84
|
-
#
|
85
|
-
# If you have a more complicated value, like an array of
|
86
|
-
# hashes, then you'll probably want to use an alternative
|
87
|
-
# output format. For instance:
|
88
|
-
#
|
89
|
-
# trace 'value', :yaml
|
90
|
-
#
|
91
|
-
# Valid output format values (the _style_ parameter) are:
|
92
|
-
#
|
93
|
-
# :p :inspect
|
94
|
-
# :pp (pretty-print, using 'pp' library)
|
95
|
-
# :s :to_s
|
96
|
-
# :y :yaml :to_yaml (using the 'yaml' library')
|
97
|
-
#
|
98
|
-
# The default is <tt>:p</tt>.
|
99
|
-
#
|
100
|
-
# CREDITS:
|
101
|
-
#
|
102
|
-
# This code comes straight from the dev-utils Gem.
|
103
|
-
# Author: Gavin Sinclair <gsinclair@soyabean.com.au>
|
104
|
-
|
105
|
-
def trace(expr, style=:p)
|
106
|
-
unless expr.respond_to? :to_str
|
107
|
-
warn "trace: Can't evaluate the given value: #{caller.first}"
|
108
|
-
else
|
109
|
-
raise "FACETS: binding/or_caller is no longer possible"
|
110
|
-
require "facets/core/binding/self/of_caller"
|
111
|
-
|
112
|
-
Binding.of_caller do |b|
|
113
|
-
value = b.eval(expr.to_str)
|
114
|
-
formatter = TRACE_STYLES[style] || :inspect
|
115
|
-
case formatter
|
116
|
-
when :pp then require 'pp'
|
117
|
-
when :y, :yaml, :to_yaml then require 'yaml'
|
118
|
-
end
|
119
|
-
value_s = value.send(formatter)
|
120
|
-
message = "#{expr} = #{value_s}"
|
121
|
-
lines = message.split(/\n/)
|
122
|
-
indent = " "
|
123
|
-
debug(lines.shift)
|
124
|
-
lines.each do |line|
|
125
|
-
debug(indent + line)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
TRACE_STYLES = {} # :nodoc:
|
132
|
-
TRACE_STYLES.update(
|
133
|
-
:pp => :pp_s, :s => :to_s, :p => :inspect,
|
134
|
-
:y => :to_yaml, :yaml => :to_yaml,
|
135
|
-
:inspect => :inspect, :to_yaml => :to_yaml
|
136
|
-
)
|
137
|
-
=end
|
138
|
-
|
139
|
-
# Dictate the way in which this logger should format the
|
140
|
-
# messages it displays. This method requires a block. The
|
141
|
-
# block should return formatted strings given severity,
|
142
|
-
# timestamp, msg, progname.
|
143
|
-
#
|
144
|
-
# === Example
|
145
|
-
#
|
146
|
-
# logger = Logger.new
|
147
|
-
# logger.setup_format do |severity, timestamp, msg, progname|
|
148
|
-
# "#{progname}@#{timestamp} - #{severity}::#{msg}"
|
149
|
-
# end
|
150
|
-
|
151
|
-
def setup_format(&format_proc)
|
152
|
-
raise "Formating block needed" unless format_proc
|
153
|
-
@format_proc = format_proc
|
154
|
-
end
|
155
|
-
|
156
|
-
def format_procedure
|
157
|
-
@format_proc
|
158
|
-
end
|
159
|
-
|
160
|
-
private
|
161
|
-
|
162
|
-
attr_accessor :format_proc
|
163
|
-
|
164
|
-
alias_method :format_message_without_proc, :format_message # :nodoc:
|
165
|
-
|
166
|
-
def format_message(*args) # :nodoc:
|
167
|
-
@format_proc ? @format_proc.call(*args) : format_message_without_proc(*args)
|
168
|
-
end
|
169
|
-
|
170
|
-
class LogDevice
|
171
|
-
attr_writer :ansicolor
|
172
|
-
|
173
|
-
def ansicolor?
|
174
|
-
@ansicolor
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
# For adding ansicolor output.
|
179
|
-
|
180
|
-
module Ansicolor
|
181
|
-
|
182
|
-
def info(str)
|
183
|
-
return unless info?
|
184
|
-
@logdev.ansicolor? ? info_with_color{ super } : super
|
185
|
-
end
|
186
|
-
|
187
|
-
def warn(str)
|
188
|
-
return unless warn?
|
189
|
-
@logdev.ansicolor? ? warn_with_color{ super } : super
|
190
|
-
end
|
191
|
-
|
192
|
-
def debug(str)
|
193
|
-
return unless debug?
|
194
|
-
@logdev.ansicolor? ? debug_with_color{ super } : super
|
195
|
-
end
|
196
|
-
|
197
|
-
def error(str)
|
198
|
-
return unless error?
|
199
|
-
@logdev.ansicolor? ? error_with_color{ super } : super
|
200
|
-
end
|
201
|
-
|
202
|
-
def fatal(str)
|
203
|
-
return unless error?
|
204
|
-
@logdev.ansicolor? ? fatal_with_color{ super } : super
|
205
|
-
end
|
206
|
-
|
207
|
-
def info_with_color #:yield:
|
208
|
-
self << ANSICode.green
|
209
|
-
yield
|
210
|
-
self << ANSICode.clear
|
211
|
-
end
|
212
|
-
|
213
|
-
def warn_with_color #:yield:
|
214
|
-
self << ANSICode.cyan
|
215
|
-
yield
|
216
|
-
self << ANSICode.clear
|
217
|
-
end
|
218
|
-
|
219
|
-
def error_with_color #:yield:
|
220
|
-
self << ANSICode.red
|
221
|
-
yield
|
222
|
-
self << ANSICode.clear
|
223
|
-
end
|
224
|
-
|
225
|
-
def debug_with_color #:yield:
|
226
|
-
self << ANSICode.yellow
|
227
|
-
yield
|
228
|
-
self << ANSICode.clear
|
229
|
-
end
|
230
|
-
|
231
|
-
def fatal_with_color #:yield:
|
232
|
-
self << ANSICode.bold + ANSICode.red
|
233
|
-
yield
|
234
|
-
self << ANSICode.clear
|
235
|
-
end
|
236
|
-
|
237
|
-
end
|
238
|
-
|
239
|
-
end
|
240
|
-
|
241
|
-
# OLD WAY TO ADD COLOR
|
242
|
-
=begin
|
243
|
-
module Console
|
244
|
-
|
245
|
-
class Logger < ::Logger
|
246
|
-
|
247
|
-
attr_accessor :style
|
248
|
-
|
249
|
-
def style
|
250
|
-
@style ||= Style.new
|
251
|
-
end
|
252
|
-
|
253
|
-
def info(str)
|
254
|
-
return if level > Logger::INFO
|
255
|
-
self << style.info(str)
|
256
|
-
super
|
257
|
-
self << ANSICode.clear
|
258
|
-
end
|
259
|
-
|
260
|
-
def warn(str)
|
261
|
-
self << style.warn(str)
|
262
|
-
super
|
263
|
-
self << ANSICode.clear
|
264
|
-
end
|
265
|
-
|
266
|
-
def error(str)
|
267
|
-
return if level > Logger::ERROR
|
268
|
-
self << style.error(str)
|
269
|
-
super
|
270
|
-
self << ANSICode.clear
|
271
|
-
end
|
272
|
-
|
273
|
-
def debug(str)
|
274
|
-
self << style.debug(str)
|
275
|
-
super
|
276
|
-
self << ANSICode.clear
|
277
|
-
end
|
278
|
-
|
279
|
-
# Logger Style
|
280
|
-
|
281
|
-
class Style
|
282
|
-
def info(str) ; ANSICode.green ; end
|
283
|
-
def warn(str) ; ANSICode.cyan ; end
|
284
|
-
def error(str) ; ANSICode.bold + ANSICode.red ; end
|
285
|
-
def debug(str) ; '' ; end
|
286
|
-
end
|
287
|
-
|
288
|
-
end
|
289
|
-
end
|
290
|
-
=end
|
291
|
-
|