facets 2.8.4 → 2.9.0.pre.1
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/AUTHORS +2 -0
- data/HISTORY.rdoc +233 -94
- data/NOTICE +27 -0
- data/README.rdoc +131 -49
- data/Rakefile +190 -97
- data/lib/core/facets/applique/file_helpers.rb +33 -0
- data/lib/core/facets/array/after.rb +1 -0
- data/lib/core/facets/array/before.rb +39 -0
- data/lib/core/facets/{enumerable → array}/collapse.rb +0 -0
- data/lib/core/facets/array/collisions.rb +1 -0
- data/lib/core/facets/array/combination.rb +0 -16
- data/lib/core/facets/{enumerable → array}/commonality.rb +8 -6
- data/lib/core/facets/array/conjoin.rb +48 -17
- data/lib/core/facets/{string → array}/contains.rb +0 -0
- data/lib/core/facets/array/delete_unless.rb +1 -1
- data/lib/core/facets/array/divide.rb +20 -0
- data/lib/core/facets/array/duplicates.rb +1 -0
- data/lib/core/facets/{enumerable → array}/entropy.rb +8 -6
- data/lib/core/facets/array/extract_options.rb +31 -0
- data/lib/core/facets/array/from.rb +33 -0
- data/lib/core/facets/array/index.rb +2 -4
- data/lib/core/facets/array/indexable.rb +4 -46
- data/lib/core/facets/array/merge.rb +3 -2
- data/lib/core/facets/array/mode.rb +22 -0
- data/lib/core/facets/array/nonuniq.rb +37 -0
- data/lib/core/facets/array/only.rb +9 -3
- data/lib/core/facets/array/peek.rb +1 -0
- data/lib/core/facets/array/permutation.rb +2 -0
- data/lib/core/facets/array/poke.rb +1 -0
- data/lib/core/facets/{enumerable → array}/probability.rb +9 -6
- data/lib/core/facets/array/product.rb +1 -2
- data/lib/core/facets/array/pull.rb +30 -0
- data/lib/core/facets/array/recurse.rb +29 -0
- data/lib/core/facets/array/recursively.rb +39 -22
- data/lib/core/facets/array/rotate.rb +40 -32
- data/lib/core/facets/array/select.rb +14 -10
- data/lib/core/facets/array/splice.rb +2 -5
- data/lib/core/facets/{enumerable → array}/split.rb +2 -2
- data/lib/core/facets/array/store.rb +12 -0
- data/lib/core/facets/array/thru.rb +1 -0
- data/lib/core/facets/array/traverse.rb +10 -5
- data/lib/core/facets/array/uniq_by.rb +6 -8
- data/lib/core/facets/binding/__callee__.rb +1 -0
- data/lib/core/facets/binding/__method__.rb +1 -0
- data/lib/core/facets/binding/call_stack.rb +1 -0
- data/lib/core/facets/binding/caller.rb +6 -5
- data/lib/core/facets/binding/callstack.rb +1 -1
- data/lib/core/facets/binding/eval.rb +2 -6
- data/lib/core/facets/binding/local_variables.rb +5 -3
- data/lib/core/facets/binding/{opvars.rb → op.rb} +0 -0
- data/lib/core/facets/boolean.rb +27 -59
- data/lib/core/facets/class/descendants.rb +21 -34
- data/lib/core/facets/class/methodize.rb +6 -1
- data/lib/core/facets/class/pathize.rb +6 -1
- data/lib/core/facets/class/subclasses.rb +27 -1
- data/lib/core/facets/class/to_proc.rb +4 -1
- data/lib/core/facets/comparable/bound.rb +1 -1
- data/lib/core/facets/comparable/cmp.rb +3 -0
- data/lib/core/facets/comparable/op_get.rb +45 -0
- data/lib/core/facets/dir/ascend.rb +8 -12
- data/lib/core/facets/dir/each_child.rb +16 -0
- data/lib/core/facets/dir/multiglob.rb +15 -27
- data/lib/core/facets/dir/parent.rb +4 -1
- data/lib/core/facets/dir/recurse.rb +6 -3
- data/lib/core/facets/enumerable/accumulate.rb +47 -9
- data/lib/core/facets/enumerable/cluster_by.rb +1 -4
- data/lib/core/facets/enumerable/compact_map.rb +3 -5
- data/lib/core/facets/enumerable/count.rb +42 -30
- data/lib/core/facets/enumerable/defer.rb +1 -2
- data/lib/core/facets/enumerable/each_with_object.rb +2 -2
- data/lib/core/facets/enumerable/every.rb +16 -11
- data/lib/core/facets/enumerable/ewise.rb +11 -19
- data/lib/core/facets/enumerable/exclude.rb +4 -1
- data/lib/core/facets/enumerable/expand.rb +15 -0
- data/lib/core/facets/enumerable/filter.rb +9 -11
- data/lib/core/facets/enumerable/find_yield.rb +14 -9
- data/lib/core/facets/enumerable/frequency.rb +12 -6
- data/lib/core/facets/enumerable/graph.rb +2 -2
- data/lib/core/facets/enumerable/group_by.rb +13 -7
- data/lib/core/facets/enumerable/map_by.rb +35 -0
- data/lib/core/facets/enumerable/map_send.rb +12 -10
- data/lib/core/facets/enumerable/modulate.rb +1 -1
- data/lib/core/facets/enumerable/none.rb +5 -5
- data/lib/core/facets/enumerable/occur.rb +9 -7
- data/lib/core/facets/enumerable/one.rb +6 -6
- data/lib/core/facets/enumerable/per.rb +35 -13
- data/lib/core/facets/enumerable/recursively.rb +66 -0
- data/lib/core/facets/enumerable/take.rb +11 -15
- data/lib/core/facets/enumerable/uniq_by.rb +1 -4
- data/lib/core/facets/enumerable/visit.rb +4 -4
- data/lib/core/facets/enumerator.rb +17 -12
- data/lib/core/facets/enumerator/fx.rb +24 -8
- data/lib/core/facets/exception/detail.rb +1 -1
- data/lib/core/facets/exception/raised.rb +1 -1
- data/lib/core/facets/exception/suppress.rb +3 -1
- data/lib/core/facets/file/append.rb +2 -2
- data/lib/core/facets/file/create.rb +1 -1
- data/lib/core/facets/file/ext.rb +7 -7
- data/lib/core/facets/file/read_binary.rb +18 -0
- data/lib/core/facets/file/read_list.rb +34 -0
- data/lib/core/facets/file/rewrite.rb +9 -7
- data/lib/core/facets/file/rootname.rb +2 -12
- data/lib/core/facets/file/sanitize.rb +18 -0
- data/lib/core/facets/file/split_all.rb +1 -1
- data/lib/core/facets/file/write.rb +16 -14
- data/lib/core/facets/file/writelines.rb +5 -1
- data/lib/core/facets/functor.rb +53 -52
- data/lib/core/facets/hash/alias.rb +3 -3
- data/lib/core/facets/hash/argumentize.rb +10 -4
- data/lib/core/facets/hash/autonew.rb +10 -12
- data/lib/core/facets/hash/collate.rb +35 -49
- data/lib/core/facets/hash/count.rb +0 -2
- data/lib/core/facets/hash/data.rb +31 -4
- data/lib/core/facets/hash/{recursive_merge.rb → deep_merge.rb} +4 -10
- data/lib/core/facets/hash/delete.rb +4 -47
- data/lib/core/facets/hash/delete_at.rb +7 -0
- data/lib/core/facets/hash/delete_unless.rb +17 -0
- data/lib/core/facets/hash/delete_values.rb +32 -0
- data/lib/core/facets/hash/diff.rb +7 -1
- data/lib/core/facets/hash/except.rb +15 -17
- data/lib/core/facets/hash/inverse.rb +7 -4
- data/lib/core/facets/hash/join.rb +6 -3
- data/lib/core/facets/hash/new_with.rb +1 -1
- data/lib/core/facets/hash/op_and.rb +2 -2
- data/lib/core/facets/hash/op_mul.rb +4 -4
- data/lib/core/facets/hash/recurse.rb +29 -0
- data/lib/core/facets/hash/recursively.rb +50 -18
- data/lib/core/facets/hash/rekey.rb +50 -34
- data/lib/core/facets/hash/{merge.rb → reverse_merge.rb} +0 -0
- data/lib/core/facets/hash/select.rb +10 -6
- data/lib/core/facets/hash/slice.rb +24 -25
- data/lib/core/facets/hash/symbolize_keys.rb +74 -76
- data/lib/core/facets/hash/to_mod.rb +33 -0
- data/lib/core/facets/hash/to_proc.rb +11 -10
- data/lib/core/facets/hash/traverse.rb +4 -4
- data/lib/core/facets/hash/update.rb +1 -1
- data/lib/core/facets/hash/update_values.rb +2 -2
- data/lib/core/facets/hash/weave.rb +2 -7
- data/lib/core/facets/indexable.rb +59 -40
- data/lib/core/facets/{kernel/instance.rb → instance.rb} +3 -2
- data/lib/core/facets/integer/bit.rb +1 -0
- data/lib/core/facets/{bitmask.rb → integer/bitmask.rb} +9 -11
- data/lib/core/facets/integer/factorial.rb +1 -10
- data/lib/core/facets/integer/odd.rb +2 -4
- data/lib/core/facets/integer/of.rb +1 -1
- data/lib/core/facets/kernel/__dir__.rb +10 -6
- data/lib/core/facets/kernel/__get__.rb +8 -3
- data/lib/core/facets/kernel/__method__.rb +12 -6
- data/lib/core/facets/kernel/as.rb +61 -46
- data/lib/core/facets/kernel/ask.rb +11 -11
- data/lib/core/facets/kernel/assign.rb +40 -27
- data/lib/core/facets/kernel/assign_from.rb +1 -45
- data/lib/core/facets/kernel/attr_singleton.rb +22 -25
- data/lib/core/facets/kernel/blank.rb +84 -0
- data/lib/core/facets/kernel/call_stack.rb +56 -0
- data/lib/core/facets/kernel/callstack.rb +1 -52
- data/lib/core/facets/kernel/case.rb +8 -0
- data/lib/core/facets/kernel/clone.rb +1 -0
- data/lib/core/facets/kernel/complete.rb +10 -2
- data/lib/core/facets/kernel/constant.rb +4 -8
- data/lib/core/facets/kernel/d.rb +12 -8
- data/lib/core/facets/kernel/deep_clone.rb +1 -0
- data/lib/core/facets/kernel/deep_copy.rb +27 -2
- data/lib/core/facets/kernel/disable_warnings.rb +26 -0
- data/lib/core/facets/kernel/dup.rb +33 -0
- data/lib/core/facets/kernel/enable_warnings.rb +1 -0
- data/lib/core/facets/kernel/equate.rb +8 -5
- data/lib/core/facets/kernel/ergo.rb +4 -3
- data/lib/core/facets/kernel/extend.rb +17 -1
- data/lib/core/facets/kernel/extension.rb +3 -0
- data/lib/core/facets/kernel/here.rb +1 -2
- data/lib/core/facets/kernel/instance_class.rb +2 -1
- data/lib/core/facets/kernel/load_all.rb +1 -0
- data/lib/core/facets/kernel/load_relative.rb +1 -0
- data/lib/core/facets/kernel/maybe.rb +3 -2
- data/lib/core/facets/kernel/meta_alias.rb +9 -4
- data/lib/core/facets/kernel/meta_class.rb +4 -4
- data/lib/core/facets/kernel/meta_def.rb +0 -2
- data/lib/core/facets/kernel/meta_eval.rb +7 -5
- data/lib/core/facets/kernel/method.rb +5 -4
- data/lib/core/facets/kernel/not.rb +37 -0
- data/lib/core/facets/kernel/not_nil.rb +3 -2
- data/lib/core/facets/kernel/object_hexid.rb +9 -7
- data/lib/core/facets/kernel/object_send.rb +11 -10
- data/lib/core/facets/kernel/object_state.rb +21 -4
- data/lib/core/facets/kernel/p.rb +3 -3
- data/lib/core/facets/kernel/presence.rb +1 -0
- data/lib/core/facets/kernel/present.rb +1 -0
- data/lib/core/facets/kernel/qua_class.rb +15 -3
- data/lib/core/facets/kernel/replace.rb +1 -0
- data/lib/core/facets/kernel/require_all.rb +33 -17
- data/lib/core/facets/kernel/require_relative.rb +10 -10
- data/lib/core/facets/kernel/respond.rb +26 -7
- data/lib/core/facets/kernel/returning.rb +5 -1
- data/lib/core/facets/kernel/silence.rb +39 -41
- data/lib/core/facets/kernel/silence_warnings.rb +1 -0
- data/lib/core/facets/kernel/singleton_class.rb +2 -13
- data/lib/core/facets/kernel/super_method.rb +11 -0
- data/lib/core/facets/kernel/tap.rb +16 -7
- data/lib/core/facets/kernel/temporarily.rb +23 -0
- data/lib/core/facets/kernel/try.rb +43 -10
- data/lib/core/facets/kernel/try_dup.rb +19 -9
- data/lib/core/facets/kernel/writers.rb +91 -0
- data/lib/core/facets/matchdata/matchset.rb +4 -4
- data/lib/core/facets/method.rb +6 -0
- data/lib/core/facets/module/abstract.rb +10 -7
- data/lib/core/facets/module/alias_method_chain.rb +22 -4
- data/lib/core/facets/module/alias_module_function.rb +4 -4
- data/lib/core/facets/module/all_instance_methods.rb +19 -0
- data/lib/core/facets/module/ancestor.rb +1 -1
- data/lib/core/facets/module/anonymous.rb +25 -0
- data/lib/core/facets/module/attr_setter.rb +8 -13
- data/lib/core/facets/module/basename.rb +6 -6
- data/lib/core/facets/module/can.rb +8 -2
- data/lib/core/facets/module/class_method_defined.rb +1 -0
- data/lib/core/facets/module/extend.rb +1 -10
- data/lib/core/facets/module/instance_method.rb +3 -2
- data/lib/core/facets/module/instance_method_defined.rb +23 -0
- data/lib/core/facets/module/integrate.rb +48 -1
- data/lib/core/facets/module/is.rb +5 -5
- data/lib/core/facets/module/method_clash.rb +58 -0
- data/lib/core/facets/module/methodize.rb +7 -1
- data/lib/core/facets/module/modname.rb +22 -0
- data/lib/core/facets/module/nodef.rb +13 -0
- data/lib/core/facets/module/op.rb +37 -22
- data/lib/core/facets/module/op_add.rb +1 -0
- data/lib/core/facets/module/op_mul.rb +1 -0
- data/lib/core/facets/module/op_sub.rb +1 -0
- data/lib/core/facets/module/pathize.rb +8 -10
- data/lib/core/facets/module/redirect_method.rb +5 -5
- data/lib/core/facets/module/remove.rb +1 -0
- data/lib/core/facets/module/rename_method.rb +12 -2
- data/lib/core/facets/module/revise.rb +20 -41
- data/lib/core/facets/module/set.rb +1 -1
- data/lib/core/facets/module/singleton_method_defined.rb +1 -0
- data/lib/core/facets/module/spacename.rb +4 -4
- data/lib/core/facets/module/to_obj.rb +20 -0
- data/lib/core/facets/module/wrap_method.rb +16 -9
- data/lib/core/facets/na.rb +15 -0
- data/lib/core/facets/numeric/round.rb +4 -4
- data/lib/core/facets/numeric/round_at.rb +1 -0
- data/lib/core/facets/numeric/round_to.rb +1 -0
- data/lib/core/facets/object.rb +6 -0
- data/lib/core/facets/objectspace/reflect.rb +26 -11
- data/lib/core/facets/proc/bind.rb +7 -5
- data/lib/core/facets/proc/bind_to.rb +8 -0
- data/lib/{more/facets → core/facets/proc}/partial.rb +9 -15
- data/lib/core/facets/proc/to_method.rb +10 -5
- data/lib/core/facets/process.rb +6 -0
- data/lib/core/facets/process/daemon.rb +32 -0
- data/lib/core/facets/range/combine.rb +1 -1
- data/lib/core/facets/range/within.rb +1 -1
- data/lib/core/facets/regexp/multiline.rb +13 -0
- data/lib/core/facets/regexp/op_add.rb +18 -0
- data/lib/core/facets/regexp/op_or.rb +18 -0
- data/lib/core/facets/string/align.rb +24 -6
- data/lib/core/facets/string/bracket.rb +9 -50
- data/lib/core/facets/string/camelcase.rb +32 -23
- data/lib/core/facets/string/capitalized.rb +7 -4
- data/lib/core/facets/string/characters.rb +13 -0
- data/lib/core/facets/string/cleanlines.rb +3 -13
- data/lib/core/facets/string/cmp.rb +1 -0
- data/lib/core/facets/string/compress_lines.rb +4 -4
- data/lib/core/facets/string/divide.rb +1 -4
- data/lib/core/facets/string/each_char.rb +17 -15
- data/lib/core/facets/string/each_word.rb +5 -1
- data/lib/core/facets/string/edit_distance.rb +64 -2
- data/lib/core/facets/string/file.rb +21 -5
- data/lib/core/facets/string/indent.rb +46 -4
- data/lib/core/facets/string/interpolate.rb +3 -4
- data/lib/core/facets/string/{chomp.rb → lchomp.rb} +0 -0
- data/lib/core/facets/string/line_wrap.rb +2 -5
- data/lib/core/facets/string/lines.rb +1 -1
- data/lib/core/facets/string/methodize.rb +3 -2
- data/lib/core/facets/string/modulize.rb +3 -1
- data/lib/core/facets/string/natcmp.rb +35 -36
- data/lib/core/facets/string/nchar.rb +11 -5
- data/lib/core/facets/string/newlines.rb +10 -13
- data/lib/core/facets/string/op_div.rb +2 -2
- data/lib/core/facets/string/op_sub.rb +1 -1
- data/lib/core/facets/string/pathize.rb +12 -10
- data/lib/core/facets/string/quote.rb +93 -0
- data/lib/core/facets/string/range.rb +11 -7
- data/lib/core/facets/string/rewrite.rb +6 -10
- data/lib/core/facets/string/similarity.rb +24 -27
- data/lib/core/facets/string/splice.rb +6 -10
- data/lib/core/facets/string/squish.rb +22 -0
- data/lib/core/facets/string/start_with.rb +31 -8
- data/lib/core/facets/string/store.rb +7 -0
- data/lib/core/facets/string/titlecase.rb +1 -1
- data/lib/core/facets/string/unbracket.rb +1 -0
- data/lib/core/facets/string/underscore.rb +1 -0
- data/lib/core/facets/string/unindent.rb +1 -0
- data/lib/core/facets/string/unquote.rb +1 -0
- data/lib/core/facets/string/word_wrap.rb +2 -2
- data/lib/core/facets/string/xor.rb +4 -6
- data/lib/core/facets/symbol/as_s.rb +17 -0
- data/lib/core/facets/symbol/bang.rb +1 -0
- data/lib/core/facets/symbol/generate.rb +3 -3
- data/lib/core/facets/symbol/not.rb +1 -1
- data/lib/core/facets/symbol/op_div.rb +8 -6
- data/lib/core/facets/symbol/plain.rb +27 -1
- data/lib/core/facets/symbol/succ.rb +7 -3
- data/lib/core/facets/symbol/thrown.rb +2 -4
- data/lib/core/facets/symbol/to_proc.rb +8 -13
- data/lib/core/facets/symbol/variablize.rb +7 -5
- data/lib/core/facets/time/ago.rb +1 -1
- data/lib/core/facets/time/change.rb +19 -14
- data/lib/core/facets/time/dst_adjustment.rb +24 -0
- data/lib/core/facets/time/elapse.rb +3 -1
- data/lib/core/facets/time/future.rb +4 -4
- data/lib/core/facets/time/hence.rb +1 -97
- data/lib/core/facets/time/in.rb +93 -0
- data/lib/core/facets/time/round_to.rb +21 -0
- data/lib/core/facets/time/set.rb +9 -3
- data/lib/core/facets/time/stamp.rb +2 -1
- data/lib/core/facets/time/to_time.rb +2 -2
- data/lib/core/facets/time/trunc.rb +3 -3
- data/lib/core/facets/to_hash.rb +16 -12
- data/lib/core/facets/unboundmethod/name.rb +3 -3
- data/lib/more/facets/argvector.rb +23 -33
- data/lib/more/facets/atomicfile.rb +51 -0
- data/lib/more/facets/basicobject.rb +6 -6
- data/lib/more/facets/cgi.rb +3 -9
- data/lib/more/facets/continuation.rb +2 -2
- data/lib/more/facets/date.rb +56 -54
- data/lib/more/facets/erb.rb +15 -12
- data/lib/more/facets/fileutils.rb +1 -20
- data/lib/more/facets/fileutils/cp_rx.rb +1 -1
- data/lib/more/facets/fileutils/safe_ln.rb +1 -2
- data/lib/more/facets/fileutils/slice.rb +11 -99
- data/lib/more/facets/fileutils/wc.rb +5 -56
- data/lib/more/facets/fileutils/whereis.rb +8 -6
- data/lib/more/facets/fileutils/which.rb +5 -48
- data/lib/more/facets/find.rb +16 -0
- data/lib/more/facets/getoptlong.rb +11 -23
- data/lib/more/facets/main.rb +27 -40
- data/lib/more/facets/memoizable.rb +141 -0
- data/lib/{core → more}/facets/metaid.rb +2 -2
- data/lib/more/facets/multipliers.rb +6 -38
- data/lib/more/facets/multiton.rb +14 -13
- data/lib/more/facets/nullclass.rb +3 -39
- data/lib/more/facets/opesc.rb +42 -23
- data/lib/more/facets/ostruct.rb +32 -59
- data/lib/more/facets/pathname.rb +53 -43
- data/lib/more/facets/platform.rb +87 -100
- data/lib/more/facets/random.rb +129 -172
- data/lib/more/facets/rbconfig.rb +130 -25
- data/lib/more/facets/reference.rb +7 -23
- data/lib/more/facets/set.rb +5 -0
- data/lib/more/facets/shellwords.rb +22 -4
- data/lib/more/facets/thread.rb +48 -25
- data/lib/more/facets/timer.rb +50 -117
- data/lib/more/facets/tuple.rb +31 -74
- data/lib/more/facets/uri.rb +29 -67
- data/lib/more/facets/yaml.rb +28 -44
- data/lib/more/facets/zlib.rb +3 -3
- data/lib/tour/facets/array/median.rb +14 -0
- data/lib/tour/facets/array/percentile.rb +29 -0
- data/lib/{core/facets/class/prepend.rb → tour/facets/class/preallocate.rb} +10 -10
- data/lib/{more/facets → tour/facets/integer}/roman.rb +8 -7
- data/lib/{core → tour}/facets/kernel/demo.rb +3 -2
- data/lib/{core → tour}/facets/kernel/eigenclass.rb +1 -3
- data/lib/{core → tour}/facets/kernel/instance_exec.rb +3 -6
- data/lib/tour/facets/kernel/memo.rb +38 -0
- data/lib/tour/facets/kernel/trap_chain.rb +20 -0
- data/lib/tour/facets/method/memoize.rb +10 -0
- data/lib/tour/facets/module/attr_class_accessor.rb +33 -0
- data/lib/tour/facets/module/attr_inheritor.rb +13 -0
- data/lib/{more → tour}/facets/module/attr_tester.rb +0 -3
- data/lib/{more → tour}/facets/module/attr_validator.rb +0 -0
- data/lib/tour/facets/module/cattr.rb +240 -0
- data/lib/tour/facets/module/class_accessor.rb +27 -0
- data/lib/tour/facets/module/class_extend.rb +82 -0
- data/lib/{more/facets/inheritor.rb → tour/facets/module/class_inheritor.rb} +12 -38
- data/lib/tour/facets/module/copy_inheritor.rb +39 -0
- data/lib/tour/facets/module/enclosure.rb +62 -0
- data/lib/tour/facets/module/enclosures.rb +1 -0
- data/lib/tour/facets/module/include_as.rb +1 -0
- data/lib/{more/facets → tour/facets/module}/instance_function.rb +26 -16
- data/lib/tour/facets/module/memoize.rb +12 -0
- data/lib/tour/facets/module/method_space.rb +94 -0
- data/lib/{core → tour}/facets/module/module_load.rb +0 -0
- data/lib/{core → tour}/facets/module/prepend.rb +4 -4
- data/lib/tour/facets/regexp/op_or.rb +11 -0
- data/lib/tour/facets/string/crypt.rb +16 -0
- data/lib/tour/facets/string/roman.rb +1 -0
- data/meta/data.rb +29 -0
- data/meta/gemfile +10 -0
- data/meta/profile +24 -0
- data/qed/applique/file_helpers.rb +24 -0
- data/qed/core/array/combination.rdoc +19 -0
- data/qed/core/array/delete.rdoc +23 -0
- data/qed/core/array/index.rdoc +14 -0
- data/qed/core/array/merge.rdoc +15 -0
- data/qed/core/array/only.rdoc +9 -0
- data/qed/core/array/pad.rdoc +28 -0
- data/qed/core/array/permutation.rdoc +10 -0
- data/qed/core/array/product.rdoc +26 -0
- data/qed/core/array/recursively.rdoc +16 -0
- data/qed/core/array/rotate.rdoc +30 -0
- data/qed/core/array/select.rdoc +8 -0
- data/qed/core/array/uniq_by.rdoc +9 -0
- data/qed/core/binding/caller.rdoc +59 -0
- data/qed/core/binding/defined.rdoc +10 -0
- data/qed/core/binding/eval.rdoc +8 -0
- data/qed/core/binding/local_variables.rdoc +26 -0
- data/qed/core/binding/opvars.rdoc +16 -0
- data/qed/core/binding/self.rdoc +6 -0
- data/qed/core/class/descendants.rdoc +10 -0
- data/qed/core/class/to_proc.rdoc +8 -0
- data/qed/core/comparable/cap.rdoc +20 -0
- data/qed/core/comparable/clip.rdoc +37 -0
- data/qed/core/comparable/cmp.rdoc +18 -0
- data/qed/core/comparable/op_get.rdoc +29 -0
- data/qed/core/dir/ascend.rdoc +24 -0
- data/qed/core/dir/descend.rdoc +14 -0
- data/qed/core/dir/multiglob.rdoc +41 -0
- data/qed/core/dir/parent.rdoc +6 -0
- data/qed/core/dir/recurse.rdoc +41 -0
- data/qed/core/exception/detail.rdoc +12 -0
- data/qed/core/facets.rdoc +6 -0
- data/qed/core/filetest/root.rdoc +6 -0
- data/qed/core/hash/recursively.rdoc +21 -0
- data/qed/core/indexable.rdoc +95 -0
- data/qed/core/integer/bitmask.rdoc +46 -0
- data/qed/core/integer/even.rdoc +12 -0
- data/qed/core/integer/factorial.rdoc +10 -0
- data/qed/core/integer/length.rdoc +7 -0
- data/qed/core/integer/multiple.rdoc +10 -0
- data/qed/core/integer/odd.rdoc +12 -0
- data/qed/core/integer/of.rdoc +14 -0
- data/qed/core/integer/ordinal.rdoc +9 -0
- data/qed/core/matchdata/match.rdoc +7 -0
- data/qed/core/matchdata/matchset.rdoc +15 -0
- data/qed/core/string/align.rdoc +34 -0
- data/qed/core/string/bracket.rdoc +35 -0
- data/qed/core/string/bytes.rdoc +8 -0
- data/qed/core/string/camelcase.rdoc +67 -0
- data/qed/core/string/capitalized.rdoc +27 -0
- data/qed/core/string/characters.rdoc +11 -0
- data/qed/core/string/cleanlines.rdoc +10 -0
- data/qed/core/string/cleave.rdoc +49 -0
- data/qed/core/string/divide.rdoc +9 -0
- data/qed/core/string/each_char.rdoc +9 -0
- data/qed/core/string/each_word.rdoc +9 -0
- data/qed/core/string/end_with.rdoc +6 -0
- data/qed/core/string/expand_tabs.rdoc +69 -0
- data/qed/core/string/fold.rdoc +14 -0
- data/qed/core/string/indent.rdoc +65 -0
- data/qed/core/string/interpolate.rdoc +7 -0
- data/qed/core/string/lchomp.rdoc +14 -0
- data/qed/core/string/line_wrap.rdoc +7 -0
- data/qed/core/string/lines.rdoc +8 -0
- data/qed/core/string/margin.rdoc +92 -0
- data/qed/core/string/methodize.rdoc +22 -0
- data/qed/core/string/modulize.rdoc +22 -0
- data/qed/core/string/mscan.rdoc +10 -0
- data/qed/core/string/natcmp.rdoc +10 -0
- data/qed/core/string/nchar.rdoc +9 -0
- data/qed/core/string/newlines.rdoc +9 -0
- data/qed/core/string/op_sub.rdoc +7 -0
- data/qed/core/string/pathize.rdoc +22 -0
- data/qed/core/string/quote.rdoc +20 -0
- data/qed/core/string/range.rdoc +19 -0
- data/qed/core/string/rewrite.rdoc +9 -0
- data/qed/core/string/shatter.rdoc +9 -0
- data/qed/core/string/snakecase.rdoc +9 -0
- data/qed/core/string/splice.rdoc +28 -0
- data/qed/core/string/start_with.rdoc +7 -0
- data/qed/core/string/subtract.rdoc +8 -0
- data/qed/core/string/tab.rdoc +16 -0
- data/qed/core/string/tabto.rdoc +29 -0
- data/qed/core/string/titlecase.rdoc +8 -0
- data/qed/core/string/to_re.rdoc +22 -0
- data/qed/core/string/unfold.rdoc +9 -0
- data/qed/core/string/unindent.rdoc +65 -0
- data/qed/core/string/unquote.rdoc +6 -0
- data/qed/core/string/variablize.rdoc +7 -0
- data/qed/core/string/word_wrap.rdoc +54 -0
- data/qed/core/string/words.rdoc +13 -0
- data/qed/core/string/xor.rdoc +8 -0
- data/qed/more/basic_object.rdoc +22 -0
- data/qed/more/memoizable.rdoc +134 -0
- data/qed/more/mulititon.rdoc +156 -0
- data/qed/tour/module/cattr.rdoc +43 -0
- data/qed/tour/module/class_extend.rdoc +64 -0
- data/qed/tour/module/class_inheritor.rdoc +126 -0
- data/qed/tour/module/copy_inheritor.rdoc +30 -0
- data/qed/tour/module/method_space.rdoc +55 -0
- data/test/core/array/test_after.rb +17 -0
- data/test/core/array/test_before.rb +17 -0
- data/test/core/array/test_collapse.rb +10 -0
- data/test/core/array/test_combination.rb +9 -17
- data/test/core/array/test_commonality.rb +27 -0
- data/test/core/array/test_conjoin.rb +46 -0
- data/test/core/array/test_contains.rb +10 -0
- data/test/core/array/test_delete.rb +12 -15
- data/test/core/array/test_divide.rb +10 -0
- data/test/core/array/test_duplicates.rb +11 -0
- data/test/core/array/test_entropy.rb +15 -0
- data/test/core/array/test_extract_options.rb +20 -0
- data/test/core/array/test_first.rb +13 -0
- data/test/core/array/test_index.rb +6 -7
- data/test/core/array/test_last.rb +13 -0
- data/test/core/array/test_merge.rb +6 -9
- data/test/core/array/test_mode.rb +13 -0
- data/test/core/array/test_nonuniq.rb +17 -0
- data/test/core/array/test_not_empty.rb +13 -0
- data/test/core/array/test_only.rb +7 -15
- data/test/core/array/test_pad.rb +10 -11
- data/test/core/array/test_peek.rb +24 -0
- data/test/core/array/test_permutation.rb +11 -9
- data/test/core/array/test_poke.rb +17 -0
- data/test/core/array/test_probability.rb +11 -0
- data/test/core/array/test_product.rb +25 -12
- data/test/core/array/test_pull.rb +11 -0
- data/test/core/array/test_recurse.rb +17 -0
- data/test/core/array/test_recursively.rb +29 -0
- data/test/core/array/test_rotate.rb +17 -10
- data/test/core/array/test_select.rb +4 -9
- data/test/core/array/test_splice.rb +17 -0
- data/test/core/array/test_split.rb +18 -0
- data/test/core/array/test_store.rb +20 -0
- data/test/core/array/test_traverse.rb +18 -0
- data/test/core/array/test_uniq_by.rb +13 -0
- data/test/core/binding/test_caller.rb +31 -30
- data/test/core/binding/test_defined.rb +9 -11
- data/test/core/binding/test_eval.rb +6 -9
- data/test/core/binding/test_local_variables.rb +24 -16
- data/test/core/binding/test_op.rb +20 -0
- data/test/core/binding/test_self.rb +6 -11
- data/test/core/class/test_descendents.rb +9 -8
- data/test/core/class/test_subclasses.rb +17 -0
- data/test/core/class/test_to_proc.rb +7 -8
- data/test/core/comparable/test_bound.rb +28 -0
- data/test/core/comparable/test_cap.rb +14 -15
- data/test/core/comparable/test_clip.rb +22 -17
- data/test/core/comparable/test_cmp.rb +6 -29
- data/test/core/comparable/{test_comparable.rb → test_op_get.rb} +19 -15
- data/test/core/denumerable_tc.rb +154 -0
- data/test/core/dir/test_ascend.rb +11 -19
- data/test/core/dir/test_descend.rb +7 -12
- data/test/core/dir/test_each_child.rb +18 -0
- data/test/core/dir/test_multiglob.rb +11 -36
- data/test/core/dir/test_parent.rb +4 -5
- data/test/core/dir/test_recurse.rb +10 -34
- data/test/core/enumerable/test_accumulate.rb +36 -0
- data/test/core/enumerable/test_cluster_by.rb +14 -10
- data/test/core/enumerable/test_compact_map.rb +19 -15
- data/test/core/enumerable/test_count.rb +9 -12
- data/test/core/enumerable/test_defer.rb +13 -78
- data/test/core/enumerable/test_each_by.rb +29 -39
- data/test/core/enumerable/test_each_with_object.rb +14 -0
- data/test/core/enumerable/test_every.rb +11 -12
- data/test/core/enumerable/test_ewise.rb +15 -16
- data/test/core/enumerable/test_exclude.rb +11 -0
- data/test/core/enumerable/test_expand.rb +11 -0
- data/test/core/enumerable/test_filter.rb +15 -0
- data/test/core/enumerable/test_find_yield.rb +43 -29
- data/test/core/enumerable/test_frequency.rb +6 -6
- data/test/core/enumerable/test_graph.rb +38 -0
- data/test/core/enumerable/test_group_by.rb +18 -17
- data/test/core/enumerable/test_map_by.rb +23 -0
- data/test/core/enumerable/test_map_send.rb +10 -0
- data/test/core/enumerable/test_map_with_index.rb +9 -5
- data/test/core/enumerable/test_mash.rb +5 -30
- data/test/core/enumerable/test_modulate.rb +4 -5
- data/test/core/enumerable/test_none.rb +6 -4
- data/test/core/enumerable/test_occur.rb +7 -8
- data/test/core/enumerable/test_one.rb +7 -4
- data/test/core/enumerable/test_per.rb +7 -10
- data/test/core/enumerable/test_purge.rb +18 -0
- data/test/core/enumerable/test_recursively.rb +29 -0
- data/test/core/enumerable/test_sum.rb +9 -0
- data/test/core/enumerable/test_take.rb +5 -7
- data/test/core/enumerable/test_uniq_by.rb +13 -7
- data/test/core/enumerable/test_visit.rb +10 -0
- data/test/core/enumerator/test_fx.rb +12 -0
- data/test/core/enumerator/test_new.rb +17 -0
- data/test/core/enumerator_tc.rb +28 -0
- data/test/core/exception/test_detail.rb +16 -0
- data/test/core/exception/test_raised.rb +13 -0
- data/test/core/exception/test_suppress.rb +14 -0
- data/test/core/file/test_append.rb +19 -0
- data/test/core/file/test_create.rb +8 -26
- data/test/core/file/test_ext.rb +15 -19
- data/test/core/file/test_null.rb +4 -6
- data/test/core/file/test_read_binary.rb +15 -0
- data/test/core/file/test_read_list.rb +12 -0
- data/test/core/file/test_rewrite.rb +18 -27
- data/test/core/file/test_rootname.rb +9 -0
- data/test/core/file/test_sanitize.rb +28 -0
- data/test/core/file/test_split_all.rb +5 -27
- data/test/core/file/test_write.rb +10 -23
- data/test/core/file/test_writelines.rb +10 -15
- data/test/core/filetest/test_root.rb +10 -0
- data/test/core/functor_tc.rb +29 -0
- data/test/core/hash/test_alias.rb +8 -7
- data/test/core/hash/test_argumentize.rb +19 -0
- data/test/core/hash/test_at.rb +5 -6
- data/test/core/hash/test_autonew.rb +12 -5
- data/test/core/hash/test_collate.rb +41 -23
- data/test/core/hash/test_count.rb +10 -0
- data/test/core/hash/test_data.rb +31 -0
- data/test/core/hash/test_dearray_values.rb +7 -8
- data/test/core/hash/test_deep_merge.rb +23 -0
- data/test/core/hash/test_delete_at.rb +14 -0
- data/test/core/hash/test_delete_unless.rb +14 -0
- data/test/core/hash/test_delete_values.rb +22 -0
- data/test/core/hash/test_diff.rb +12 -0
- data/test/core/hash/test_expect.rb +16 -0
- data/test/core/hash/test_graph.rb +32 -0
- data/test/core/hash/test_insert.rb +10 -7
- data/test/core/hash/test_inverse.rb +8 -7
- data/test/core/hash/test_join.rb +28 -0
- data/test/core/hash/test_keys.rb +21 -12
- data/test/core/hash/test_new_with.rb +13 -0
- data/test/core/hash/test_op_add.rb +5 -6
- data/test/core/hash/test_op_and.rb +11 -12
- data/test/core/hash/test_op_mul.rb +5 -6
- data/test/core/hash/test_op_or.rb +5 -6
- data/test/core/hash/test_op_push.rb +18 -18
- data/test/core/hash/test_op_sub.rb +8 -9
- data/test/core/hash/test_recurse.rb +18 -0
- data/test/core/hash/test_recursively.rb +67 -0
- data/test/core/hash/test_rekey.rb +46 -48
- data/test/core/hash/test_replace_each.rb +5 -6
- data/test/core/hash/test_reverse_merge.rb +27 -0
- data/test/core/hash/test_select.rb +23 -18
- data/test/core/hash/test_slice.rb +7 -10
- data/test/core/hash/test_stringify_keys.rb +8 -11
- data/test/core/hash/test_swap.rb +5 -5
- data/test/core/hash/test_symbolize_keys.rb +9 -11
- data/test/core/hash/test_to_mod.rb +20 -0
- data/test/core/hash/test_to_proc.rb +19 -0
- data/test/core/hash/test_to_struct.rb +18 -0
- data/test/core/hash/test_traverse.rb +11 -12
- data/test/core/hash/test_update_each.rb +5 -6
- data/test/core/hash/test_update_keys.rb +6 -7
- data/test/core/hash/test_update_values.rb +6 -6
- data/test/core/hash/test_weave.rb +5 -9
- data/test/core/hash/test_zipnew.rb +4 -5
- data/test/core/indexable_tc.rb +177 -0
- data/test/core/integer/test_bitmask.rb +34 -27
- data/test/core/integer/test_even.rb +7 -6
- data/test/core/integer/test_factorial.rb +16 -9
- data/test/core/integer/test_multiple.rb +3 -4
- data/test/core/integer/test_odd.rb +7 -6
- data/test/core/integer/test_of.rb +12 -7
- data/test/core/integer/test_ordinal.rb +14 -8
- data/test/core/kernel/test_as.rb +48 -39
- data/test/core/kernel/test_ask.rb +8 -0
- data/test/core/kernel/test_assign.rb +29 -30
- data/test/core/kernel/test_assign_from.rb +31 -11
- data/test/core/kernel/test_attr_singleton.rb +16 -18
- data/test/core/kernel/test_blank.rb +83 -0
- data/test/core/kernel/test_callstack.rb +8 -5
- data/test/core/kernel/test_class.rb +10 -0
- data/test/core/kernel/test_complete.rb +15 -0
- data/test/core/kernel/test_constant.rb +7 -11
- data/test/core/kernel/test_d.rb +10 -0
- data/test/core/kernel/test_deep_copy.rb +33 -0
- data/test/core/kernel/test_dir.rb +16 -0
- data/test/core/kernel/test_disable_warnings.rb +26 -0
- data/test/core/kernel/test_dup.rb +66 -0
- data/test/core/kernel/test_ergo.rb +23 -0
- data/test/core/kernel/test_extension.rb +14 -0
- data/test/core/kernel/test_get.rb +34 -0
- data/test/core/kernel/test_here.rb +4 -10
- data/test/core/kernel/test_in.rb +5 -6
- data/test/core/kernel/test_instance_assign.rb +7 -8
- data/test/core/kernel/test_instance_class.rb +4 -5
- data/test/core/kernel/test_instance_send.rb +22 -0
- data/test/core/kernel/test_maybe.rb +9 -0
- data/test/core/kernel/test_meta_alias.rb +14 -0
- data/test/core/kernel/test_meta_class.rb +25 -0
- data/test/core/kernel/test_meta_def.rb +11 -0
- data/test/core/kernel/test_meta_eval.rb +14 -0
- data/test/core/kernel/test_method.rb +10 -10
- data/test/core/kernel/test_not.rb +44 -0
- data/test/core/kernel/test_not_nil.rb +16 -8
- data/test/core/kernel/test_object_class.rb +7 -8
- data/test/core/kernel/test_object_hexid.rb +4 -5
- data/test/core/kernel/test_object_send.rb +21 -0
- data/test/core/kernel/test_object_state.rb +72 -0
- data/test/core/kernel/test_presence.rb +29 -0
- data/test/core/kernel/test_qua_class.rb +19 -0
- data/test/core/kernel/test_replace.rb +64 -0
- data/test/core/kernel/test_require_all.rb +11 -0
- data/test/core/kernel/test_require_relative.rb +12 -0
- data/test/core/kernel/test_respond.rb +32 -0
- data/test/core/kernel/test_returning.rb +4 -7
- data/test/core/kernel/test_silence.rb +17 -8
- data/test/core/kernel/test_singleton_class.rb +11 -0
- data/test/core/kernel/test_source_location.rb +18 -0
- data/test/core/kernel/test_super_method.rb +20 -0
- data/test/core/kernel/test_tap.rb +24 -9
- data/test/core/kernel/test_temporarily.rb +21 -0
- data/test/core/kernel/test_true.rb +23 -0
- data/test/core/kernel/test_try.rb +27 -0
- data/test/core/kernel/test_try_dup.rb +46 -0
- data/test/core/kernel/test_val.rb +11 -12
- data/test/core/kernel/test_with.rb +14 -0
- data/test/core/kernel/test_writers.rb +49 -0
- data/test/core/matchdata/test_match.rb +4 -8
- data/test/core/matchdata/test_matchset.rb +8 -10
- data/test/core/module/test_abstract.rb +13 -16
- data/test/core/module/test_alias_accessor.rb +14 -13
- data/test/core/module/test_alias_method_chain.rb +21 -20
- data/test/core/module/test_alias_module_function.rb +14 -12
- data/test/core/module/test_all_instance_methods.rb +23 -0
- data/test/core/module/test_ancestor.rb +6 -5
- data/test/core/module/test_anonymous.rb +14 -0
- data/test/core/module/test_attr_setter.rb +24 -0
- data/test/core/module/test_basename.rb +4 -5
- data/test/core/module/test_can.rb +10 -11
- data/test/core/module/test_class.rb +10 -13
- data/test/core/module/test_class_def.rb +18 -0
- data/test/core/module/test_instance_method.rb +16 -0
- data/test/core/module/test_instance_method_defined.rb +26 -0
- data/test/core/module/test_integrate.rb +15 -14
- data/test/core/module/test_is.rb +34 -10
- data/test/core/module/test_method_clash.rb +50 -0
- data/test/core/module/test_methodize.rb +12 -5
- data/test/core/module/test_modname.rb +9 -0
- data/test/core/module/test_module_def.rb +18 -0
- data/test/core/module/test_nodef.rb +15 -0
- data/test/core/module/test_op.rb +23 -25
- data/test/core/module/test_pathize.rb +11 -9
- data/test/core/module/test_redefine_method.rb +14 -19
- data/test/core/module/test_redirect_method.rb +14 -15
- data/test/core/module/test_remove.rb +15 -0
- data/test/core/module/test_rename_method.rb +16 -17
- data/test/core/module/test_revise.rb +33 -34
- data/test/core/module/test_set.rb +26 -0
- data/test/core/module/test_spacename.rb +5 -8
- data/test/core/module/test_to_obj.rb +16 -0
- data/test/core/module/test_wrap_method.rb +15 -15
- data/test/core/nilclass/test_to_f.rb +4 -5
- data/test/core/numeric/test_approx.rb +4 -4
- data/test/core/numeric/test_distance.rb +6 -7
- data/test/core/numeric/test_length.rb +12 -0
- data/test/core/numeric/test_round.rb +42 -33
- data/test/core/numeric/test_spacing.rb +8 -7
- data/test/core/proc/test_bind.rb +7 -7
- data/test/core/proc/test_bind_to.rb +13 -0
- data/test/core/proc/test_compose.rb +8 -9
- data/test/core/proc/test_curry.rb +11 -13
- data/test/core/proc/test_partial.rb +23 -0
- data/test/core/proc/test_to_method.rb +28 -15
- data/test/core/proc/test_update.rb +11 -0
- data/test/core/range/test_combine.rb +13 -7
- data/test/core/range/test_overlap.rb +3 -7
- data/test/core/range/test_to_r.rb +6 -7
- data/test/core/range/test_umbrella.rb +28 -0
- data/test/core/range/test_within.rb +3 -27
- data/test/core/regexp/test_arity.rb +11 -8
- data/test/core/regexp/test_multiline.rb +15 -0
- data/test/core/regexp/test_op_add.rb +11 -0
- data/test/core/regexp/test_op_or.rb +12 -0
- data/test/core/regexp/test_to_re.rb +6 -7
- data/test/core/string/test_align.rb +13 -11
- data/test/core/string/test_bracket.rb +21 -52
- data/test/core/string/test_bytes.rb +4 -5
- data/test/core/string/test_camelcase.rb +43 -35
- data/test/core/string/test_capitalized.rb +14 -15
- data/test/core/string/test_characters.rb +11 -0
- data/test/core/string/test_cleanlines.rb +4 -5
- data/test/core/string/test_cleave.rb +17 -26
- data/test/core/string/test_cmp.rb +14 -0
- data/test/core/string/test_compress_lines.rb +14 -0
- data/test/core/string/test_divide.rb +4 -5
- data/test/core/string/test_each_char.rb +4 -5
- data/test/core/string/test_each_word.rb +4 -5
- data/test/core/string/test_edit_distance.rb +16 -0
- data/test/core/string/test_end_with.rb +9 -5
- data/test/core/string/test_exclude.rb +19 -0
- data/test/core/string/test_expand_tabs.rb +39 -26
- data/test/core/string/test_file.rb +11 -0
- data/test/core/string/test_fold.rb +6 -7
- data/test/core/string/test_indent.rb +51 -45
- data/test/core/string/test_index_all.rb +10 -0
- data/test/core/string/test_interpolate.rb +4 -8
- data/test/core/string/test_lchomp.rb +6 -7
- data/test/core/string/test_line_wrap.rb +5 -6
- data/test/core/string/test_lines.rb +4 -5
- data/test/core/string/test_lowercase.rb +14 -0
- data/test/core/string/test_margin.rb +17 -18
- data/test/core/string/test_methodize.rb +8 -9
- data/test/core/string/test_modulize.rb +8 -9
- data/test/core/string/test_mscan.rb +6 -7
- data/test/core/string/test_natcmp.rb +8 -12
- data/test/core/string/test_nchar.rb +7 -8
- data/test/core/string/test_newlines.rb +4 -5
- data/test/core/string/test_op_div.rb +11 -0
- data/test/core/string/test_op_sub.rb +4 -5
- data/test/core/string/test_pathize.rb +11 -12
- data/test/core/string/test_quote.rb +38 -0
- data/test/core/string/test_range.rb +12 -12
- data/test/core/string/test_rewrite.rb +5 -6
- data/test/core/string/test_shatter.rb +6 -7
- data/test/core/string/test_similarity.rb +10 -0
- data/test/core/string/test_snakecase.rb +7 -8
- data/test/core/string/test_splice.rb +13 -14
- data/test/core/string/test_squish.rb +23 -0
- data/test/core/string/test_start_with.rb +9 -5
- data/test/core/string/test_store.rb +12 -0
- data/test/core/string/test_subtract.rb +6 -7
- data/test/core/string/test_tab.rb +5 -6
- data/test/core/string/test_tabto.rb +5 -6
- data/test/core/string/test_titlecase.rb +4 -5
- data/test/core/string/test_to_re.rb +15 -15
- data/test/core/string/test_unbracket.rb +26 -0
- data/test/core/string/test_underscore.rb +17 -0
- data/test/core/string/test_unfold.rb +4 -5
- data/test/core/string/test_unindent.rb +100 -0
- data/test/core/string/test_unquote.rb +9 -0
- data/test/core/string/test_uppercase.rb +18 -0
- data/test/core/string/test_variablize.rb +4 -5
- data/test/core/string/test_word_wrap.rb +50 -27
- data/test/core/string/test_words.rb +7 -22
- data/test/core/string/test_xor.rb +4 -5
- data/test/core/symbol/test_as_s.rb +11 -0
- data/test/core/symbol/test_bang.rb +11 -0
- data/test/core/symbol/test_chomp.rb +6 -7
- data/test/core/symbol/test_generate.rb +8 -12
- data/test/core/symbol/test_not.rb +7 -5
- data/test/core/symbol/test_op_div.rb +11 -0
- data/test/core/symbol/test_plain.rb +4 -5
- data/test/core/symbol/test_query.rb +3 -4
- data/test/core/symbol/test_setter.rb +3 -4
- data/test/core/symbol/test_succ.rb +6 -7
- data/test/core/symbol/test_to_proc.rb +13 -13
- data/test/core/symbol/test_variablize.rb +10 -0
- data/test/core/time/test_ago.rb +127 -0
- data/test/core/time/test_change.rb +6 -8
- data/test/core/time/test_dst_adjustment.rb +10 -0
- data/test/core/time/test_elapse.rb +3 -5
- data/test/core/time/test_future.rb +21 -0
- data/test/core/time/test_hence.rb +9 -121
- data/test/core/time/test_in.rb +126 -0
- data/test/core/time/test_past.rb +21 -0
- data/test/core/time/test_round_to.rb +28 -0
- data/test/core/time/test_set.rb +39 -0
- data/test/core/time/test_stamp.rb +19 -14
- data/test/core/time/test_to_time.rb +5 -6
- data/test/core/time/test_trunc.rb +13 -16
- data/test/core/to_hash_tc.rb +163 -0
- data/test/core/unboundmethod/test_arguments.rb +8 -8
- data/test/core/unboundmethod/test_name.rb +6 -6
- data/test/more/test_argvector.rb +27 -27
- data/test/more/test_date.rb +28 -32
- data/test/more/test_memoizable.rb +38 -0
- data/test/more/test_multipliers.rb +45 -48
- data/test/more/test_ostruct.rb +91 -93
- data/test/more/test_random.rb +97 -90
- data/test/more/test_shellwords.rb +46 -11
- data/test/more/test_thread.rb +8 -9
- data/test/more/test_timer.rb +17 -32
- data/test/more/test_tuple.rb +29 -23
- data/test/more/test_uri.rb +10 -13
- data/test/tour/array/test_median.rb +10 -0
- data/test/tour/array/test_percentile.rb +10 -0
- data/test/tour/class/test_preallocate.rb +27 -0
- data/test/tour/module/test_cattr.rb +45 -0
- data/test/tour/module/test_class_extend.rb +66 -0
- data/test/tour/module/test_class_inheritor.rb +148 -0
- data/test/tour/module/test_copy_inheritor.rb +32 -0
- data/test/tour/module/test_enclosure.rb +20 -0
- data/test/tour/module/test_instance_function.rb +26 -0
- data/test/tour/module/test_memoize.rb +30 -0
- data/test/tour/module/test_method_space.rb +64 -0
- data/test/tour/module/test_module_load.rb +19 -0
- data/test/tour/module/test_prepend.rb +24 -0
- metadata +658 -278
- data/NOTES +0 -143
- data/demo/hook.rdoc +0 -49
- data/demo/scenario_require.rdoc +0 -7
- data/lib/core/facets-live.rb +0 -19
- data/lib/core/facets-load.rb +0 -12
- data/lib/core/facets/array/recursive.rb +0 -91
- data/lib/core/facets/array/stackable.rb +0 -33
- data/lib/core/facets/blank.rb +0 -60
- data/lib/core/facets/cattr.rb +0 -2
- data/lib/core/facets/class/cattr.rb +0 -112
- data/lib/core/facets/class/cattr_accessor.rb +0 -1
- data/lib/core/facets/class/cattr_reader.rb +0 -1
- data/lib/core/facets/class/cattr_writer.rb +0 -1
- data/lib/core/facets/class/descendents.rb +0 -1
- data/lib/core/facets/comparable/comparable.rb +0 -42
- data/lib/core/facets/duplicable.rb +0 -32
- data/lib/core/facets/enumerable/collisions.rb +0 -1
- data/lib/core/facets/enumerable/divide.rb +0 -33
- data/lib/core/facets/enumerable/duplicates.rb +0 -38
- data/lib/core/facets/enumerable/mode.rb +0 -16
- data/lib/core/facets/enumerable/recursive.rb +0 -75
- data/lib/core/facets/file/read.rb +0 -41
- data/lib/core/facets/hash/group_by_value.rb +0 -65
- data/lib/core/facets/hash/recursive.rb +0 -180
- data/lib/core/facets/hash/to_module.rb +0 -26
- data/lib/core/facets/kernel/__here__.rb +0 -14
- data/lib/core/facets/kernel/populate.rb +0 -2
- data/lib/core/facets/kernel/require_local.rb +0 -31
- data/lib/core/facets/kernel/resc.rb +0 -16
- data/lib/core/facets/kernel/set_from.rb +0 -2
- data/lib/core/facets/module/conflict.rb +0 -62
- data/lib/core/facets/module/instance_methods.rb +0 -38
- data/lib/core/facets/module/modspace.rb +0 -22
- data/lib/core/facets/module/module_require.rb +0 -1
- data/lib/core/facets/module/nesting.rb +0 -18
- data/lib/core/facets/stackable.rb +0 -86
- data/lib/core/facets/string/chars.rb +0 -20
- data/lib/core/facets/symbol/re_s.rb +0 -18
- data/lib/core/facets/time/advance.rb +0 -18
- data/lib/core/facets/time/round.rb +0 -17
- data/lib/more/facets/ansicode.rb +0 -306
- data/lib/more/facets/autoarray.rb +0 -34
- data/lib/more/facets/autoreload.rb +0 -150
- data/lib/more/facets/blankslate.rb +0 -10
- data/lib/more/facets/casting_hash.rb +0 -172
- data/lib/more/facets/class_extend.rb +0 -126
- data/lib/more/facets/cloneable.rb +0 -76
- data/lib/more/facets/daemonize.rb +0 -44
- data/lib/more/facets/dictionary.rb +0 -430
- data/lib/more/facets/duration.rb +0 -286
- data/lib/more/facets/enumargs.rb +0 -192
- data/lib/more/facets/equitable.rb +0 -120
- data/lib/more/facets/expirable.rb +0 -54
- data/lib/more/facets/filelist.rb +0 -497
- data/lib/more/facets/hashbuilder.rb +0 -101
- data/lib/more/facets/hook.rb +0 -38
- data/lib/more/facets/ini.rb +0 -267
- data/lib/more/facets/instantiable.rb +0 -47
- data/lib/more/facets/linkedlist.rb +0 -195
- data/lib/more/facets/matcher.rb +0 -140
- data/lib/more/facets/memoize.rb +0 -1
- data/lib/more/facets/memoizer.rb +0 -64
- data/lib/more/facets/methodspace.rb +0 -146
- data/lib/more/facets/module/attr.rb +0 -83
- data/lib/more/facets/module/attr_toggler.rb +0 -59
- data/lib/more/facets/module/class_extend.rb +0 -3
- data/lib/more/facets/once.rb +0 -59
- data/lib/more/facets/opencascade.rb +0 -94
- data/lib/more/facets/opencollection.rb +0 -43
- data/lib/more/facets/openhash.rb +0 -39
- data/lib/more/facets/openmodule.rb +0 -16
- data/lib/more/facets/openobject.rb +0 -267
- data/lib/more/facets/orderedhash.rb +0 -5
- data/lib/more/facets/ostructable.rb +0 -209
- data/lib/more/facets/pathlist.rb +0 -105
- data/lib/more/facets/preinitialize.rb +0 -157
- data/lib/more/facets/prepend.rb +0 -57
- data/lib/more/facets/rbsystem.rb +0 -222
- data/lib/more/facets/registerable.rb +0 -35
- data/lib/more/facets/semaphore.rb +0 -92
- data/lib/more/facets/stash.rb +0 -181
- data/lib/more/facets/succ.rb +0 -44
- data/lib/more/facets/version.rb +0 -136
- data/meta/authors +0 -1
- data/meta/collection +0 -1
- data/meta/contact +0 -1
- data/meta/contributors +0 -48
- data/meta/created +0 -1
- data/meta/description +0 -13
- data/meta/homepage +0 -1
- data/meta/license +0 -1
- data/meta/loadpath +0 -2
- data/meta/name +0 -1
- data/meta/released +0 -1
- data/meta/repository +0 -1
- data/meta/sitemap +0 -4
- data/meta/slogan +0 -1
- data/meta/summary +0 -1
- data/meta/version +0 -1
- data/script/conflicts +0 -63
- data/script/methods +0 -49
- data/test/core/array/test_indexable.rb +0 -118
- data/test/core/array/test_recursive.rb +0 -18
- data/test/core/array/test_stackable.rb +0 -22
- data/test/core/binding/test_opvars.rb +0 -24
- data/test/core/class/test_cattr.rb +0 -47
- data/test/core/class/test_cattr_accessor.rb +0 -2
- data/test/core/class/test_cattr_reader.rb +0 -1
- data/test/core/class/test_cattr_writer.rb +0 -1
- data/test/core/enumerable/test_commonality.rb +0 -15
- data/test/core/enumerable/test_entropy.rb +0 -15
- data/test/core/enumerable/test_inject.rb +0 -18
- data/test/core/enumerable/test_probability.rb +0 -11
- data/test/core/enumerable/test_recursive.rb +0 -18
- data/test/core/enumerable/test_split.rb +0 -19
- data/test/core/exception/test_exception.rb +0 -17
- data/test/core/file/test_file.rb +0 -85
- data/test/core/filetest/test_filetest.rb +0 -10
- data/test/core/hash/test_delete.rb +0 -28
- data/test/core/hash/test_mash.rb +0 -20
- data/test/core/hash/test_merge.rb +0 -14
- data/test/core/hash/test_op.rb +0 -1
- data/test/core/hash/test_recursive.rb +0 -23
- data/test/core/hash/test_to_module.rb +0 -21
- data/test/core/integer/test_length.rb +0 -12
- data/test/core/kernel/test_deepcopy.rb +0 -27
- data/test/core/kernel/test_resc.rb +0 -12
- data/test/core/module/test_conflict.rb +0 -24
- data/test/core/module/test_modspace.rb +0 -13
- data/test/core/module/test_nesting.rb +0 -21
- data/test/core/module/test_prepend.rb +0 -29
- data/test/core/string/test_chars.rb +0 -12
- data/test/core/string/test_outdent.rb +0 -65
- data/test/core/test_blank.rb +0 -12
- data/test/core/test_boolean.rb +0 -89
- data/test/core/test_functor.rb +0 -26
- data/test/core/test_metaid.rb +0 -39
- data/test/core/test_to_hash.rb +0 -244
- data/test/core/time/test_round.rb +0 -31
- data/test/more/test_ansicode.rb +0 -20
- data/test/more/test_autoarray.rb +0 -18
- data/test/more/test_basicobject.rb +0 -34
- data/test/more/test_class_extend.rb +0 -64
- data/test/more/test_cloneable.rb +0 -41
- data/test/more/test_continuation.rb +0 -15
- data/test/more/test_dictionary.rb +0 -145
- data/test/more/test_enumargs.rb +0 -70
- data/test/more/test_equitable.rb +0 -42
- data/test/more/test_getoptlong.rb +0 -26
- data/test/more/test_inheritor.rb +0 -148
- data/test/more/test_instance_function.rb +0 -31
- data/test/more/test_instantiable.rb +0 -37
- data/test/more/test_memoize.rb +0 -38
- data/test/more/test_methodspace.rb +0 -78
- data/test/more/test_multiton.rb +0 -184
- data/test/more/test_opencascade.rb +0 -61
- data/test/more/test_openobject.rb +0 -112
- data/test/more/test_partial.rb +0 -27
- data/test/more/test_prepend.rb +0 -28
- data/test/more/test_succ.rb +0 -35
data/NOTICE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
= COPYRIGHT NOTICES
|
2
|
+
|
3
|
+
== String#natcmp
|
4
|
+
|
5
|
+
String#natcmp is based on Martin Pool's "Natural Order String Comparison"
|
6
|
+
originally written in C. (see http://sourcefrog.net/projects/natsort/)
|
7
|
+
|
8
|
+
This implementation is Copyright (C) 2003 by Alan Davies
|
9
|
+
<cs96and_AT_yahoo_DOT_co_DOT_uk>
|
10
|
+
|
11
|
+
This software is provided 'as-is', without any express or implied
|
12
|
+
warranty. In no event will the authors be held liable for any damages
|
13
|
+
arising from the use of this software.
|
14
|
+
|
15
|
+
Permission is granted to anyone to use this software for any purpose,
|
16
|
+
including commercial applications, and to alter it and redistribute it
|
17
|
+
freely, subject to the following restrictions:
|
18
|
+
|
19
|
+
1. The origin of this software must not be misrepresented; you must not
|
20
|
+
claim that you wrote the original software. If you use this software
|
21
|
+
in a product, an acknowledgment in the product documentation would be
|
22
|
+
appreciated but is not required.
|
23
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
24
|
+
misrepresented as being the original software.
|
25
|
+
3. This notice may not be removed or altered from any source distribution.
|
26
|
+
|
27
|
+
|
data/README.rdoc
CHANGED
@@ -1,51 +1,50 @@
|
|
1
1
|
= Ruby Facets
|
2
2
|
|
3
|
-
* home: http://
|
4
|
-
*
|
5
|
-
*
|
3
|
+
* home: http://rubyworks.github.com/facets
|
4
|
+
* code: http://github.com/rubyworks/facets
|
5
|
+
* talk: http://groups.google.com/group/facets-universal
|
6
6
|
|
7
7
|
"ALL YOUR BASE ARE BELONG TO RUBY"
|
8
8
|
|
9
9
|
|
10
10
|
== Introduction
|
11
11
|
|
12
|
-
Ruby Facets is the
|
13
|
-
extensions and
|
12
|
+
Ruby Facets is the premiere collection of general purpose method
|
13
|
+
extensions and standard additions for the Ruby programming language.
|
14
14
|
|
15
|
-
|
16
|
-
core capabilities of Ruby's built-in classes and modules.
|
17
|
-
of extension methods are unique by virtue of their atomicity.
|
18
|
-
are
|
19
|
-
independently. This gives developers the potential for much finer control
|
20
|
-
|
15
|
+
Facets houses the largest single collection of methods available for
|
16
|
+
extending the core capabilities of Ruby's built-in classes and modules.
|
17
|
+
This collection of extension methods are unique by virtue of their atomicity.
|
18
|
+
The methods are stored in individual files so that each can be required
|
19
|
+
independently. This gives developers the potential for much finer control over
|
20
|
+
which extra methods to bring into their code.
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
libraries
|
22
|
+
In addition Facets provides a collection of extensions to Ruby standard library
|
23
|
+
plus a small collection of add-on classes and modules. Together these
|
24
|
+
libraries constitute an ever improving source of reusable components, suitable
|
25
|
+
to a wide variety of usecases.
|
25
26
|
|
26
27
|
|
27
|
-
==
|
28
|
+
== Resources
|
28
29
|
|
29
|
-
|
30
|
+
* Homepage: http://rubyworks.github.com/facets
|
31
|
+
* Report Bugs: http://github.com/rubyworks/facets/issues
|
32
|
+
* Mailing List: http://groups.google.com/group/facets-universal/topics
|
33
|
+
* Wiki Pages: http://wiki.github.com/rubyworks/facets
|
34
|
+
* Source Code: http://github.com/rubyworks/facets
|
30
35
|
|
31
36
|
|
32
37
|
== Documentation
|
33
38
|
|
34
39
|
Facets has special documentation needs due to it's extensive bredth.
|
35
|
-
The RDocs generated when installing via RubyGems
|
36
|
-
combines all of Facets in one set of docs. Hopefully we can remedy this in
|
37
|
-
the future. In the mean time
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
but this is no longer the case. I've seen past the stigma of not including
|
44
|
-
documentation along with the package itself (the extra 500K isn't even a floppy
|
45
|
-
disk folks!), so you will find them in the doc/ directory of whatever package
|
46
|
-
you have choosen to install. In fact, a good package installer should give you
|
47
|
-
the option to install those in the appropriate place in your system anyway
|
48
|
-
(eg. in /usr/share/doc/facets/).
|
40
|
+
The RDocs generated when installing via RubyGems are unweildly because it
|
41
|
+
combines all of Facets in one set of docs. (Hopefully we can remedy this in
|
42
|
+
the future). In the mean time better organized online documentation
|
43
|
+
is available at http://rubyworks.github.com/facets/learn.html.
|
44
|
+
|
45
|
+
* Core API: http://rubyworks/github.com/facets/doc/api/core/index.html
|
46
|
+
* More API: http://rubyworks/github.com/facets/doc/api/more/index.html
|
47
|
+
* Tour API: http://rubyworks/github.com/facets/doc/api/tour/index.html
|
49
48
|
|
50
49
|
|
51
50
|
== Installation
|
@@ -61,15 +60,7 @@ Then download and unpack the .tar.gz package and run:
|
|
61
60
|
$ cd facets-2.x.x
|
62
61
|
$ sudo setup.rb
|
63
62
|
|
64
|
-
|
65
|
-
== Compatibility w/ 1.x
|
66
|
-
|
67
|
-
Prior to 2.0, Facets was divided between CORE and MORE --core extensions
|
68
|
-
vs. classes and modules, respectively. With 2.0, the notion of "CORE" has taken
|
69
|
-
on a slightly different meaning. Instead CORE now consists of the libraries that
|
70
|
-
are thought "essential" and as such are loaded automatically when using
|
71
|
-
++require "facets"++. While still primarily made up of extension methods, some
|
72
|
-
modules and classes may now belong to core as well.
|
63
|
+
Facets 2.8+ requires Ruby 1.8.7 or higher.
|
73
64
|
|
74
65
|
|
75
66
|
== Mission
|
@@ -86,23 +77,115 @@ will be able to serve the community. There are a number of advantages here:
|
|
86
77
|
|
87
78
|
== Usage
|
88
79
|
|
89
|
-
|
90
|
-
|
80
|
+
=== CORE Library
|
81
|
+
|
82
|
+
At the heart of Ruby Facets is the CORE extensions library. CORE provides
|
83
|
+
a sizable collection of generally useful methods, along with a few supporting
|
84
|
+
classes, that extend the functionality of Ruby's core classes and modules.
|
91
85
|
|
92
|
-
|
93
|
-
|
86
|
+
By definition CORE contains anything that will load automatically when
|
87
|
+
issuing:
|
94
88
|
|
95
|
-
|
89
|
+
require 'facets'
|
90
|
+
|
91
|
+
If you plan to use more then a few of Facets core method it is recommended that
|
92
|
+
you require the main facility.
|
96
93
|
|
97
94
|
require 'facets'
|
98
95
|
|
96
|
+
This loads all the CORE functionality at once.
|
97
|
+
|
98
|
+
Of course you can use the CORE library piecemeal if you prefer. The general
|
99
|
+
require statement for a core extensions library is:
|
100
|
+
|
101
|
+
require 'facets/<class|module>/<method-lib>'
|
102
|
+
|
103
|
+
For example:
|
104
|
+
|
105
|
+
require 'facets/time/stamp'
|
106
|
+
|
107
|
+
Most "atoms" contain only one method, but a few exceptions occur when methods
|
108
|
+
are closely tied together.
|
109
|
+
|
110
|
+
You can load per-class or per-module groups of core methods by requiring the
|
111
|
+
class or module by name. For example"
|
112
|
+
|
113
|
+
require 'facets/time'
|
114
|
+
|
115
|
+
Will require all the core Time method extensions.
|
116
|
+
|
117
|
+
Note that some methods that were part of CORE in 1.8 and earlier are now part
|
118
|
+
of MORE libraries. A good example is 'random.rb'. There were separated because
|
119
|
+
they had more specialized use cases, where as CORE extensions are intended as
|
120
|
+
general purpose.
|
121
|
+
|
99
122
|
This is the recommended usage. However, you can also "cherry pick" core
|
100
123
|
methods. While there are exceptions the rule of thumb for loading a core
|
101
124
|
method is:
|
102
125
|
|
103
126
|
require 'facets/{class|module}/{method}'
|
104
127
|
|
105
|
-
|
128
|
+
==== Method File Names
|
129
|
+
|
130
|
+
Operator method redirect files are stored using English names. For instance for
|
131
|
+
Proc#* is 'proc/op_mul'.
|
132
|
+
|
133
|
+
For reference, here is the chart.
|
134
|
+
|
135
|
+
+@ => op_plus
|
136
|
+
-@ => op_minus
|
137
|
+
+ => op_add
|
138
|
+
- => op_sub
|
139
|
+
** => op_pow
|
140
|
+
* => op_mul
|
141
|
+
/ => op_div
|
142
|
+
% => op_mod
|
143
|
+
~ => op_tilde
|
144
|
+
<=> => op_cmp
|
145
|
+
<< => op_lshift
|
146
|
+
>> => op_rshift
|
147
|
+
< => op_lt
|
148
|
+
> => op_gt
|
149
|
+
=== => op_case
|
150
|
+
== => op_equal
|
151
|
+
=~ => op_apply
|
152
|
+
<= => op_lt_eq
|
153
|
+
>= => op_gt_eq
|
154
|
+
| => op_or
|
155
|
+
& => op_and
|
156
|
+
^ => op_xor
|
157
|
+
[]= => op_store
|
158
|
+
[] => op_fetch
|
159
|
+
|
160
|
+
Facets simply takes the '*' and translates it into a string acceptable to all
|
161
|
+
file systems. Also, if a method ends in '=', '?' or '!' it is simply removed.
|
162
|
+
|
163
|
+
|
164
|
+
=== MORE Library
|
165
|
+
|
166
|
+
On top of the extensive Core library, Facet provides a small collection
|
167
|
+
of additional modules and classes, as well as extended versions of
|
168
|
+
modules and classes in Ruby's Standard library.
|
169
|
+
|
170
|
+
Use the More library like you would any other 3rd party library.
|
171
|
+
The only difference between Facets More library and other libraries
|
172
|
+
is the lack of any enclosing @Facets::@ namespace. This is becuase
|
173
|
+
the libraries provided by Facets are considerd fairly low-level.
|
174
|
+
|
175
|
+
When using Facets' extended versions of Ruby's standard libraries,
|
176
|
+
the More libraries have to loaded manually, of course. However you
|
177
|
+
do not need to load Ruby's library first, as the Facets' library
|
178
|
+
will do that automatically.
|
179
|
+
|
180
|
+
For example, normally one load Ruby's OpenStruct class via:
|
181
|
+
|
182
|
+
require 'ostruct'
|
183
|
+
|
184
|
+
To load 'ostruct.rb' plus Facets extensions for it simply use:
|
185
|
+
|
186
|
+
require 'facets/ostruct'
|
187
|
+
|
188
|
+
instead.
|
106
189
|
|
107
190
|
Using the Facets/MORE library of modules, classes or microframeworks is
|
108
191
|
essentially the same. For example:
|
@@ -151,7 +234,7 @@ right away. Thanks.
|
|
151
234
|
The collection PER COLLECTION is licensed as follows:
|
152
235
|
|
153
236
|
Ruby Facets
|
154
|
-
Copyright (c) 2004
|
237
|
+
Copyright (c) 2004,2010 Thomas Sawyer
|
155
238
|
|
156
239
|
Distributed under the terms of the Ruby license.
|
157
240
|
|
@@ -164,9 +247,8 @@ with the Ruby license (namely the GPL) or the original author has given
|
|
164
247
|
permission for inclusion of their code under such license.
|
165
248
|
|
166
249
|
|
167
|
-
|
250
|
+
"ALL YOUR BASE ARE BELONG TO RUBY!"
|
168
251
|
|
169
|
-
|
252
|
+
Ruby Facets, Copyright (c)2005,2006,2007,2008,2009,2010 Thomas Sawyer
|
170
253
|
|
171
254
|
Do you Ruby? (http://ruby-lang.org)
|
172
|
-
|
data/Rakefile
CHANGED
@@ -2,46 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
|
5
|
-
#
|
6
|
-
# CORE TEST COVERAGE
|
7
|
-
# ----------------------------------------------------------------------------
|
8
|
-
|
9
|
-
desc "show core unit test coverage"
|
10
|
-
|
11
|
-
task 'coverage' do
|
12
|
-
core_scripts = []
|
13
|
-
cd 'lib/core/facets' do
|
14
|
-
core_scripts = Dir['**/*'].reject{ |s| File.directory?(s) }
|
15
|
-
end
|
16
|
-
|
17
|
-
core_tests = []
|
18
|
-
cd 'test/core' do
|
19
|
-
core_tests = Dir['**/*']
|
20
|
-
end
|
21
|
-
|
22
|
-
core_tests = core_tests.collect do |t|
|
23
|
-
dir, fname = *File.split(t)
|
24
|
-
File.join(dir, fname.sub(/^test_/,''))
|
25
|
-
end
|
26
|
-
|
27
|
-
diff = core_scripts - core_tests
|
28
|
-
|
29
|
-
# remove core collectives
|
30
|
-
diff = diff - %w{
|
31
|
-
array.rb binding.rb cattr.rb class.rb comparable.rb dir.rb
|
32
|
-
enumerable.rb exception.rb hash.rb file.rb filetest.rb float.rb
|
33
|
-
integer.rb kernel.rb matchdata.rb module.rb nilclass.rb
|
34
|
-
numeric.rb proc.rb range.rb regexp.rb string.rb symbol.rb
|
35
|
-
time.rb unboundmethod.rb
|
36
|
-
}
|
37
|
-
|
38
|
-
puts diff.sort.join("\n")
|
39
|
-
puts
|
40
|
-
puts "#{diff.size} files uncovered."
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
|
45
5
|
#
|
46
6
|
# GENERATE RDOCS
|
47
7
|
# ----------------------------------------------------------------------------
|
@@ -50,39 +10,49 @@ desc "generate rdocs"
|
|
50
10
|
|
51
11
|
task "rdoc" do
|
52
12
|
TEMPLATE = ENV['RDOC_TEMPLATE'] || 'html'
|
53
|
-
APIOUT = "doc/
|
13
|
+
APIOUT = "site/doc/api"
|
54
14
|
|
55
15
|
FileUtils.rm_r(APIOUT)
|
56
16
|
|
57
|
-
system "rdoc -a -S -t'Facets Core API' -T #{TEMPLATE} -m README --op '#{APIOUT}/core' README lib/facets/core"
|
58
|
-
system "rdoc -a -S -t'Facets More API' -T #{TEMPLATE} -m README --op '#{APIOUT}/more' README lib/facets/more"
|
17
|
+
system "rdoc -a -S -t'Facets Core API' -T #{TEMPLATE} -m README.rdoc --op '#{APIOUT}/core' README.rdoc lib/facets/core"
|
18
|
+
system "rdoc -a -S -t'Facets More API' -T #{TEMPLATE} -m README.rdoc --op '#{APIOUT}/more' README.rdoc lib/facets/more"
|
19
|
+
system "rdoc -a -S -t'Facets Tour API' -T #{TEMPLATE} -m README.rdoc --op '#{APIOUT}/tour' README.rdoc lib/facets/tour"
|
59
20
|
end
|
60
21
|
|
61
22
|
#
|
62
|
-
# RUN TESTS
|
23
|
+
# RUN TESTS (requires Lemon)
|
63
24
|
# ----------------------------------------------------------------------------
|
64
25
|
|
65
|
-
task
|
66
|
-
|
26
|
+
task "default" do
|
27
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/more:lib/tour test/core test/more test/tour"
|
67
28
|
end
|
68
29
|
|
69
|
-
task
|
70
|
-
|
30
|
+
task "test" do
|
31
|
+
if tests = ENV['TESTS']
|
32
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/more:lib/tour #{tests}"
|
33
|
+
else
|
34
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/more:lib/tour test/core test/more test/tour"
|
35
|
+
end
|
71
36
|
end
|
72
37
|
|
73
38
|
desc "run all unit tests"
|
74
|
-
task
|
75
|
-
|
39
|
+
task "test:all" do
|
40
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/more:lib/tour test/core test/more test/tour"
|
76
41
|
end
|
77
42
|
|
78
43
|
desc "run core unit tests"
|
79
|
-
task
|
80
|
-
|
44
|
+
task "test:core" do
|
45
|
+
sh "lemon#{lemon_flags} -Ilib/core test/core"
|
81
46
|
end
|
82
47
|
|
83
48
|
desc "run more unit tests"
|
84
|
-
task
|
85
|
-
|
49
|
+
task "test:more" do
|
50
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/more test/more"
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "run tour unit tests"
|
54
|
+
task "test:tour" do
|
55
|
+
sh "lemon #{lemon_flags} -Ilib/core:lib/tour test/tour"
|
86
56
|
end
|
87
57
|
|
88
58
|
desc "run all unit tests with ActiveSupport loaded"
|
@@ -94,60 +64,65 @@ task 'test:core:activesupport' => [:include_activesupport, 'test:core']
|
|
94
64
|
desc "run more unit tests with ActiveSupport loaded"
|
95
65
|
task 'test:more:activesupport' => [:include_activesupport, 'test:more']
|
96
66
|
|
67
|
+
desc "run tour unit tests with ActiveSupport loaded"
|
68
|
+
task 'test:more:activesupport' => [:include_activesupport, 'test:tour']
|
69
|
+
|
97
70
|
task 'include_activesupport' do
|
98
71
|
require 'activesupport'
|
99
72
|
end
|
100
73
|
|
101
|
-
def
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
# $LOAD_PATH.unshift(File.expand_path('lib/core'))
|
106
|
-
# $LOAD_PATH.unshift(File.expand_path('lib/more'))
|
107
|
-
paths.each do |path|
|
108
|
-
$LOAD_PATH.unshift(File.expand_path(path))
|
109
|
-
end
|
74
|
+
def lemon_flags
|
75
|
+
flags = []
|
76
|
+
if ENV['verbose']
|
77
|
+
flags << '-v'
|
110
78
|
end
|
111
|
-
|
112
|
-
puts "RUBY VERSION: #{RUBY_VERSION}"
|
113
|
-
puts "LOAD PATH:\n" + $LOAD_PATH.join("\n") if $DEBUG
|
79
|
+
flags.join(' ')
|
114
80
|
end
|
115
81
|
|
116
|
-
def
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
82
|
+
#def add_loadpath(*paths)
|
83
|
+
# live = ENV['live']
|
84
|
+
#
|
85
|
+
# unless live
|
86
|
+
# # $LOAD_PATH.unshift(File.expand_path('lib/core'))
|
87
|
+
# # $LOAD_PATH.unshift(File.expand_path('lib/more'))
|
88
|
+
# paths.each do |path|
|
89
|
+
# $LOAD_PATH.unshift(File.expand_path(path))
|
90
|
+
# end
|
91
|
+
# end
|
92
|
+
#
|
93
|
+
# puts "RUBY VERSION: #{RUBY_VERSION}"
|
94
|
+
# puts "LOAD PATH:\n" + $LOAD_PATH.join("\n") if $DEBUG
|
95
|
+
#end
|
121
96
|
|
122
|
-
def
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
load(file)
|
128
|
-
rescue LoadError
|
129
|
-
puts "Error loading: #{file}"
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
97
|
+
#def get_tests(find=nil)
|
98
|
+
# find = find && File.directory?(find) ? File.join(find, '**/test_*.rb') : find
|
99
|
+
# find = find || ENV['TESTS'] || 'test/**/test_*.rb'
|
100
|
+
# Dir.glob(find)
|
101
|
+
#end
|
133
102
|
|
134
|
-
def
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
103
|
+
#def run_tests(files)
|
104
|
+
# files.each do |file|
|
105
|
+
# next if File.directory?(file)
|
106
|
+
# begin
|
107
|
+
# puts "Loading: #{file}" if $DEBUG
|
108
|
+
# load(file)
|
109
|
+
# rescue LoadError
|
110
|
+
# puts "Error loading: #{file}"
|
111
|
+
# end
|
112
|
+
# end
|
113
|
+
#end
|
139
114
|
|
140
|
-
def
|
141
|
-
add_loadpath('lib/core')
|
142
|
-
files = get_tests
|
143
|
-
run_tests(files)
|
144
|
-
end
|
115
|
+
#def prepare_tests_all
|
116
|
+
# add_loadpath('lib/core','lib/more', 'lib/tour')
|
117
|
+
# files = get_tests
|
118
|
+
# run_tests(files)
|
119
|
+
#end
|
145
120
|
|
146
|
-
def
|
147
|
-
add_loadpath(
|
148
|
-
files = get_tests('test
|
149
|
-
run_tests(files)
|
150
|
-
end
|
121
|
+
#def prepare_tests(type)
|
122
|
+
# add_loadpath("lib/#{type}")
|
123
|
+
# files = get_tests('test/#{type}')
|
124
|
+
# run_tests(files)
|
125
|
+
#end
|
151
126
|
|
152
127
|
#def run_tests
|
153
128
|
# live = ENV['live']
|
@@ -181,6 +156,124 @@ end
|
|
181
156
|
# end
|
182
157
|
#end
|
183
158
|
|
159
|
+
|
160
|
+
#
|
161
|
+
# TEST COVERAGE
|
162
|
+
# ----------------------------------------------------------------------------
|
163
|
+
|
164
|
+
desc "show test coverage"
|
165
|
+
task "cov" do
|
166
|
+
sh "lemon -Ilib/core:lib/more:lib/tour -c test/core test/more test/tour"
|
167
|
+
end
|
168
|
+
|
169
|
+
desc "show core test coverage"
|
170
|
+
task "cov:core" do
|
171
|
+
sh "lemon -Ilib/core -c test/core"
|
172
|
+
end
|
173
|
+
|
174
|
+
desc "show more test coverage"
|
175
|
+
task "cov:more" do
|
176
|
+
sh "lemon -Ilib/more -c test/more"
|
177
|
+
end
|
178
|
+
|
179
|
+
desc "show tour test coverage"
|
180
|
+
task "cov:tour" do
|
181
|
+
sh "lemon -Ilib/tour -c test/tour"
|
182
|
+
end
|
183
|
+
|
184
|
+
desc "show core coverage by file name"
|
185
|
+
task 'cov:file:core' do
|
186
|
+
core_scripts = Dir['lib/core/facets/**/*.rb'].reject{ |s| File.directory?(s) }
|
187
|
+
core_tests = Dir['test/core/**/*.rb']
|
188
|
+
|
189
|
+
core_scripts = core_scripts.map do |f|
|
190
|
+
md = /lib\/core\/facets\/(.*?)$/.match(f)
|
191
|
+
md[1]
|
192
|
+
end
|
193
|
+
|
194
|
+
core_tests = core_tests.map do |f|
|
195
|
+
md = /test\/core\/(.*?)$/.match(f)
|
196
|
+
md[1].sub('/test_', '/')
|
197
|
+
end
|
198
|
+
|
199
|
+
diff = core_scripts - core_tests
|
200
|
+
|
201
|
+
# remove core collectives
|
202
|
+
diff = diff - %w{
|
203
|
+
array.rb binding.rb cattr.rb class.rb comparable.rb dir.rb
|
204
|
+
enumerable.rb exception.rb hash.rb file.rb filetest.rb float.rb
|
205
|
+
integer.rb kernel.rb matchdata.rb method.rb module.rb nilclass.rb
|
206
|
+
numeric.rb object.rb proc.rb process.rb range.rb regexp.rb string.rb
|
207
|
+
symbol.rb time.rb unboundmethod.rb
|
208
|
+
}
|
209
|
+
|
210
|
+
puts diff.sort.join("\n")
|
211
|
+
puts
|
212
|
+
puts "#{diff.size} files uncovered."
|
213
|
+
end
|
214
|
+
|
215
|
+
|
216
|
+
#
|
217
|
+
# QED
|
218
|
+
# ----------------------------------------------------------------------------
|
219
|
+
|
220
|
+
desc "run qed docs"
|
221
|
+
task 'qed' do
|
222
|
+
sh "qed #{qed_flags} -Ilib/core:lib/more:lib/tour qed/core qed/more qed/tour"
|
223
|
+
end
|
224
|
+
|
225
|
+
desc "run core qed docs"
|
226
|
+
task 'qed:core' do
|
227
|
+
sh "qed #{qed_flags} -Ilib/core qed/core"
|
228
|
+
end
|
229
|
+
|
230
|
+
desc "run more qed docs"
|
231
|
+
task 'qed:more' do
|
232
|
+
sh "qed #{qed_flags} -Ilib/core:lib/more qed/more"
|
233
|
+
end
|
234
|
+
|
235
|
+
desc "run tour qed docs"
|
236
|
+
task 'qed:tour' do
|
237
|
+
sh "qed #{qed_flags} -Ilib/core:lib/tour qed/tour"
|
238
|
+
end
|
239
|
+
|
240
|
+
desc "run core qed docs"
|
241
|
+
task 'qed:code' do
|
242
|
+
sh "qed #{qed_flags} -c -Ilib/core lib/core"
|
243
|
+
end
|
244
|
+
|
245
|
+
def qed_flags
|
246
|
+
flags = []
|
247
|
+
if ENV['verbose']
|
248
|
+
flags << '-v'
|
249
|
+
end
|
250
|
+
flags.join(' ')
|
251
|
+
end
|
252
|
+
|
253
|
+
|
254
|
+
#
|
255
|
+
# Extension Clashes
|
256
|
+
#-----------------------------------------------------------------------------
|
257
|
+
|
258
|
+
# TODO: need to fork each lookup via a seprate process to get a clean picture
|
259
|
+
|
260
|
+
desc "print method clashes with ActiveSupport"
|
261
|
+
task 'clash:as' do
|
262
|
+
#require 'lemon/model/snapshot'
|
263
|
+
#snap1 = Snapshot.new
|
264
|
+
#$LOAD_PATH.unshift('lib/core')
|
265
|
+
#$LOAD_PATH.unshift('lib/more')
|
266
|
+
#$LOAD_PATH.unshift('lib/tour')
|
267
|
+
#require 'facets' # 'facets/all'
|
268
|
+
#snap2 = Snapshot.new
|
269
|
+
end
|
270
|
+
|
271
|
+
desc "print method clashes with Ruby"
|
272
|
+
task 'clash:ruby' do
|
273
|
+
require 'lemon/model/snapshot'
|
274
|
+
end
|
275
|
+
|
276
|
+
|
184
277
|
#
|
185
278
|
# SETUP/INSTALL
|
186
279
|
# ----------------------------------------------------------------------------
|