facets 1.3.3 → 1.4.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/{doc/AUTHORS → AUTHORS} +12 -3
- data/README +35 -29
- data/WARNING +56 -0
- data/demo/annotation/demo_annotation.rb +22 -0
- data/demo/ansicolor/cdiff.rb +20 -0
- data/demo/ansicolor/example.rb +82 -0
- data/demo/io-reactor/chatserver.rb +347 -0
- data/demo/lisp/game.rb +47 -0
- data/lib/facet/all.rb +1 -0
- data/lib/facet/annattr.rb +1 -0
- data/lib/facet/class/to_proc.rb +1 -0
- data/lib/facet/cookie.rb +1 -0
- data/lib/facet/dir/self/descend.rb +1 -0
- data/lib/facet/enumerable/count.rb +1 -0
- data/lib/facet/hash/to_proc.rb +1 -0
- data/lib/facet/hashbuilder.rb +1 -0
- data/lib/facet/http.rb +1 -0
- data/lib/facet/httpaccess.rb +1 -0
- data/lib/facet/kernel/__get__.rb +1 -0
- data/lib/facet/kernel/__set__.rb +1 -0
- data/lib/facet/kernel/cache.rb +1 -0
- data/lib/facet/kernel/respond.rb +1 -0
- data/lib/facet/lazy.rb +1 -0
- data/lib/facet/module/class.rb +1 -0
- data/lib/facet/module/nodef.rb +1 -0
- data/lib/facet/opencascade.rb +1 -0
- data/lib/facet/pqueue.rb +1 -0
- data/lib/facet/taskable.rb +1 -0
- data/lib/facets.rb +98 -37
- data/lib/facets/core/all.rb +5 -0
- data/lib/facets/core/class/to_proc.rb +25 -0
- data/lib/facets/core/dir/self/ascend.rb +2 -1
- data/lib/facets/core/dir/self/descend.rb +11 -0
- data/lib/facets/core/enumerable/accumulate.rb +2 -2
- data/lib/facets/core/enumerable/count.rb +54 -0
- data/lib/facets/core/enumerable/cross.rb +3 -0
- data/lib/facets/core/enumerable/graph.rb +8 -4
- data/lib/facets/core/enumerable/self/cross.rb +11 -5
- data/lib/facets/core/hash/to_proc.rb +34 -0
- data/lib/facets/core/hash/traverse.rb +10 -5
- data/lib/facets/core/kernel/__class__.rb +1 -1
- data/lib/facets/core/kernel/__get__.rb +5 -0
- data/lib/facets/core/kernel/__set__.rb +2 -0
- data/lib/facets/core/kernel/assign_from.rb +1 -1
- data/lib/facets/core/kernel/assign_with.rb +11 -3
- data/lib/facets/core/kernel/bool.rb +1 -1
- data/lib/facets/core/kernel/cache.rb +31 -0
- data/lib/facets/core/kernel/demo.rb +4 -0
- data/lib/facets/core/kernel/get_by_id.rb +1 -0
- data/lib/facets/core/kernel/in.rb +1 -1
- data/lib/facets/core/kernel/instance_assign.rb +2 -3
- data/lib/facets/core/kernel/method.rb +25 -7
- data/lib/facets/core/kernel/methods.rb +1 -1
- data/lib/facets/core/kernel/new.rb +1 -1
- data/lib/facets/core/kernel/object_class.rb +1 -1
- data/lib/facets/core/kernel/object_hexid.rb +1 -1
- data/lib/facets/core/kernel/own.rb +1 -1
- data/lib/facets/core/kernel/require_all.rb +1 -0
- data/lib/facets/core/kernel/require_esc.rb +4 -2
- data/lib/facets/core/kernel/require_facet.rb +2 -0
- data/lib/facets/core/kernel/require_local.rb +1 -0
- data/lib/facets/core/kernel/respond.rb +14 -0
- data/lib/facets/core/kernel/send_as.rb +1 -1
- data/lib/facets/core/kernel/silence_warnings.rb +1 -1
- data/lib/facets/core/kernel/singleton.rb +3 -1
- data/lib/facets/core/matchdata/matchtree.rb +13 -3
- data/lib/facets/core/module/class.rb +3 -0
- data/lib/facets/core/module/integrate.rb +31 -4
- data/lib/facets/core/module/{undef.rb → nodef.rb} +8 -3
- data/lib/facets/core/module/revisal.rb +5 -5
- data/lib/facets/more/annattr.rb +147 -0
- data/lib/facets/more/annotation.rb +32 -136
- data/lib/facets/more/ansicode.rb +89 -100
- data/lib/facets/more/aspects.rb +28 -0
- data/lib/facets/more/association.rb +88 -47
- data/lib/facets/more/basicobject.rb +51 -33
- data/lib/facets/more/bbcode.rb +21 -34
- data/lib/facets/more/binaryreader.rb +62 -33
- data/lib/facets/more/bitmask.rb +24 -24
- data/lib/facets/more/blankslate.rb +4 -0
- data/lib/facets/more/builderobject.rb +16 -20
- data/lib/facets/more/bytes.rb +43 -24
- data/lib/facets/more/classinherit.rb +15 -31
- data/lib/facets/more/classmethods.rb +19 -29
- data/lib/facets/more/cloneable.rb +42 -30
- data/lib/facets/more/consoleapp.rb +42 -22
- data/lib/facets/more/cookie.rb +565 -0
- data/lib/facets/more/coroutine.rb +17 -21
- data/lib/facets/more/crypt.rb +33 -12
- data/lib/facets/more/dictionary.rb +27 -36
- data/lib/facets/more/downloader.rb +21 -17
- data/lib/facets/more/elementor.rb +22 -0
- data/lib/facets/more/enumerablepass.rb +19 -27
- data/lib/facets/more/expirable.rb +18 -28
- data/lib/facets/more/filelist.rb +33 -32
- data/lib/facets/more/floatstring.rb +31 -40
- data/lib/facets/more/functor.rb +15 -25
- data/lib/facets/more/hashbuilder.rb +76 -0
- data/lib/facets/more/heap.rb +29 -36
- data/lib/facets/more/htmlbuilder.rb +22 -24
- data/lib/facets/more/htmlhelper.rb +89 -0
- data/lib/facets/more/http.rb +570 -0
- data/lib/facets/more/httpaccess.rb +1608 -0
- data/lib/facets/more/inheritor.rb +29 -21
- data/lib/facets/more/interval.rb +21 -25
- data/lib/facets/more/ioredirect.rb +21 -25
- data/lib/facets/more/json.rb +27 -17
- data/lib/facets/more/lazy.rb +238 -0
- data/lib/facets/more/lisp.rb +24 -27
- data/lib/facets/more/lisp_format.rb +93 -85
- data/lib/facets/more/lrucache.rb +17 -27
- data/lib/facets/more/mathconstants.rb +22 -40
- data/lib/facets/more/methodprobe.rb +56 -61
- data/lib/facets/more/mock.rb +24 -17
- data/lib/facets/more/multipliers.rb +21 -17
- data/lib/facets/more/multiton.rb +18 -24
- data/lib/facets/more/nackclass.rb +17 -21
- data/lib/facets/more/nilcomparable.rb +28 -30
- data/lib/facets/more/nullclass.rb +16 -15
- data/lib/facets/more/one.rb +94 -58
- data/lib/facets/more/opencascade.rb +187 -0
- data/lib/facets/more/openobject.rb +89 -66
- data/lib/facets/more/orderedhash.rb +4 -0
- data/lib/facets/more/ormsupport.rb +18 -29
- data/lib/facets/more/overload.rb +39 -3
- data/lib/facets/more/paramix.rb +16 -24
- data/lib/facets/more/pathlist.rb +17 -23
- data/lib/facets/more/pool.rb +21 -29
- data/lib/facets/more/pqueue.rb +190 -0
- data/lib/facets/more/preinitialize.rb +17 -18
- data/lib/facets/more/progressbar.rb +19 -15
- data/lib/facets/more/promoteself.rb +17 -21
- data/lib/facets/more/quaternion.rb +379 -346
- data/lib/facets/more/recorder.rb +15 -20
- data/lib/facets/more/reference.rb +25 -22
- data/lib/facets/more/rexmlbuilder.rb +21 -6
- data/lib/facets/more/rtals.rb +27 -24
- data/lib/facets/more/semaphore.rb +15 -28
- data/lib/facets/more/snapshot.rb +45 -41
- data/lib/facets/more/stateparser.rb +25 -35
- data/lib/facets/more/statichash.rb +37 -29
- data/lib/facets/more/syncarray.rb +18 -26
- data/lib/facets/more/synchash.rb +17 -26
- data/lib/facets/more/system.rb +25 -17
- data/lib/facets/more/tagiterator.rb +15 -39
- data/lib/facets/more/taskable.rb +417 -0
- data/lib/facets/more/timer.rb +22 -26
- data/lib/facets/more/times.rb +23 -23
- data/lib/facets/more/tracepoint.rb +25 -24
- data/lib/facets/more/tuple.rb +25 -42
- data/lib/facets/more/typecast.rb +27 -29
- data/lib/facets/more/uninheritable.rb +15 -22
- data/lib/facets/more/units.rb +23 -29
- data/lib/facets/more/xmlbuilder.rb +20 -22
- data/lib/facets/more/xmlhelper.rb +18 -21
- data/lib/facets/more/xoxo.rb +23 -11
- data/lib/facets/more/yamlstruct.rb +25 -22
- data/test/lib/facets/core/array/test_at_rand.rb +1 -1
- data/test/lib/facets/core/array/test_delete_unless.rb +1 -1
- data/test/lib/facets/core/array/test_delete_values.rb +1 -1
- data/test/lib/facets/core/array/test_delete_values_at.rb +1 -1
- data/test/lib/facets/core/array/test_first.rb +1 -1
- data/test/lib/facets/core/array/test_head.rb +1 -1
- data/test/lib/facets/core/array/test_last_index.rb +1 -1
- data/test/lib/facets/core/array/test_merge.rb +1 -1
- data/test/lib/facets/core/array/test_mid.rb +1 -1
- data/test/lib/facets/core/array/test_middle.rb +1 -1
- data/test/lib/facets/core/array/test_op_fetch.rb +1 -1
- data/test/lib/facets/core/array/test_op_store.rb +1 -1
- data/test/lib/facets/core/array/test_pick.rb +1 -1
- data/test/lib/facets/core/array/test_pos.rb +1 -1
- data/test/lib/facets/core/array/test_pot.rb +1 -1
- data/test/lib/facets/core/array/test_pull.rb +1 -1
- data/test/lib/facets/core/array/test_rand_index.rb +1 -1
- data/test/lib/facets/core/array/test_rand_subset.rb +1 -1
- data/test/lib/facets/core/array/test_range.rb +1 -1
- data/test/lib/facets/core/array/test_rotate.rb +1 -1
- data/test/lib/facets/core/array/test_select.rb +1 -1
- data/test/lib/facets/core/array/test_shuffle.rb +1 -1
- data/test/lib/facets/core/array/test_thru.rb +1 -1
- data/test/lib/facets/core/array/test_to_b.rb +1 -1
- data/test/lib/facets/core/array/test_to_h.rb +1 -1
- data/test/lib/facets/core/array/test_to_hash.rb +1 -1
- data/test/lib/facets/core/binding/self/test_of_caller.rb +1 -1
- data/test/lib/facets/core/binding/test___LINE__.rb +1 -1
- data/test/lib/facets/core/binding/test_call_stack.rb +1 -1
- data/test/lib/facets/core/binding/test_called.rb +1 -1
- data/test/lib/facets/core/binding/test_caller.rb +1 -1
- data/test/lib/facets/core/binding/test_defined.rb +1 -1
- data/test/lib/facets/core/binding/test_eval.rb +1 -1
- data/test/lib/facets/core/binding/test_local_variables.rb +1 -1
- data/test/lib/facets/core/binding/test_method_name.rb +1 -1
- data/test/lib/facets/core/binding/test_op_fetch.rb +1 -1
- data/test/lib/facets/core/binding/test_op_store.rb +1 -1
- data/test/lib/facets/core/binding/test_self.rb +1 -1
- data/test/lib/facets/core/class/test_cattr.rb +1 -1
- data/test/lib/facets/core/class/test_descendents.rb +1 -1
- data/test/lib/facets/core/class/test_method_name.rb +1 -1
- data/test/lib/facets/core/class/test_remove_descendents.rb +1 -1
- data/test/lib/facets/core/class/test_unix_path.rb +1 -1
- data/test/lib/facets/core/comparable/test_at_least.rb +1 -1
- data/test/lib/facets/core/comparable/test_clip.rb +1 -1
- data/test/lib/facets/core/comparable/test_cmp.rb +1 -1
- data/test/lib/facets/core/continuation/self/test_create.rb +1 -1
- data/test/lib/facets/core/date/test_days_in_month.rb +1 -1
- data/test/lib/facets/core/date/test_days_of_month.rb +1 -1
- data/test/lib/facets/core/date/test_stamp.rb +1 -1
- data/test/lib/facets/core/date/test_to_date.rb +1 -1
- data/test/lib/facets/core/date/test_to_s.rb +1 -1
- data/test/lib/facets/core/date/test_to_time.rb +1 -1
- data/test/lib/facets/core/dir/self/test_ancestor.rb +1 -1
- data/test/lib/facets/core/dir/self/test_ascend.rb +1 -1
- data/test/lib/facets/core/enumerable/self/test_combinations.rb +1 -1
- data/test/lib/facets/core/enumerable/self/test_cross.rb +1 -1
- data/test/lib/facets/core/enumerable/test_collect_with_index.rb +1 -1
- data/test/lib/facets/core/enumerable/test_commonality.rb +1 -1
- data/test/lib/facets/core/enumerable/test_compact_collect.rb +1 -1
- data/test/lib/facets/core/enumerable/test_count.rb +38 -0
- data/test/lib/facets/core/enumerable/test_cross.rb +1 -1
- data/test/lib/facets/core/enumerable/test_each_combination.rb +1 -1
- data/test/lib/facets/core/enumerable/test_each_pair.rb +1 -1
- data/test/lib/facets/core/enumerable/test_each_slice.rb +1 -1
- data/test/lib/facets/core/enumerable/test_each_unique_pair.rb +1 -1
- data/test/lib/facets/core/enumerable/test_entropy.rb +1 -1
- data/test/lib/facets/core/enumerable/test_every.rb +1 -1
- data/test/lib/facets/core/enumerable/test_ew.rb +1 -1
- data/test/lib/facets/core/enumerable/test_filter_collect.rb +1 -1
- data/test/lib/facets/core/enumerable/test_find_collisions.rb +1 -1
- data/test/lib/facets/core/enumerable/test_frequency.rb +1 -1
- data/test/lib/facets/core/enumerable/test_graph.rb +1 -1
- data/test/lib/facets/core/enumerable/test_ideal_entropy.rb +1 -1
- data/test/lib/facets/core/enumerable/test_none.rb +1 -1
- data/test/lib/facets/core/enumerable/test_occur.rb +1 -1
- data/test/lib/facets/core/enumerable/test_one.rb +1 -1
- data/test/lib/facets/core/enumerable/test_op_pow.rb +1 -1
- data/test/lib/facets/core/enumerable/test_partition_by.rb +1 -1
- data/test/lib/facets/core/enumerable/test_permute.rb +1 -1
- data/test/lib/facets/core/enumerable/test_probability.rb +1 -1
- data/test/lib/facets/core/enumerable/test_to_h.rb +1 -1
- data/test/lib/facets/core/enumerable/test_uniq_by.rb +1 -1
- data/test/lib/facets/core/file/self/test_create.rb +1 -1
- data/test/lib/facets/core/file/self/test_open_as_string.rb +1 -1
- data/test/lib/facets/core/file/self/test_read_list.rb +1 -1
- data/test/lib/facets/core/file/self/test_sanitize.rb +1 -1
- data/test/lib/facets/core/file/self/test_split_all.rb +1 -1
- data/test/lib/facets/core/float/test_round_at.rb +1 -1
- data/test/lib/facets/core/float/test_round_to.rb +1 -1
- data/test/lib/facets/core/hash/self/test_zipnew.rb +1 -1
- data/test/lib/facets/core/hash/test_alias.rb +1 -1
- data/test/lib/facets/core/hash/test_assert_has_keys.rb +1 -1
- data/test/lib/facets/core/hash/test_assert_has_only_keys.rb +1 -1
- data/test/lib/facets/core/hash/test_at.rb +1 -1
- data/test/lib/facets/core/hash/test_collate.rb +1 -1
- data/test/lib/facets/core/hash/test_each.rb +1 -1
- data/test/lib/facets/core/hash/test_each_with_index.rb +1 -1
- data/test/lib/facets/core/hash/test_each_with_key.rb +1 -1
- data/test/lib/facets/core/hash/test_graph.rb +1 -1
- data/test/lib/facets/core/hash/test_has_keys.rb +1 -1
- data/test/lib/facets/core/hash/test_has_only_keys.rb +1 -1
- data/test/lib/facets/core/hash/test_inverse.rb +1 -1
- data/test/lib/facets/core/hash/test_keys_to_s.rb +1 -1
- data/test/lib/facets/core/hash/test_keys_to_sym.rb +1 -1
- data/test/lib/facets/core/hash/test_op_fetch.rb +1 -1
- data/test/lib/facets/core/hash/test_op_lshift.rb +1 -1
- data/test/lib/facets/core/hash/test_rand_key.rb +1 -1
- data/test/lib/facets/core/hash/test_rand_pair.rb +1 -1
- data/test/lib/facets/core/hash/test_rand_value.rb +1 -1
- data/test/lib/facets/core/hash/test_replace_each.rb +1 -1
- data/test/lib/facets/core/hash/test_shuffle.rb +1 -1
- data/test/lib/facets/core/hash/test_slice.rb +1 -1
- data/test/lib/facets/core/hash/test_swap.rb +1 -1
- data/test/lib/facets/core/hash/test_swapkey.rb +1 -1
- data/test/lib/facets/core/hash/test_to_h.rb +1 -1
- data/test/lib/facets/core/hash/test_to_ostruct.rb +1 -1
- data/test/lib/facets/core/hash/test_to_ostruct_recurse.rb +1 -1
- data/test/lib/facets/core/hash/test_traverse.rb +1 -1
- data/test/lib/facets/core/hash/test_update_each.rb +1 -1
- data/test/lib/facets/core/hash/test_update_keys.rb +1 -1
- data/test/lib/facets/core/hash/test_update_values.rb +1 -1
- data/test/lib/facets/core/hash/test_weave.rb +1 -1
- data/test/lib/facets/core/integer/test_factorial.rb +1 -1
- data/test/lib/facets/core/integer/test_multiple.rb +1 -1
- data/test/lib/facets/core/integer/test_ordinal.rb +1 -1
- data/test/lib/facets/core/integer/test_times_collect.rb +1 -1
- data/test/lib/facets/core/kernel/test___class__.rb +1 -1
- data/test/lib/facets/core/kernel/test_as.rb +1 -1
- data/test/lib/facets/core/kernel/test_assign_from.rb +1 -1
- data/test/lib/facets/core/kernel/test_assign_with.rb +1 -1
- data/test/lib/facets/core/kernel/test_bool.rb +1 -1
- data/test/lib/facets/core/kernel/test_bug.rb +1 -1
- data/test/lib/facets/core/kernel/test_call_stack.rb +1 -1
- data/test/lib/facets/core/kernel/test_called.rb +1 -1
- data/test/lib/facets/core/kernel/test_constant.rb +1 -1
- data/test/lib/facets/core/kernel/test_copy.rb +1 -1
- data/test/lib/facets/core/kernel/test_deep_copy.rb +1 -1
- data/test/lib/facets/core/kernel/test_demo.rb +1 -1
- data/test/lib/facets/core/kernel/test_fn.rb +1 -1
- data/test/lib/facets/core/kernel/test_generate_method_name.rb +1 -1
- data/test/lib/facets/core/kernel/test_get_by_id.rb +1 -1
- data/test/lib/facets/core/kernel/test_here.rb +1 -1
- data/test/lib/facets/core/kernel/test_in.rb +1 -1
- data/test/lib/facets/core/kernel/test_maybe.rb +1 -1
- data/test/lib/facets/core/kernel/test_metaclass.rb +1 -1
- data/test/lib/facets/core/kernel/test_method.rb +1 -1
- data/test/lib/facets/core/kernel/test_methodname.rb +1 -1
- data/test/lib/facets/core/kernel/test_methods.rb +1 -1
- data/test/lib/facets/core/kernel/test_new.rb +1 -1
- data/test/lib/facets/core/kernel/test_object_class.rb +1 -1
- data/test/lib/facets/core/kernel/test_object_hexid.rb +1 -1
- data/test/lib/facets/core/kernel/test_require_all.rb +1 -1
- data/test/lib/facets/core/kernel/test_require_esc.rb +1 -1
- data/test/lib/facets/core/kernel/test_require_facet.rb +1 -1
- data/test/lib/facets/core/kernel/test_resc.rb +1 -1
- data/test/lib/facets/core/kernel/test_returning.rb +1 -1
- data/test/lib/facets/core/kernel/test_send_as.rb +1 -1
- data/test/lib/facets/core/kernel/test_set_from.rb +1 -1
- data/test/lib/facets/core/kernel/test_set_with.rb +1 -1
- data/test/lib/facets/core/kernel/test_silently.rb +1 -1
- data/test/lib/facets/core/kernel/test_singleton.rb +1 -1
- data/test/lib/facets/core/kernel/test_superior.rb +1 -1
- data/test/lib/facets/core/kernel/test_supermethod.rb +1 -1
- data/test/lib/facets/core/kernel/test_this.rb +1 -1
- data/test/lib/facets/core/kernel/test_to_b.rb +1 -1
- data/test/lib/facets/core/kernel/test_to_bool.rb +1 -1
- data/test/lib/facets/core/kernel/test_uri.rb +1 -1
- data/test/lib/facets/core/kernel/test_val.rb +1 -1
- data/test/lib/facets/core/kernel/test_with_accessor.rb +1 -1
- data/test/lib/facets/core/matchdata/test_match.rb +1 -1
- data/test/lib/facets/core/matchdata/test_matchtree.rb +7 -2
- data/test/lib/facets/core/module/test_abstract.rb +1 -1
- data/test/lib/facets/core/module/test_alias_module_function.rb +1 -1
- data/test/lib/facets/core/module/test_ancestor.rb +1 -1
- data/test/lib/facets/core/module/test_basename.rb +1 -1
- data/test/lib/facets/core/module/test_by_name.rb +1 -1
- data/test/lib/facets/core/module/test_clone_using.rb +1 -1
- data/test/lib/facets/core/module/test_dirname.rb +1 -1
- data/test/lib/facets/core/module/test_equate_on.rb +1 -1
- data/test/lib/facets/core/module/test_generate_instance_method_name.rb +1 -1
- data/test/lib/facets/core/module/test_include_as.rb +1 -1
- data/test/lib/facets/core/module/test_inherit.rb +1 -1
- data/test/lib/facets/core/module/test_initializer.rb +1 -1
- data/test/lib/facets/core/module/test_instance_methods.rb +1 -1
- data/test/lib/facets/core/module/test_integrate.rb +1 -1
- data/test/lib/facets/core/module/test_memoize.rb +1 -1
- data/test/lib/facets/core/module/test_modspace.rb +1 -1
- data/test/lib/facets/core/module/test_namespace.rb +1 -1
- data/test/lib/facets/core/module/test_nesting.rb +1 -1
- data/test/lib/facets/core/module/{test_undef.rb → test_nodef.rb} +5 -5
- data/test/lib/facets/core/module/test_on_included.rb +1 -1
- data/test/lib/facets/core/module/test_redef.rb +1 -1
- data/test/lib/facets/core/module/test_redefine_method.rb +1 -1
- data/test/lib/facets/core/module/test_redirect.rb +1 -1
- data/test/lib/facets/core/module/test_redirect_method.rb +1 -1
- data/test/lib/facets/core/module/test_remove.rb +1 -1
- data/test/lib/facets/core/module/test_rename.rb +1 -1
- data/test/lib/facets/core/module/test_rename_method.rb +1 -1
- data/test/lib/facets/core/module/test_revisal.rb +1 -1
- data/test/lib/facets/core/module/test_shadow_method.rb +1 -1
- data/test/lib/facets/core/module/test_sort_on.rb +1 -1
- data/test/lib/facets/core/module/test_this.rb +1 -1
- data/test/lib/facets/core/module/test_wrap.rb +1 -1
- data/test/lib/facets/core/module/test_wrap_method.rb +1 -1
- data/test/lib/facets/core/nilclass/test_blank.rb +1 -1
- data/test/lib/facets/core/nilclass/test_empty.rb +1 -1
- data/test/lib/facets/core/nilclass/test_include.rb +1 -1
- data/test/lib/facets/core/nilclass/test_op_fetch.rb +1 -1
- data/test/lib/facets/core/nilclass/test_size.rb +1 -1
- data/test/lib/facets/core/nilclass/test_to_h.rb +1 -1
- data/test/lib/facets/core/numeric/test_approx.rb +1 -1
- data/test/lib/facets/core/numeric/test_ceil_multiple.rb +1 -1
- data/test/lib/facets/core/numeric/test_succ.rb +1 -1
- data/test/lib/facets/core/numeric/test_to_b.rb +1 -1
- data/test/lib/facets/core/ostruct/test___merge__.rb +1 -1
- data/test/lib/facets/core/ostruct/test___update__.rb +1 -1
- data/test/lib/facets/core/ostruct/test_op_fetch.rb +1 -1
- data/test/lib/facets/core/ostruct/test_op_store.rb +1 -1
- data/test/lib/facets/core/proc/test_compose.rb +1 -1
- data/test/lib/facets/core/proc/test_to_method.rb +1 -1
- data/test/lib/facets/core/range/test_to_r.rb +1 -1
- data/test/lib/facets/core/range/test_to_range.rb +1 -1
- data/test/lib/facets/core/range/test_umbrella.rb +1 -1
- data/test/lib/facets/core/range/test_within.rb +1 -1
- data/test/lib/facets/core/regexp/test_arity.rb +1 -1
- data/test/lib/facets/core/regexp/test_to_re.rb +1 -1
- data/test/lib/facets/core/regexp/test_to_regexp.rb +1 -1
- data/test/lib/facets/core/string/self/test_interpolate.rb +1 -1
- data/test/lib/facets/core/string/self/test_patterns.rb +1 -1
- data/test/lib/facets/core/string/self/test_rand_letter.rb +1 -1
- data/test/lib/facets/core/string/test_align_center.rb +1 -1
- data/test/lib/facets/core/string/test_at_rand.rb +1 -1
- data/test/lib/facets/core/string/test_basename.rb +1 -1
- data/test/lib/facets/core/string/test_blank.rb +1 -1
- data/test/lib/facets/core/string/test_bracket.rb +1 -1
- data/test/lib/facets/core/string/test_camelcase.rb +1 -1
- data/test/lib/facets/core/string/test_camelize.rb +1 -1
- data/test/lib/facets/core/string/test_capitalized.rb +1 -1
- data/test/lib/facets/core/string/test_chars.rb +1 -1
- data/test/lib/facets/core/string/test_cmp.rb +1 -1
- data/test/lib/facets/core/string/test_demodulize.rb +1 -1
- data/test/lib/facets/core/string/test_downcase.rb +1 -1
- data/test/lib/facets/core/string/test_dresner.rb +1 -1
- data/test/lib/facets/core/string/test_each_char.rb +1 -1
- data/test/lib/facets/core/string/test_each_word.rb +1 -1
- data/test/lib/facets/core/string/test_first.rb +1 -1
- data/test/lib/facets/core/string/test_fold.rb +1 -1
- data/test/lib/facets/core/string/test_frequency.rb +1 -1
- data/test/lib/facets/core/string/test_humanize.rb +1 -1
- data/test/lib/facets/core/string/test_indent.rb +1 -1
- data/test/lib/facets/core/string/test_index_all.rb +1 -1
- data/test/lib/facets/core/string/test_last.rb +1 -1
- data/test/lib/facets/core/string/test_line_wrap.rb +1 -1
- data/test/lib/facets/core/string/test_lines.rb +1 -1
- data/test/lib/facets/core/string/test_lowercase.rb +1 -1
- data/test/lib/facets/core/string/test_margin.rb +1 -1
- data/test/lib/facets/core/string/test_methodize.rb +1 -1
- data/test/lib/facets/core/string/test_modulize.rb +1 -1
- data/test/lib/facets/core/string/test_mscan.rb +1 -1
- data/test/lib/facets/core/string/test_natcmp.rb +1 -1
- data/test/lib/facets/core/string/test_nchar.rb +1 -1
- data/test/lib/facets/core/string/test_pathize.rb +1 -1
- data/test/lib/facets/core/string/test_pop.rb +1 -1
- data/test/lib/facets/core/string/test_pot.rb +1 -1
- data/test/lib/facets/core/string/test_probability.rb +1 -1
- data/test/lib/facets/core/string/test_push.rb +1 -1
- data/test/lib/facets/core/string/test_quote.rb +1 -1
- data/test/lib/facets/core/string/test_rand_byte.rb +1 -1
- data/test/lib/facets/core/string/test_rand_index.rb +1 -1
- data/test/lib/facets/core/string/test_range.rb +1 -1
- data/test/lib/facets/core/string/test_range_all.rb +1 -1
- data/test/lib/facets/core/string/test_range_of_line.rb +1 -1
- data/test/lib/facets/core/string/test_regesc.rb +1 -1
- data/test/lib/facets/core/string/test_shatter.rb +1 -1
- data/test/lib/facets/core/string/test_shift.rb +1 -1
- data/test/lib/facets/core/string/test_shuffle.rb +1 -1
- data/test/lib/facets/core/string/test_similarity.rb +1 -1
- data/test/lib/facets/core/string/test_singular.rb +1 -1
- data/test/lib/facets/core/string/test_soundex.rb +1 -1
- data/test/lib/facets/core/string/test_succ.rb +1 -1
- data/test/lib/facets/core/string/test_to_a.rb +1 -1
- data/test/lib/facets/core/string/test_to_b.rb +1 -1
- data/test/lib/facets/core/string/test_to_const.rb +1 -1
- data/test/lib/facets/core/string/test_to_date.rb +1 -1
- data/test/lib/facets/core/string/test_to_proc.rb +1 -1
- data/test/lib/facets/core/string/test_to_re.rb +1 -1
- data/test/lib/facets/core/string/test_to_time.rb +1 -1
- data/test/lib/facets/core/string/test_unix_crypt.rb +1 -1
- data/test/lib/facets/core/string/test_unpack.rb +1 -1
- data/test/lib/facets/core/string/test_unshift.rb +1 -1
- data/test/lib/facets/core/string/test_upcase.rb +1 -1
- data/test/lib/facets/core/string/test_whitespace.rb +1 -1
- data/test/lib/facets/core/string/test_word_filter.rb +1 -1
- data/test/lib/facets/core/string/test_word_wrap.rb +1 -1
- data/test/lib/facets/core/string/test_words.rb +1 -1
- data/test/lib/facets/core/symbol/test_camelcase.rb +1 -1
- data/test/lib/facets/core/symbol/test_camelize.rb +1 -1
- data/test/lib/facets/core/symbol/test_capitalize.rb +1 -1
- data/test/lib/facets/core/symbol/test_capitalized.rb +1 -1
- data/test/lib/facets/core/symbol/test_downcase.rb +1 -1
- data/test/lib/facets/core/symbol/test_not.rb +1 -1
- data/test/lib/facets/core/symbol/test_pad.rb +1 -1
- data/test/lib/facets/core/symbol/test_succ.rb +1 -1
- data/test/lib/facets/core/symbol/test_to_const.rb +1 -1
- data/test/lib/facets/core/symbol/test_to_proc.rb +1 -1
- data/test/lib/facets/core/symbol/test_to_str.rb +1 -1
- data/test/lib/facets/core/symbol/test_underscore.rb +1 -1
- data/test/lib/facets/core/symbol/test_upcase.rb +1 -1
- data/test/lib/facets/core/time/test_change.rb +1 -1
- data/test/lib/facets/core/time/test_elapse.rb +1 -1
- data/test/lib/facets/core/time/test_stamp.rb +1 -1
- data/test/lib/facets/core/time/test_to_date.rb +1 -1
- data/test/lib/facets/core/time/test_to_s.rb +1 -1
- data/test/lib/facets/core/time/test_to_time.rb +1 -1
- data/test/lib/facets/more/test_annattr.rb +39 -0
- data/test/lib/facets/more/test_annotatedattr.rb +39 -0
- data/test/lib/facets/more/test_annotation.rb +1 -22
- data/test/lib/facets/more/test_ansicode.rb +1 -1
- data/test/lib/facets/more/test_association.rb +6 -1
- data/test/lib/facets/more/test_basicobject.rb +1 -1
- data/test/lib/facets/more/test_bbcode.rb +1 -1
- data/test/lib/facets/more/test_binaryreader.rb +64 -0
- data/test/lib/facets/more/test_bitmask.rb +1 -1
- data/test/lib/facets/more/test_bytes.rb +1 -1
- data/test/lib/facets/more/test_classinherit.rb +1 -1
- data/test/lib/facets/more/test_classmethods.rb +1 -1
- data/test/lib/facets/more/test_coroutine.rb +1 -1
- data/test/lib/facets/more/test_crypt.rb +1 -1
- data/test/lib/facets/more/test_dictionary.rb +1 -1
- data/test/lib/facets/more/test_elementor.rb +1 -1
- data/test/lib/facets/more/test_enumerablepass.rb +1 -1
- data/test/lib/facets/more/test_floatstring.rb +1 -1
- data/test/lib/facets/more/test_functor.rb +1 -1
- data/test/lib/facets/more/test_htmlbuilder.rb +1 -1
- data/test/lib/facets/more/test_inheritor.rb +1 -1
- data/test/lib/facets/more/test_interval.rb +1 -1
- data/test/lib/facets/more/test_json.rb +1 -1
- data/test/lib/facets/more/test_lisp.rb +1 -1
- data/test/lib/facets/more/test_lisp_format.rb +1 -1
- data/test/lib/facets/more/test_lrucache.rb +1 -1
- data/test/lib/facets/more/test_mathconstants.rb +1 -1
- data/test/lib/facets/more/test_methodprobe.rb +1 -1
- data/test/lib/facets/more/test_multipliers.rb +1 -1
- data/test/lib/facets/more/test_multiton.rb +1 -1
- data/test/lib/facets/more/test_nackclass.rb +1 -1
- data/test/lib/facets/more/test_nilcomparable.rb +1 -1
- data/test/lib/facets/more/test_opencascade.rb +66 -0
- data/test/lib/facets/more/test_openobject.rb +14 -2
- data/test/lib/facets/more/test_overload.rb +1 -1
- data/test/lib/facets/more/test_paramix.rb +1 -1
- data/test/lib/facets/more/test_pqueue.rb +39 -0
- data/test/lib/facets/more/test_preinitialize.rb +1 -1
- data/test/lib/facets/more/test_promoteself.rb +1 -1
- data/test/lib/facets/more/test_recorder.rb +1 -1
- data/test/lib/facets/more/test_snapshot.rb +1 -1
- data/test/lib/facets/more/test_statichash.rb +11 -11
- data/test/lib/facets/more/test_syncarray.rb +1 -1
- data/test/lib/facets/more/test_synchash.rb +1 -1
- data/test/lib/facets/more/test_tagiterator.rb +1 -1
- data/test/lib/facets/more/test_taskable.rb +151 -0
- data/test/lib/facets/more/test_timer.rb +1 -1
- data/test/lib/facets/more/test_times.rb +1 -1
- data/test/lib/facets/more/test_tuple.rb +1 -1
- data/test/lib/facets/more/test_typecast.rb +1 -1
- data/test/lib/facets/more/test_uninheritable.rb +1 -1
- data/test/lib/facets/more/test_units.rb +1 -1
- data/test/lib/facets/more/test_xmlbuilder.rb +1 -1
- data/test/lib/facets/more/test_xmlhelper.rb +1 -1
- data/test/lib/facets/more/test_xoxo.rb +1 -1
- data/test/lib/facets/more/test_yamlstruct.rb +1 -1
- metadata +1243 -1247
- data/ProjectInfo +0 -89
- data/Rakefile +0 -181
- data/doc/CHANGELOG +0 -284
- data/doc/TODO +0 -73
- data/doc/noauto +0 -63
- data/lib/facet/array.rb +0 -1
- data/lib/facet/class.rb +0 -1
- data/lib/facet/comparable.rb +0 -1
- data/lib/facet/continuation.rb +0 -1
- data/lib/facet/date.rb +0 -1
- data/lib/facet/dir.rb +0 -1
- data/lib/facet/enumerable.rb +0 -1
- data/lib/facet/file.rb +0 -1
- data/lib/facet/fileutils.rb +0 -1
- data/lib/facet/float.rb +0 -1
- data/lib/facet/gem.rb +0 -1
- data/lib/facet/hash.rb +0 -1
- data/lib/facet/integer.rb +0 -1
- data/lib/facet/kernel.rb +0 -1
- data/lib/facet/logger.rb +0 -1
- data/lib/facet/matchdata.rb +0 -1
- data/lib/facet/module.rb +0 -1
- data/lib/facet/module/undef.rb +0 -1
- data/lib/facet/nilclass.rb +0 -1
- data/lib/facet/numeric.rb +0 -1
- data/lib/facet/pathname.rb +0 -1
- data/lib/facet/proc.rb +0 -1
- data/lib/facet/range.rb +0 -1
- data/lib/facet/regexp.rb +0 -1
- data/lib/facet/string.rb +0 -1
- data/lib/facet/symbol.rb +0 -1
- data/lib/facet/time.rb +0 -1
- data/lib/facet/unboundmethod.rb +0 -1
- data/lib/facets/core/array.rb +0 -35
- data/lib/facets/core/class.rb +0 -11
- data/lib/facets/core/comparable.rb +0 -5
- data/lib/facets/core/continuation.rb +0 -1
- data/lib/facets/core/date.rb +0 -6
- data/lib/facets/core/dir.rb +0 -4
- data/lib/facets/core/enumerable.rb +0 -42
- data/lib/facets/core/file.rb +0 -8
- data/lib/facets/core/fileutils.rb +0 -8
- data/lib/facets/core/float.rb +0 -4
- data/lib/facets/core/gem.rb +0 -4
- data/lib/facets/core/hash.rb +0 -40
- data/lib/facets/core/integer.rb +0 -9
- data/lib/facets/core/kernel.rb +0 -69
- data/lib/facets/core/logger.rb +0 -2
- data/lib/facets/core/matchdata.rb +0 -3
- data/lib/facets/core/module.rb +0 -43
- data/lib/facets/core/nilclass.rb +0 -9
- data/lib/facets/core/numeric.rb +0 -6
- data/lib/facets/core/pathname.rb +0 -2
- data/lib/facets/core/proc.rb +0 -3
- data/lib/facets/core/range.rb +0 -4
- data/lib/facets/core/regexp.rb +0 -3
- data/lib/facets/core/string.rb +0 -91
- data/lib/facets/core/symbol.rb +0 -13
- data/lib/facets/core/time.rb +0 -8
- data/lib/facets/core/unboundmethod.rb +0 -1
|
@@ -1,43 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
# FloatString
|
|
1
|
+
# = floatstring.rb
|
|
3
2
|
#
|
|
4
|
-
# Copyright (c) 2004
|
|
3
|
+
# == Copyright (c) 2004 Thomas Sawyer
|
|
5
4
|
#
|
|
6
|
-
#
|
|
5
|
+
# Ruby License
|
|
7
6
|
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
10
9
|
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
14
13
|
#
|
|
14
|
+
# == Authors and Contributors
|
|
15
15
|
#
|
|
16
|
-
#
|
|
17
|
-
# Revision History ::
|
|
18
|
-
# --------------------------------------------------------------------------
|
|
19
|
-
# 04.11.01 Trans * Complete first usable verion (still needs TLC)
|
|
20
|
-
# ==========================================================================
|
|
21
|
-
#++
|
|
22
|
-
|
|
23
|
-
#:title: FloatString
|
|
24
|
-
#
|
|
25
|
-
# FloatString allows unlimited string insertion between string segments.
|
|
26
|
-
#
|
|
27
|
-
# == Usage
|
|
28
|
-
#
|
|
29
|
-
# TODO: Comming soon.....
|
|
30
|
-
#
|
|
31
|
-
# == Notes
|
|
16
|
+
# * Thomas Sawyer
|
|
32
17
|
#
|
|
33
|
-
#
|
|
34
|
-
# has a much greater potential for change. If you decide it is useful
|
|
35
|
-
# to you, please contribute to its improvement. Thanks.
|
|
18
|
+
# == Developer Notes
|
|
36
19
|
#
|
|
37
|
-
#
|
|
20
|
+
# TODO This library still needs work to be truly useful.
|
|
21
|
+
|
|
22
|
+
# Author:: Thomas Sawyer
|
|
23
|
+
# Copyright:: Copyright (c) 2004 Thomas Sawyer
|
|
24
|
+
# License:: Ruby License
|
|
25
|
+
|
|
26
|
+
# = FloatString
|
|
38
27
|
#
|
|
39
|
-
#
|
|
28
|
+
# FloatString is essentially a String but it allows unlimited
|
|
29
|
+
# string insertion between string segments.
|
|
40
30
|
#
|
|
31
|
+
# NOTE This library is still expiremental.
|
|
41
32
|
|
|
42
33
|
class FloatString
|
|
43
34
|
|
|
@@ -48,7 +39,7 @@ class FloatString
|
|
|
48
39
|
while i < @str.length
|
|
49
40
|
@float[i.to_f] = @str[i,1]
|
|
50
41
|
i += 1
|
|
51
|
-
end
|
|
42
|
+
end
|
|
52
43
|
end
|
|
53
44
|
|
|
54
45
|
def undo
|
|
@@ -70,7 +61,7 @@ class FloatString
|
|
|
70
61
|
|
|
71
62
|
# these should probably check the decimal and start there
|
|
72
63
|
# rather then startint at 0.5
|
|
73
|
-
|
|
64
|
+
|
|
74
65
|
def inner_insert(s, i)
|
|
75
66
|
n = 0.5; i = i.to_f - n
|
|
76
67
|
while @float.has_key?(i)
|
|
@@ -79,7 +70,7 @@ class FloatString
|
|
|
79
70
|
end
|
|
80
71
|
@float[i] = s
|
|
81
72
|
end
|
|
82
|
-
|
|
73
|
+
|
|
83
74
|
def outer_insert(s, i)
|
|
84
75
|
n = 0.5; i = i.to_f - 0.5
|
|
85
76
|
while @float.has_key?(i)
|
|
@@ -88,7 +79,7 @@ class FloatString
|
|
|
88
79
|
end
|
|
89
80
|
@float[i] = s
|
|
90
81
|
end
|
|
91
|
-
|
|
82
|
+
|
|
92
83
|
def inner_append(s, i)
|
|
93
84
|
n = 0.5; i = i.to_f + 0.5
|
|
94
85
|
while @float.has_key?(i)
|
|
@@ -97,7 +88,7 @@ class FloatString
|
|
|
97
88
|
end
|
|
98
89
|
@float[i] = s
|
|
99
90
|
end
|
|
100
|
-
|
|
91
|
+
|
|
101
92
|
def outer_append(s, i)
|
|
102
93
|
n = 0.5; i = i.to_f + 0.5
|
|
103
94
|
while @float.has_key?(i)
|
|
@@ -108,7 +99,7 @@ class FloatString
|
|
|
108
99
|
end
|
|
109
100
|
|
|
110
101
|
# an inner and outer wrap method would be nice
|
|
111
|
-
|
|
102
|
+
|
|
112
103
|
def [](arg)
|
|
113
104
|
if arg.kind_of?(Range)
|
|
114
105
|
#r = Range.new(arg.first.to_f, arg.last.to_f, arg.exclude_end?)
|
|
@@ -121,11 +112,11 @@ class FloatString
|
|
|
121
112
|
@float[arg.to_f]
|
|
122
113
|
end
|
|
123
114
|
end
|
|
124
|
-
|
|
115
|
+
|
|
125
116
|
def []=(arg,v)
|
|
126
117
|
@float[arg.to_f] = v
|
|
127
118
|
end
|
|
128
|
-
|
|
119
|
+
|
|
129
120
|
def fill(val, rng=0..-1)
|
|
130
121
|
a = @float.to_a.sort_by{ |k,v| k }
|
|
131
122
|
s = a.index( a.find{ |e| e[0] == rng.first.to_f } )
|
|
@@ -134,7 +125,7 @@ class FloatString
|
|
|
134
125
|
x.each{ |k,v| @float[k] = val.to_s }
|
|
135
126
|
self.to_s
|
|
136
127
|
end
|
|
137
|
-
|
|
128
|
+
|
|
138
129
|
def empty(rng)
|
|
139
130
|
fill('', rng)
|
|
140
131
|
end
|
|
@@ -142,7 +133,7 @@ class FloatString
|
|
|
142
133
|
def blank(rng)
|
|
143
134
|
fill(' ', rng)
|
|
144
135
|
end
|
|
145
|
-
|
|
136
|
+
|
|
146
137
|
end
|
|
147
138
|
|
|
148
139
|
|
data/lib/facets/more/functor.rb
CHANGED
|
@@ -1,33 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
# Functor
|
|
3
|
-
# Copyright (c) 2004,2005 Thomas Sawyer
|
|
1
|
+
# = functor.rb
|
|
4
2
|
#
|
|
5
|
-
#
|
|
3
|
+
# == Copyright (c) 2004 Thomas Sawyer
|
|
6
4
|
#
|
|
7
|
-
#
|
|
8
|
-
# software under the same terms as Ruby.
|
|
5
|
+
# Ruby License
|
|
9
6
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
# FOR A PARTICULAR PURPOSE.
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
13
9
|
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
# 2006-04-15
|
|
18
|
-
# Code cleanup, changed instance_objects to instance_targets.
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
19
13
|
#
|
|
20
|
-
#
|
|
21
|
-
# Made a subclass of BasicObject.
|
|
14
|
+
# == Author(s)
|
|
22
15
|
#
|
|
23
|
-
#
|
|
24
|
-
|
|
25
|
-
#
|
|
26
|
-
|
|
16
|
+
# * Thomas Sawyer
|
|
17
|
+
|
|
18
|
+
# Author:: Thomas Sawyer
|
|
19
|
+
# Copyright:: Copyright (c) 2006 Thomas Sawyer
|
|
20
|
+
# License:: Ruby License
|
|
27
21
|
|
|
28
22
|
require 'facets/more/basicobject'
|
|
29
23
|
|
|
30
|
-
|
|
24
|
+
# = Functor
|
|
31
25
|
#
|
|
32
26
|
# By definition a Functor is simply a first class method, but these are common
|
|
33
27
|
# in the form of Method and Proc. So here a Functor is a bit more specialized
|
|
@@ -44,10 +38,6 @@ require 'facets/more/basicobject'
|
|
|
44
38
|
# f * 2 #=> 2
|
|
45
39
|
# f * 3 #=> 9
|
|
46
40
|
#
|
|
47
|
-
# == Author(s)
|
|
48
|
-
#
|
|
49
|
-
# * Thomas Sawyer
|
|
50
|
-
#
|
|
51
41
|
|
|
52
42
|
class Functor < BasicObject
|
|
53
43
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# = hashbuilder.rb
|
|
2
|
+
#
|
|
3
|
+
# == Copyright (c) 2006 Thomas Sawyer
|
|
4
|
+
#
|
|
5
|
+
# Ruby License
|
|
6
|
+
#
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
13
|
+
#
|
|
14
|
+
# == Author(s)
|
|
15
|
+
#
|
|
16
|
+
# * Thomas Sawyer
|
|
17
|
+
|
|
18
|
+
# Author:: Thomas Sawyer
|
|
19
|
+
# Copyright:: Copyright (c) 2006 Thomas Sawyer
|
|
20
|
+
# License:: Ruby License
|
|
21
|
+
|
|
22
|
+
require 'facets/more/basicobject.rb'
|
|
23
|
+
|
|
24
|
+
# = Hash Builder
|
|
25
|
+
#
|
|
26
|
+
# Build a hash programmatically.
|
|
27
|
+
#
|
|
28
|
+
# Build a hash from missing method calls.
|
|
29
|
+
|
|
30
|
+
class HashBuilder < BasicObject
|
|
31
|
+
|
|
32
|
+
def self.build( blockstr=nil, &block )
|
|
33
|
+
self.new.build( blockstr, &block ).to_h
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def initialize( blockstr=nil, &block )
|
|
37
|
+
@hash = {}
|
|
38
|
+
@flag = {}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def build( blockstr=nil, &block )
|
|
42
|
+
raise "both string and block given" if blockstr and block_given?
|
|
43
|
+
if blockstr
|
|
44
|
+
instance_eval blockstr
|
|
45
|
+
else
|
|
46
|
+
instance_eval &block
|
|
47
|
+
end
|
|
48
|
+
self # or to_h ?
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def to_h ; @hash ; end
|
|
52
|
+
|
|
53
|
+
def method_missing( sym, *args, &block )
|
|
54
|
+
sym = sym.to_s.downcase.chomp('=')
|
|
55
|
+
|
|
56
|
+
if @hash.key?(sym)
|
|
57
|
+
unless @flag[sym]
|
|
58
|
+
@hash[sym] = [ @hash[sym] ]
|
|
59
|
+
@flag[sym] = true
|
|
60
|
+
end
|
|
61
|
+
if block_given?
|
|
62
|
+
@hash[sym] << self.__class__.new( &block ).to_h
|
|
63
|
+
else
|
|
64
|
+
@hash[sym] << args[0]
|
|
65
|
+
end
|
|
66
|
+
else
|
|
67
|
+
if block_given?
|
|
68
|
+
@hash[sym] = self.__class__.new( &block ).to_h
|
|
69
|
+
else
|
|
70
|
+
@hash[sym] = args[0]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
data/lib/facets/more/heap.rb
CHANGED
|
@@ -1,38 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
1
|
+
# = heap.rb
|
|
2
|
+
#
|
|
3
|
+
# == Copyright (c) 2002 Renald Buter
|
|
4
|
+
#
|
|
5
|
+
# Ruby License
|
|
6
|
+
#
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
13
|
+
#
|
|
14
|
+
# == Special Thanks
|
|
3
15
|
#
|
|
4
|
-
# Copyright (c) 2002,2004 Renald Buter (Ruby Version)
|
|
5
16
|
# [See Cormen1990 for original]
|
|
6
17
|
#
|
|
7
|
-
#
|
|
18
|
+
# Thanks to Nenad Ocelic for many suggestions.
|
|
19
|
+
#
|
|
20
|
+
# == Author(s)
|
|
8
21
|
#
|
|
9
|
-
#
|
|
10
|
-
# software under the same terms as Ruby.
|
|
22
|
+
# * Ronald Butler
|
|
11
23
|
#
|
|
12
|
-
#
|
|
13
|
-
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
14
|
-
# FOR A PARTICULAR PURPOSE.
|
|
24
|
+
# == Reference
|
|
15
25
|
#
|
|
26
|
+
# Cormen1990: Chapter 7 (Heapsort) of 'An introduction to algorithms', by
|
|
27
|
+
# Cormen, T.H; Leiserson, C.E.; Rivest, R.L; MIT Press, Cambridge, 1990
|
|
28
|
+
# ISBN 0-262-53091-0
|
|
16
29
|
#
|
|
17
|
-
#
|
|
18
|
-
# Revision History
|
|
19
|
-
# --------------------------------------------------------------------------
|
|
20
|
-
# 2005.04.28 trans
|
|
21
|
-
# Ported to Calibre and Documentatation.
|
|
22
|
-
# ==========================================================================
|
|
30
|
+
# == Developer Notes
|
|
23
31
|
#
|
|
24
|
-
#
|
|
25
|
-
# Ruby Quiz has a simple Heap class and had a contest for writting
|
|
32
|
+
# Ruby Quiz has a simple Heap class and had a contest for writting
|
|
26
33
|
# ascii-ast visual trees of the heap. If someone would like
|
|
27
34
|
# a small poject it would be cool to improve on this class, in general,
|
|
28
35
|
# and also see about integrating the best of those Ruby Quiz solutions.
|
|
29
|
-
#
|
|
30
|
-
# THANKS:
|
|
31
|
-
# Special thanks to Nenad Ocelic for many suggestions.
|
|
32
|
-
#
|
|
33
|
-
#++
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
# Author:: Renald Buter (buter at cwts nl)
|
|
38
|
+
# Copyright:: Copyright (c) 2002 Renald Buter
|
|
39
|
+
# License:: Ruby License
|
|
40
|
+
|
|
41
|
+
# = Heap
|
|
36
42
|
#
|
|
37
43
|
# A simple Heap structure and sort.
|
|
38
44
|
#
|
|
@@ -47,19 +53,6 @@
|
|
|
47
53
|
# The +parent+, +left+ and +right+ methods do not check the supplied parameter,
|
|
48
54
|
# but their result is _only_ valid if the supplied with an integer >=0
|
|
49
55
|
# for +left+ and +right+ and >0 for +parent+.
|
|
50
|
-
#
|
|
51
|
-
# == Reference
|
|
52
|
-
#
|
|
53
|
-
# <quote>
|
|
54
|
-
# Cormen1990: Chapter 7 (Heapsort) of 'An introduction to algorithms', by
|
|
55
|
-
# Cormen, T.H; Leiserson, C.E.; Rivest, R.L; MIT Press, Cambridge, 1990
|
|
56
|
-
# ISBN 0-262-53091-0
|
|
57
|
-
# </quote>
|
|
58
|
-
#
|
|
59
|
-
# == Author(s)
|
|
60
|
-
#
|
|
61
|
-
# * Renald Buter (buter at cwts nl)
|
|
62
|
-
#
|
|
63
56
|
|
|
64
57
|
class Heap
|
|
65
58
|
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
# HTMLBuilder
|
|
3
|
-
# Copyright (c) 2006 Thomas Sawyer
|
|
1
|
+
# = htmlbuilder.rb
|
|
4
2
|
#
|
|
5
|
-
#
|
|
3
|
+
# == Copyright (c) 2006 Thomas Sawyer
|
|
6
4
|
#
|
|
7
|
-
#
|
|
8
|
-
# software under the same terms as Ruby.
|
|
5
|
+
# Ruby License
|
|
9
6
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
# FOR A PARTICULAR PURPOSE.
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
13
9
|
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
13
|
+
#
|
|
14
|
+
# == Author(s)
|
|
15
|
+
#
|
|
16
|
+
# * Thomas Sawyer
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
# Author:: Thomas Sawyer
|
|
19
|
+
# Copyright:: Copyright (c) 2006 Thomas Sawyer
|
|
20
|
+
# License:: Ruby License
|
|
21
|
+
|
|
22
|
+
require 'facets/more/xmlbuilder.rb'
|
|
22
23
|
require 'facets/more/htmlhelper.rb'
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
#
|
|
26
|
-
# HTMLBuilder follows the _Builder Pattern_ allowing XML markup to be
|
|
27
|
-
# constructed via Ruby method calls and block structures.
|
|
25
|
+
# = HTMLBuilder
|
|
28
26
|
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
27
|
+
# HTMLBuilder follows the <em>Builder Pattern</em> allowing XML markup to be
|
|
28
|
+
# constructed via Ruby method calls and block structures. HTMLBuilder is a
|
|
29
|
+
# subclass of XMLBuilder --see XMLBuilder for more details.
|
|
32
30
|
|
|
33
|
-
class HTMLBuilder <
|
|
31
|
+
class HTMLBuilder < XMLBuilder
|
|
34
32
|
|
|
35
33
|
builder_include HTMLHelper
|
|
36
34
|
|
|
@@ -1,7 +1,96 @@
|
|
|
1
|
+
# = htmlhelper.rb
|
|
2
|
+
#
|
|
3
|
+
# == Copyright (c) 2005 George Moschovitis and Thomas Sawyer
|
|
4
|
+
#
|
|
5
|
+
# Ruby License
|
|
6
|
+
#
|
|
7
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
8
|
+
# software under the same terms as Ruby.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
11
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
12
|
+
# FOR A PARTICULAR PURPOSE.
|
|
13
|
+
#
|
|
14
|
+
# == Author(s)
|
|
15
|
+
#
|
|
16
|
+
# * George Moschovitis
|
|
17
|
+
# * Thomas Sawyer
|
|
18
|
+
|
|
19
|
+
# Author:: George Moschovitis and Thomas Sawyer
|
|
20
|
+
# Copyright:: Copyright (c) 2005 George Moschovitis and Thomas Sawyer
|
|
21
|
+
# License:: Ruby License
|
|
22
|
+
|
|
23
|
+
# = HTMLHelper
|
|
24
|
+
#
|
|
25
|
+
# Helper methods for working with CGI forms and HTML/XHTML documents.
|
|
26
|
+
#
|
|
27
|
+
# == Synopsis
|
|
28
|
+
#
|
|
29
|
+
# # TODO
|
|
30
|
+
#
|
|
31
|
+
|
|
32
|
+
require 'cgi' # TODO deprecate use
|
|
33
|
+
|
|
1
34
|
require 'facets/more/xmlhelper.rb'
|
|
2
35
|
|
|
3
36
|
module HTMLHelper
|
|
37
|
+
|
|
4
38
|
include XMLHelper
|
|
5
39
|
|
|
40
|
+
###############
|
|
41
|
+
module_function
|
|
42
|
+
###############
|
|
43
|
+
|
|
44
|
+
# Create an hidden input field through which an object can can be marshalled.
|
|
45
|
+
# This makes it very easy to pass from data betwenn requests.
|
|
46
|
+
def marshal_to_cgi(name, iobj)
|
|
47
|
+
data = CGI.escape(Marshal.dump(iobj))
|
|
48
|
+
return %Q{<input type="hidden" name="__#{name}__" value="#{data}"/>\n}
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Create an hidden input field through which an object can can be marshalled.
|
|
52
|
+
# This makes it very easy to pass from data between requests.
|
|
53
|
+
def marshal_from_cgi(name)
|
|
54
|
+
if self.params.has_key?("__#{name}__")
|
|
55
|
+
return Marshal.load(CGI.unescape(self["__#{name}__"][0]))
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Are these two good enough to replace CGI.escape?
|
|
60
|
+
|
|
61
|
+
# Return an html "safe" version of the string,
|
|
62
|
+
# where every &, < and > are replaced with appropriate entities.
|
|
63
|
+
def esc(str)
|
|
64
|
+
str.gsub(/&/,'&').gsub(/</,'<').gsub(/>/,'>')
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Calls #esc, and then further replaces carriage returns and quote characters with entities.
|
|
68
|
+
def escformat(str)
|
|
69
|
+
esc(str).gsub(/[\r\n]+/,' ').gsub(%r|"|,'"').gsub(%r|'|,''')
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
=begin
|
|
77
|
+
|
|
78
|
+
if defined? CGI
|
|
79
|
+
class CGI
|
|
80
|
+
include CGISupport
|
|
81
|
+
class << self
|
|
82
|
+
alias :escape_html :escapeHTML
|
|
83
|
+
alias :unescape_html :unescapeHTML
|
|
84
|
+
alias :escape_element :escapeElement
|
|
85
|
+
alias :unescape_element :unescapeElement
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
if defined? FCGI
|
|
91
|
+
class FCGI
|
|
92
|
+
include CGISupport
|
|
93
|
+
end
|
|
6
94
|
end
|
|
7
95
|
|
|
96
|
+
=end
|