facets 3.0.0 → 3.2.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.
- checksums.yaml +5 -5
- data/CONTRIBUTING.md +112 -0
- data/HISTORY.md +179 -0
- data/LICENSE.txt +21 -343
- data/{README.rdoc → README.md} +74 -67
- data/lib/core/facets/array/arrange.rb +1 -42
- data/lib/core/facets/array/average.rb +15 -0
- data/lib/core/facets/array/before.rb +1 -1
- data/lib/core/facets/array/collapse.rb +4 -0
- data/lib/core/facets/array/delete_first.rb +21 -0
- data/lib/core/facets/array/delete_values_at.rb +1 -0
- data/lib/core/facets/array/divide.rb +7 -0
- data/lib/core/facets/array/duplicates.rb +15 -0
- data/lib/core/facets/array/each_pair.rb +1 -4
- data/lib/core/facets/array/first.rb +1 -0
- data/lib/core/facets/array/from.rb +11 -16
- data/lib/core/facets/array/indexes.rb +113 -0
- data/lib/core/facets/array/last.rb +1 -0
- data/lib/core/facets/array/mode.rb +2 -2
- data/lib/core/facets/array/nonuniq.rb +6 -8
- data/lib/core/facets/array/occurrence.rb +8 -4
- data/lib/core/facets/array/probability.rb +1 -1
- data/lib/core/facets/array/recursively.rb +2 -2
- data/lib/core/facets/array/remove.rb +39 -0
- data/lib/core/facets/array/span.rb +29 -0
- data/lib/core/facets/array/splice.rb +1 -1
- data/lib/core/facets/array/split_at.rb +25 -0
- data/lib/core/facets/array/standard_deviation.rb +28 -0
- data/lib/core/facets/array/step.rb +12 -14
- data/lib/core/facets/array/to_ranges.rb +48 -0
- data/lib/core/facets/array/uniq_by.rb +7 -3
- data/lib/core/facets/array/variance.rb +20 -0
- data/lib/core/facets/array.rb +1 -0
- data/lib/core/facets/binding/caller.rb +8 -2
- data/lib/core/facets/binding/op_get.rb +7 -11
- data/lib/core/facets/binding/self.rb +4 -10
- data/lib/core/facets/binding.rb +0 -1
- data/lib/core/facets/boolean.rb +1 -1
- data/lib/core/facets/class/descendants.rb +0 -2
- data/lib/core/facets/class.rb +2 -2
- data/lib/core/facets/comparable/bound.rb +13 -1
- data/lib/core/facets/comparable/clip.rb +3 -32
- data/lib/core/facets/denumerable.rb +0 -3
- data/lib/core/facets/dir/find.rb +20 -0
- data/lib/core/facets/dir/recurse.rb +8 -26
- data/lib/core/facets/enumerable/cluster.rb +6 -4
- data/lib/core/facets/enumerable/compact_map.rb +2 -12
- data/lib/core/facets/enumerable/defer.rb +2 -13
- data/lib/core/facets/enumerable/each_by.rb +0 -2
- data/lib/core/facets/enumerable/frequency.rb +2 -2
- data/lib/core/facets/enumerable/hashify.rb +27 -31
- data/lib/core/facets/enumerable/hinge.rb +3 -4
- data/lib/core/facets/enumerable/map_with_index.rb +3 -6
- data/lib/core/facets/enumerable/mash.rb +5 -28
- data/lib/core/facets/enumerable/uniq_by.rb +4 -8
- data/lib/core/facets/enumerable/with_position.rb +58 -0
- data/lib/core/facets/enumerator.rb +2 -75
- data/lib/core/facets/exception/error_print.rb +6 -71
- data/lib/core/facets/file/atomic_open.rb +1 -1
- data/lib/core/facets/file/null.rb +3 -15
- data/lib/core/facets/file/read_binary.rb +3 -12
- data/lib/core/facets/hash/except.rb +11 -6
- data/lib/core/facets/hash/fetch_nested.rb +8 -9
- data/lib/core/facets/hash/graph.rb +1 -1
- data/lib/core/facets/hash/rekey.rb +3 -3
- data/lib/core/facets/hash/revalue.rb +3 -3
- data/lib/core/facets/hash/{to_proc.rb → setter.rb} +8 -9
- data/lib/core/facets/hash/slice.rb +0 -26
- data/lib/core/facets/hash/update_keys.rb +4 -11
- data/lib/core/facets/hash/update_values.rb +4 -10
- data/lib/core/facets/indexable.rb +7 -5
- data/lib/core/facets/kernel/callstack.rb +5 -24
- data/lib/core/facets/kernel/eigenclass.rb +6 -6
- data/lib/core/facets/kernel/ergo.rb +3 -3
- data/lib/core/facets/kernel/extension.rb +3 -6
- data/lib/core/facets/kernel/functor.rb +16 -0
- data/lib/core/facets/kernel/instance_class.rb +4 -20
- data/lib/core/facets/kernel/instance_send.rb +5 -3
- data/lib/core/facets/kernel/like.rb +1 -1
- data/lib/core/facets/kernel/load_relative.rb +8 -20
- data/lib/core/facets/kernel/memo.rb +4 -26
- data/lib/core/facets/kernel/meta_class.rb +10 -6
- data/lib/core/facets/kernel/object_class.rb +5 -6
- data/lib/core/facets/kernel/object_send.rb +5 -26
- data/lib/core/facets/kernel/qua_class.rb +4 -20
- data/lib/core/facets/kernel/require_all.rb +8 -20
- data/lib/core/facets/kernel/returning.rb +3 -19
- data/lib/core/facets/kernel/tap.rb +3 -36
- data/lib/core/facets/kernel/tee.rb +2 -0
- data/lib/core/facets/kernel/try.rb +38 -28
- data/lib/core/facets/kernel.rb +2 -4
- data/lib/core/facets/lazy.rb +1 -1
- data/lib/core/facets/matchdata/matchtree.rb +2 -0
- data/lib/core/facets/module/alias_method_chain.rb +4 -43
- data/lib/core/facets/module/attr_setter.rb +3 -2
- data/lib/core/facets/module/can.rb +5 -16
- data/lib/core/facets/module/class_extend.rb +2 -2
- data/lib/core/facets/numeric/delimit.rb +20 -0
- data/lib/core/facets/object/dup.rb +0 -46
- data/lib/core/facets/proc/bind.rb +0 -2
- data/lib/core/facets/proc/compose.rb +7 -28
- data/lib/core/facets/proc/to_method.rb +0 -1
- data/lib/core/facets/proc/update.rb +8 -1
- data/lib/core/facets/range/intersection.rb +42 -0
- data/lib/core/facets/range/nudge.rb +27 -0
- data/lib/core/facets/string/ascii_only.rb +2 -2
- data/lib/core/facets/string/cleanlines.rb +0 -2
- data/lib/core/facets/string/dashcase.rb +21 -0
- data/lib/core/facets/string/indent.rb +0 -8
- data/lib/core/facets/string/lchomp.rb +7 -14
- data/lib/core/facets/string/margin.rb +0 -4
- data/lib/core/facets/string/newlines.rb +0 -2
- data/lib/core/facets/string/random.rb +13 -3
- data/lib/core/facets/string/similarity.rb +7 -6
- data/lib/core/facets/string/snakecase.rb +12 -5
- data/lib/core/facets/string/words.rb +13 -1
- data/lib/core/facets/string.rb +0 -3
- data/lib/core/facets/struct/attributes.rb +2 -3
- data/lib/core/facets/time/trunc.rb +12 -5
- data/lib/core/facets/unboundmethod/arguments.rb +1 -0
- data/lib/core/facets/version.rb +1 -17
- data/lib/core/facets.rb +0 -1
- data/lib/standard/facets/argvector.rb +1 -1
- data/lib/standard/facets/cgi/escape_html.rb +14 -25
- data/lib/standard/facets/cloneable.rb +4 -51
- data/lib/standard/facets/continuation.rb +2 -56
- data/lib/standard/facets/crypt3.rb +126 -0
- data/lib/standard/facets/date/cmp.rb +32 -0
- data/lib/standard/facets/date.rb +1 -0
- data/lib/standard/facets/digest.rb +0 -1
- data/lib/standard/facets/enumargs.rb +5 -0
- data/lib/standard/facets/fileutils/cp_rx.rb +0 -2
- data/lib/standard/facets/fileutils/ln_r.rb +0 -1
- data/lib/standard/facets/find/select.rb +0 -2
- data/lib/standard/facets/getoptlong.rb +3 -59
- data/lib/standard/facets/load_monitor.rb +2 -26
- data/lib/standard/facets/math/gini_coefficient.rb +5 -4
- data/lib/standard/facets/math/kldivergence.rb +8 -7
- data/lib/standard/facets/math/percentile.rb +2 -2
- data/lib/standard/facets/multiton.rb +1 -1
- data/lib/standard/facets/net/http.rb +33 -14
- data/lib/standard/facets/ostruct/initialize.rb +4 -19
- data/lib/standard/facets/ostruct/to_ostruct.rb +2 -1
- data/lib/standard/facets/ostruct.rb +0 -88
- data/lib/standard/facets/pathname/empty.rb +2 -10
- data/lib/standard/facets/pathname/glob.rb +19 -12
- data/lib/standard/facets/pathname/null.rb +3 -14
- data/lib/standard/facets/random.rb +47 -133
- data/lib/standard/facets/timer.rb +3 -3
- data/lib/standard/facets/tuple.rb +2 -4
- data/lib/standard/facets/uri.rb +3 -2
- metadata +84 -1181
- data/.index +0 -76
- data/.yardopts +0 -10
- data/CONTRIBUTE.md +0 -78
- data/NOTICE.rdoc +0 -167
- data/demo/applique/assertion_framework.rb +0 -1
- data/demo/applique/file_helpers.rb +0 -34
- data/demo/core/array/combination.rdoc +0 -19
- data/demo/core/array/delete.rdoc +0 -23
- data/demo/core/array/index.rdoc +0 -14
- data/demo/core/array/merge.rdoc +0 -15
- data/demo/core/array/only.rdoc +0 -9
- data/demo/core/array/pad.rdoc +0 -28
- data/demo/core/array/permutation.rdoc +0 -10
- data/demo/core/array/product.rdoc +0 -26
- data/demo/core/array/recursively.rdoc +0 -16
- data/demo/core/array/rotate.rdoc +0 -30
- data/demo/core/array/select.rdoc +0 -8
- data/demo/core/array/uniq_by.rdoc +0 -9
- data/demo/core/binding/caller.rdoc +0 -57
- data/demo/core/binding/defined.rdoc +0 -10
- data/demo/core/binding/eval.rdoc +0 -8
- data/demo/core/binding/local_variables.rdoc +0 -26
- data/demo/core/binding/opvars.rdoc +0 -16
- data/demo/core/binding/self.rdoc +0 -6
- data/demo/core/class/descendants.rdoc +0 -10
- data/demo/core/class/to_proc.rdoc +0 -8
- data/demo/core/comparable/cap.rdoc +0 -20
- data/demo/core/comparable/clip.rdoc +0 -37
- data/demo/core/comparable/cmp.rdoc +0 -18
- data/demo/core/comparable/op_get.rdoc +0 -29
- data/demo/core/dir/ascend.rdoc +0 -24
- data/demo/core/dir/descend.rdoc +0 -14
- data/demo/core/dir/multiglob.rdoc +0 -41
- data/demo/core/dir/parent.rdoc +0 -6
- data/demo/core/dir/recurse.rdoc +0 -41
- data/demo/core/exception/detail.rdoc +0 -12
- data/demo/core/facets.rdoc +0 -6
- data/demo/core/filetest/root.rdoc +0 -6
- data/demo/core/hash/recursively.rdoc +0 -21
- data/demo/core/indexable.rdoc +0 -95
- data/demo/core/integer/bitmask.rdoc +0 -46
- data/demo/core/integer/even.rdoc +0 -12
- data/demo/core/integer/factorial.rdoc +0 -10
- data/demo/core/integer/length.rdoc +0 -7
- data/demo/core/integer/multiple.rdoc +0 -10
- data/demo/core/integer/odd.rdoc +0 -12
- data/demo/core/integer/of.rdoc +0 -14
- data/demo/core/integer/ordinal.rdoc +0 -9
- data/demo/core/matchdata/match.rdoc +0 -7
- data/demo/core/matchdata/matchset.rdoc +0 -15
- data/demo/core/module/cattr.rdoc +0 -43
- data/demo/core/module/class_extend.rdoc +0 -64
- data/demo/core/module/class_inheritor.rdoc +0 -126
- data/demo/core/module/copy_inheritor.rdoc +0 -30
- data/demo/core/module/method_space.rdoc +0 -55
- data/demo/core/string/align.rdoc +0 -34
- data/demo/core/string/bracket.rdoc +0 -35
- data/demo/core/string/bytes.rdoc +0 -8
- data/demo/core/string/camelcase.rdoc +0 -47
- data/demo/core/string/capitalized.rdoc +0 -27
- data/demo/core/string/characters.rdoc +0 -11
- data/demo/core/string/cleanlines.rdoc +0 -10
- data/demo/core/string/cleave.rdoc +0 -49
- data/demo/core/string/divide.rdoc +0 -9
- data/demo/core/string/each_char.rdoc +0 -9
- data/demo/core/string/each_word.rdoc +0 -9
- data/demo/core/string/end_with.rdoc +0 -6
- data/demo/core/string/expand_tabs.rdoc +0 -69
- data/demo/core/string/fold.rdoc +0 -14
- data/demo/core/string/indent.rdoc +0 -65
- data/demo/core/string/interpolate.rdoc +0 -7
- data/demo/core/string/lchomp.rdoc +0 -14
- data/demo/core/string/line_wrap.rdoc +0 -7
- data/demo/core/string/lines.rdoc +0 -8
- data/demo/core/string/margin.rdoc +0 -92
- data/demo/core/string/methodize.rdoc +0 -22
- data/demo/core/string/modulize.rdoc +0 -22
- data/demo/core/string/mscan.rdoc +0 -10
- data/demo/core/string/natcmp.rdoc +0 -10
- data/demo/core/string/nchar.rdoc +0 -9
- data/demo/core/string/newlines.rdoc +0 -9
- data/demo/core/string/op_sub.rdoc +0 -7
- data/demo/core/string/pathize.rdoc +0 -22
- data/demo/core/string/quote.rdoc +0 -20
- data/demo/core/string/range.rdoc +0 -19
- data/demo/core/string/rewrite.rdoc +0 -9
- data/demo/core/string/shatter.rdoc +0 -9
- data/demo/core/string/snakecase.rdoc +0 -10
- data/demo/core/string/splice.rdoc +0 -28
- data/demo/core/string/start_with.rdoc +0 -7
- data/demo/core/string/subtract.rdoc +0 -8
- data/demo/core/string/tab.rdoc +0 -16
- data/demo/core/string/tabto.rdoc +0 -29
- data/demo/core/string/titlecase.rdoc +0 -8
- data/demo/core/string/to_re.rdoc +0 -22
- data/demo/core/string/unfold.rdoc +0 -9
- data/demo/core/string/unindent.rdoc +0 -65
- data/demo/core/string/unquote.rdoc +0 -6
- data/demo/core/string/variablize.rdoc +0 -7
- data/demo/core/string/word_wrap.rdoc +0 -54
- data/demo/core/string/words.rdoc +0 -13
- data/demo/core/string/xor.rdoc +0 -8
- data/demo/standard/02_cloneable.rdoc +0 -46
- data/demo/standard/03_enumargs.rdoc +0 -75
- data/demo/standard/04_equitable.rdoc +0 -35
- data/demo/standard/05_instantiable.rdoc +0 -42
- data/demo/standard/basic_object.rdoc +0 -22
- data/demo/standard/memoizable.rdoc +0 -134
- data/demo/standard/mulititon.rdoc +0 -156
- data/lib/core/facets/applique/file_helpers.rb +0 -33
- data/lib/core/facets/array/intersection.rb +0 -25
- data/lib/core/facets/array/op_pow.rb +0 -14
- data/lib/core/facets/array/to_h.rb +0 -22
- data/lib/core/facets/binding/local_variables.rb +0 -16
- data/lib/core/facets/class/singleton.rb +0 -1
- data/lib/core/facets/class/singleton_class.rb +0 -16
- data/lib/core/facets/class/subclasses.rb +0 -28
- data/lib/core/facets/dir/each_child.rb +0 -16
- data/lib/core/facets/enumerable/filter.rb +0 -33
- data/lib/core/facets/enumerable/sum.rb +0 -30
- data/lib/core/facets/exception/set_message.rb +0 -10
- data/lib/core/facets/file/write.rb +0 -24
- data/lib/core/facets/fixnum.rb +0 -7
- data/lib/core/facets/kernel/__dir__.rb +0 -28
- data/lib/core/facets/kernel/constant.rb +0 -22
- data/lib/core/facets/kernel/instance_exec.rb +0 -47
- data/lib/core/facets/kernel/p.rb +0 -24
- data/lib/core/facets/kernel/singleton_class.rb +0 -10
- data/lib/core/facets/matchdata/match.rb +0 -15
- data/lib/core/facets/method/curry.rb +0 -13
- data/lib/core/facets/numeric/negative.rb +0 -1
- data/lib/core/facets/numeric/positive.rb +0 -15
- data/lib/core/facets/object/itself.rb +0 -16
- data/lib/core/facets/object/try_dup.rb +0 -1
- data/lib/core/facets/process/daemon.rb +0 -32
- data/lib/core/facets/range/overlap.rb +0 -12
- data/lib/core/facets/string/characters.rb +0 -13
- data/lib/core/facets/string/crypt.rb +0 -22
- data/lib/core/facets/string/tab.rb +0 -2
- data/lib/core/facets/string/tabto.rb +0 -2
- data/lib/core/facets/symbol/succ.rb +0 -23
- data/lib/core/facets.yml +0 -76
- data/lib/standard/facets/basicobject.rb +0 -75
- data/lib/standard/facets/digest/base64digest.rb +0 -45
- data/lib/standard/facets/ostruct/each.rb +0 -11
- data/lib/standard/facets/ostruct/merge.rb +0 -21
- data/lib/standard/facets/ostruct/op_fetch.rb +0 -29
- data/lib/standard/facets/ostruct/op_store.rb +0 -1
- data/lib/standard/facets/ostruct/to_h.rb +0 -10
- data/test/core/array/test_after.rb +0 -27
- data/test/core/array/test_arrange.rb +0 -37
- data/test/core/array/test_before.rb +0 -27
- data/test/core/array/test_collapse.rb +0 -14
- data/test/core/array/test_combination.rb +0 -25
- data/test/core/array/test_commonality.rb +0 -35
- data/test/core/array/test_conjoin.rb +0 -50
- data/test/core/array/test_contains.rb +0 -14
- data/test/core/array/test_delete.rb +0 -42
- data/test/core/array/test_divide.rb +0 -14
- data/test/core/array/test_duplicates.rb +0 -29
- data/test/core/array/test_each_overlap.rb +0 -31
- data/test/core/array/test_entropy.rb +0 -23
- data/test/core/array/test_extract_options.rb +0 -28
- data/test/core/array/test_first.rb +0 -17
- data/test/core/array/test_index.rb +0 -20
- data/test/core/array/test_intersection.rb +0 -19
- data/test/core/array/test_last.rb +0 -17
- data/test/core/array/test_median.rb +0 -27
- data/test/core/array/test_merge.rb +0 -27
- data/test/core/array/test_missing.rb +0 -12
- data/test/core/array/test_mode.rb +0 -17
- data/test/core/array/test_nonuniq.rb +0 -25
- data/test/core/array/test_not_empty.rb +0 -17
- data/test/core/array/test_occur.rb +0 -52
- data/test/core/array/test_occurrence.rb +0 -20
- data/test/core/array/test_only.rb +0 -17
- data/test/core/array/test_pad.rb +0 -40
- data/test/core/array/test_peek.rb +0 -28
- data/test/core/array/test_permutation.rb +0 -20
- data/test/core/array/test_poke.rb +0 -21
- data/test/core/array/test_probability.rb +0 -18
- data/test/core/array/test_product.rb +0 -64
- data/test/core/array/test_pull.rb +0 -15
- data/test/core/array/test_recurse.rb +0 -40
- data/test/core/array/test_recursively.rb +0 -33
- data/test/core/array/test_reject_values.rb +0 -17
- data/test/core/array/test_rotate.rb +0 -38
- data/test/core/array/test_select.rb +0 -16
- data/test/core/array/test_splice.rb +0 -21
- data/test/core/array/test_split.rb +0 -22
- data/test/core/array/test_squeeze.rb +0 -22
- data/test/core/array/test_step.rb +0 -28
- data/test/core/array/test_store.rb +0 -22
- data/test/core/array/test_traverse.rb +0 -26
- data/test/core/array/test_uniq_by.rb +0 -17
- data/test/core/array/test_unique_permutation.rb +0 -23
- data/test/core/binding/test_caller.rb +0 -69
- data/test/core/binding/test_defined.rb +0 -18
- data/test/core/binding/test_eval.rb +0 -15
- data/test/core/binding/test_local_variables.rb +0 -36
- data/test/core/binding/test_op.rb +0 -24
- data/test/core/binding/test_self.rb +0 -16
- data/test/core/class/test_descendents.rb +0 -19
- data/test/core/class/test_preallocate.rb +0 -32
- data/test/core/class/test_subclasses.rb +0 -20
- data/test/core/class/test_to_proc.rb +0 -16
- data/test/core/comparable/test_bound.rb +0 -32
- data/test/core/comparable/test_cap.rb +0 -36
- data/test/core/comparable/test_clip.rb +0 -31
- data/test/core/comparable/test_cmp.rb +0 -16
- data/test/core/comparable/test_op_get.rb +0 -61
- data/test/core/denumerable_tc.rb +0 -194
- data/test/core/dir/test_ascend.rb +0 -40
- data/test/core/dir/test_descend.rb +0 -24
- data/test/core/dir/test_each_child.rb +0 -22
- data/test/core/dir/test_multiglob.rb +0 -25
- data/test/core/dir/test_parent.rb +0 -14
- data/test/core/dir/test_recurse.rb +0 -26
- data/test/core/enumerable/test_accumulate.rb +0 -44
- data/test/core/enumerable/test_cluster_by.rb +0 -30
- data/test/core/enumerable/test_compact_map.rb +0 -32
- data/test/core/enumerable/test_count.rb +0 -32
- data/test/core/enumerable/test_defer.rb +0 -27
- data/test/core/enumerable/test_each_by.rb +0 -49
- data/test/core/enumerable/test_each_with_object.rb +0 -18
- data/test/core/enumerable/test_every.rb +0 -33
- data/test/core/enumerable/test_ewise.rb +0 -30
- data/test/core/enumerable/test_exclude.rb +0 -15
- data/test/core/enumerable/test_expand.rb +0 -15
- data/test/core/enumerable/test_filter.rb +0 -19
- data/test/core/enumerable/test_find_yield.rb +0 -96
- data/test/core/enumerable/test_frequency.rb +0 -15
- data/test/core/enumerable/test_graph.rb +0 -42
- data/test/core/enumerable/test_group_by.rb +0 -36
- data/test/core/enumerable/test_key_by.rb +0 -22
- data/test/core/enumerable/test_map_by.rb +0 -27
- data/test/core/enumerable/test_map_send.rb +0 -26
- data/test/core/enumerable/test_map_with_index.rb +0 -23
- data/test/core/enumerable/test_mash.rb +0 -17
- data/test/core/enumerable/test_modulate.rb +0 -17
- data/test/core/enumerable/test_none.rb +0 -29
- data/test/core/enumerable/test_occur.rb +0 -40
- data/test/core/enumerable/test_one.rb +0 -34
- data/test/core/enumerable/test_only.rb +0 -40
- data/test/core/enumerable/test_per.rb +0 -19
- data/test/core/enumerable/test_purge.rb +0 -22
- data/test/core/enumerable/test_recursively.rb +0 -33
- data/test/core/enumerable/test_squeeze.rb +0 -35
- data/test/core/enumerable/test_sum.rb +0 -40
- data/test/core/enumerable/test_take.rb +0 -15
- data/test/core/enumerable/test_uniq_by.rb +0 -25
- data/test/core/enumerable/test_visit.rb +0 -14
- data/test/core/enumerator/lazy/test_squeeze.rb +0 -33
- data/test/core/enumerator/test_fx.rb +0 -16
- data/test/core/enumerator/test_new.rb +0 -21
- data/test/core/enumerator_tc.rb +0 -40
- data/test/core/exception/test_detail.rb +0 -15
- data/test/core/exception/test_raised.rb +0 -15
- data/test/core/exception/test_suppress.rb +0 -16
- data/test/core/file/test_append.rb +0 -22
- data/test/core/file/test_create.rb +0 -17
- data/test/core/file/test_ext.rb +0 -31
- data/test/core/file/test_null.rb +0 -14
- data/test/core/file/test_read_binary.rb +0 -19
- data/test/core/file/test_read_list.rb +0 -16
- data/test/core/file/test_rewrite.rb +0 -35
- data/test/core/file/test_rootname.rb +0 -13
- data/test/core/file/test_sanitize.rb +0 -32
- data/test/core/file/test_split_all.rb +0 -14
- data/test/core/file/test_write.rb +0 -22
- data/test/core/file/test_writelines.rb +0 -21
- data/test/core/filetest/test_root.rb +0 -14
- data/test/core/functor_tc.rb +0 -41
- data/test/core/hash/test_alias.rb +0 -25
- data/test/core/hash/test_argumentize.rb +0 -23
- data/test/core/hash/test_at.rb +0 -16
- data/test/core/hash/test_autonew.rb +0 -22
- data/test/core/hash/test_collate.rb +0 -61
- data/test/core/hash/test_count.rb +0 -23
- data/test/core/hash/test_data.rb +0 -35
- data/test/core/hash/test_dearray_values.rb +0 -26
- data/test/core/hash/test_deep_merge.rb +0 -31
- data/test/core/hash/test_deep_rekey.rb +0 -131
- data/test/core/hash/test_delete_at.rb +0 -18
- data/test/core/hash/test_delete_unless.rb +0 -18
- data/test/core/hash/test_delete_values.rb +0 -30
- data/test/core/hash/test_diff.rb +0 -16
- data/test/core/hash/test_each_with_key.rb +0 -16
- data/test/core/hash/test_expect.rb +0 -24
- data/test/core/hash/test_fetch_nested.rb +0 -24
- data/test/core/hash/test_graph.rb +0 -40
- data/test/core/hash/test_insert.rb +0 -20
- data/test/core/hash/test_inverse.rb +0 -20
- data/test/core/hash/test_join.rb +0 -32
- data/test/core/hash/test_keys.rb +0 -41
- data/test/core/hash/test_new_with.rb +0 -17
- data/test/core/hash/test_op_add.rb +0 -17
- data/test/core/hash/test_op_and.rb +0 -31
- data/test/core/hash/test_op_mul.rb +0 -17
- data/test/core/hash/test_op_or.rb +0 -17
- data/test/core/hash/test_op_push.rb +0 -34
- data/test/core/hash/test_op_sub.rb +0 -28
- data/test/core/hash/test_recurse.rb +0 -39
- data/test/core/hash/test_recursively.rb +0 -71
- data/test/core/hash/test_rekey.rb +0 -119
- data/test/core/hash/test_replace_each.rb +0 -17
- data/test/core/hash/test_revalue.rb +0 -98
- data/test/core/hash/test_reverse_merge.rb +0 -39
- data/test/core/hash/test_select.rb +0 -44
- data/test/core/hash/test_slice.rb +0 -36
- data/test/core/hash/test_stringify_keys.rb +0 -26
- data/test/core/hash/test_swap.rb +0 -15
- data/test/core/hash/test_symbolize_keys.rb +0 -26
- data/test/core/hash/test_to_mod.rb +0 -24
- data/test/core/hash/test_to_proc.rb +0 -23
- data/test/core/hash/test_to_struct.rb +0 -22
- data/test/core/hash/test_traverse.rb +0 -29
- data/test/core/hash/test_update_each.rb +0 -16
- data/test/core/hash/test_update_keys.rb +0 -21
- data/test/core/hash/test_update_values.rb +0 -15
- data/test/core/hash/test_url_params.rb +0 -26
- data/test/core/hash/test_weave.rb +0 -18
- data/test/core/hash/test_zip.rb +0 -16
- data/test/core/indexable_tc.rb +0 -226
- data/test/core/integer/test_bitmask.rb +0 -73
- data/test/core/integer/test_even.rb +0 -24
- data/test/core/integer/test_factorial.rb +0 -30
- data/test/core/integer/test_multiple.rb +0 -16
- data/test/core/integer/test_odd.rb +0 -24
- data/test/core/integer/test_of.rb +0 -36
- data/test/core/integer/test_ordinal.rb +0 -27
- data/test/core/kernel/test_as.rb +0 -74
- data/test/core/kernel/test_ask.rb +0 -9
- data/test/core/kernel/test_assign.rb +0 -61
- data/test/core/kernel/test_assign_from.rb +0 -48
- data/test/core/kernel/test_attr_singleton.rb +0 -51
- data/test/core/kernel/test_blank.rb +0 -103
- data/test/core/kernel/test_callstack.rb +0 -21
- data/test/core/kernel/test_class.rb +0 -14
- data/test/core/kernel/test_complete.rb +0 -19
- data/test/core/kernel/test_constant.rb +0 -18
- data/test/core/kernel/test_d.rb +0 -10
- data/test/core/kernel/test_deep_clone.rb +0 -31
- data/test/core/kernel/test_deep_copy.rb +0 -15
- data/test/core/kernel/test_dir.rb +0 -24
- data/test/core/kernel/test_disable_warnings.rb +0 -38
- data/test/core/kernel/test_ergo.rb +0 -32
- data/test/core/kernel/test_extension.rb +0 -18
- data/test/core/kernel/test_get.rb +0 -54
- data/test/core/kernel/test_here.rb +0 -13
- data/test/core/kernel/test_hierarchical_send.rb +0 -48
- data/test/core/kernel/test_in.rb +0 -14
- data/test/core/kernel/test_instance_assign.rb +0 -19
- data/test/core/kernel/test_instance_class.rb +0 -15
- data/test/core/kernel/test_instance_extract.rb +0 -28
- data/test/core/kernel/test_instance_send.rb +0 -26
- data/test/core/kernel/test_maybe.rb +0 -13
- data/test/core/kernel/test_meta_alias.rb +0 -18
- data/test/core/kernel/test_meta_class.rb +0 -33
- data/test/core/kernel/test_meta_def.rb +0 -15
- data/test/core/kernel/test_meta_eval.rb +0 -18
- data/test/core/kernel/test_method.rb +0 -20
- data/test/core/kernel/test_not.rb +0 -51
- data/test/core/kernel/test_not_nil.rb +0 -25
- data/test/core/kernel/test_object_class.rb +0 -22
- data/test/core/kernel/test_object_hexid.rb +0 -20
- data/test/core/kernel/test_object_send.rb +0 -25
- data/test/core/kernel/test_presence.rb +0 -37
- data/test/core/kernel/test_qua_class.rb +0 -25
- data/test/core/kernel/test_require_all.rb +0 -11
- data/test/core/kernel/test_require_relative.rb +0 -12
- data/test/core/kernel/test_respond.rb +0 -38
- data/test/core/kernel/test_returning.rb +0 -17
- data/test/core/kernel/test_silence.rb +0 -24
- data/test/core/kernel/test_singleton_class.rb +0 -15
- data/test/core/kernel/test_super_method.rb +0 -23
- data/test/core/kernel/test_tap.rb +0 -38
- data/test/core/kernel/test_temporarily.rb +0 -25
- data/test/core/kernel/test_true.rb +0 -31
- data/test/core/kernel/test_try.rb +0 -35
- data/test/core/kernel/test_val.rb +0 -30
- data/test/core/kernel/test_with.rb +0 -18
- data/test/core/kernel/test_writers.rb +0 -53
- data/test/core/matchdata/test_match.rb +0 -14
- data/test/core/matchdata/test_matchset.rb +0 -29
- data/test/core/method/test_composition.rb +0 -42
- data/test/core/module/test_abstract.rb +0 -24
- data/test/core/module/test_alias_accessor.rb +0 -27
- data/test/core/module/test_alias_method_chain.rb +0 -34
- data/test/core/module/test_alias_module_function.rb +0 -24
- data/test/core/module/test_all_instance_methods.rb +0 -27
- data/test/core/module/test_ancestor.rb +0 -16
- data/test/core/module/test_anonymous.rb +0 -18
- data/test/core/module/test_attr_setter.rb +0 -28
- data/test/core/module/test_basename.rb +0 -14
- data/test/core/module/test_can.rb +0 -22
- data/test/core/module/test_class.rb +0 -22
- data/test/core/module/test_class_def.rb +0 -22
- data/test/core/module/test_class_extend.rb +0 -73
- data/test/core/module/test_class_inheritor.rb +0 -135
- data/test/core/module/test_copy_inheritor.rb +0 -35
- data/test/core/module/test_enclosure.rb +0 -24
- data/test/core/module/test_instance_function.rb +0 -30
- data/test/core/module/test_instance_method.rb +0 -20
- data/test/core/module/test_instance_method_defined.rb +0 -38
- data/test/core/module/test_integrate.rb +0 -28
- data/test/core/module/test_is.rb +0 -50
- data/test/core/module/test_memoize.rb +0 -33
- data/test/core/module/test_method_clash.rb +0 -59
- data/test/core/module/test_method_space.rb +0 -72
- data/test/core/module/test_methodize.rb +0 -26
- data/test/core/module/test_modname.rb +0 -13
- data/test/core/module/test_module_def.rb +0 -22
- data/test/core/module/test_module_load.rb +0 -23
- data/test/core/module/test_nodef.rb +0 -19
- data/test/core/module/test_op.rb +0 -56
- data/test/core/module/test_pathize.rb +0 -25
- data/test/core/module/test_preextend.rb +0 -26
- data/test/core/module/test_redefine_method.rb +0 -30
- data/test/core/module/test_redirect_method.rb +0 -32
- data/test/core/module/test_remove.rb +0 -18
- data/test/core/module/test_rename_method.rb +0 -34
- data/test/core/module/test_revise.rb +0 -61
- data/test/core/module/test_set.rb +0 -30
- data/test/core/module/test_spacename.rb +0 -15
- data/test/core/module/test_to_obj.rb +0 -20
- data/test/core/module/test_wrap_method.rb +0 -32
- data/test/core/nilclass/test_to_f.rb +0 -13
- data/test/core/numeric/test_approx.rb +0 -26
- data/test/core/numeric/test_distance.rb +0 -16
- data/test/core/numeric/test_length.rb +0 -16
- data/test/core/numeric/test_round.rb +0 -76
- data/test/core/numeric/test_spacing.rb +0 -17
- data/test/core/object/test_dup.rb +0 -115
- data/test/core/object/test_object_state.rb +0 -75
- data/test/core/object/test_replace.rb +0 -69
- data/test/core/object/test_try_dup.rb +0 -59
- data/test/core/proc/test_bind.rb +0 -29
- data/test/core/proc/test_bind_to.rb +0 -17
- data/test/core/proc/test_compose.rb +0 -27
- data/test/core/proc/test_curry.rb +0 -38
- data/test/core/proc/test_partial.rb +0 -27
- data/test/core/proc/test_to_method.rb +0 -43
- data/test/core/proc/test_update.rb +0 -15
- data/test/core/range/test_combine.rb +0 -32
- data/test/core/range/test_op_add.rb +0 -24
- data/test/core/range/test_op_sub.rb +0 -34
- data/test/core/range/test_overlap.rb +0 -15
- data/test/core/range/test_to_r.rb +0 -20
- data/test/core/range/test_umbrella.rb +0 -32
- data/test/core/range/test_within.rb +0 -25
- data/test/core/regexp/test_arity.rb +0 -30
- data/test/core/regexp/test_multiline.rb +0 -19
- data/test/core/regexp/test_op_add.rb +0 -15
- data/test/core/regexp/test_op_or.rb +0 -16
- data/test/core/regexp/test_to_re.rb +0 -24
- data/test/core/string/test_align.rb +0 -32
- data/test/core/string/test_ascii_only.rb +0 -30
- data/test/core/string/test_bracket.rb +0 -37
- data/test/core/string/test_bytes.rb +0 -13
- data/test/core/string/test_camelcase.rb +0 -59
- data/test/core/string/test_capitalized.rb +0 -36
- data/test/core/string/test_characters.rb +0 -13
- data/test/core/string/test_cleanlines.rb +0 -12
- data/test/core/string/test_cleave.rb +0 -27
- data/test/core/string/test_cmp.rb +0 -18
- data/test/core/string/test_compress_lines.rb +0 -18
- data/test/core/string/test_divide.rb +0 -17
- data/test/core/string/test_each_char.rb +0 -17
- data/test/core/string/test_each_word.rb +0 -17
- data/test/core/string/test_edit_distance.rb +0 -20
- data/test/core/string/test_end_with.rb +0 -24
- data/test/core/string/test_exclude.rb +0 -23
- data/test/core/string/test_expand_tabs.rb +0 -83
- data/test/core/string/test_file.rb +0 -15
- data/test/core/string/test_fold.rb +0 -21
- data/test/core/string/test_indent.rb +0 -90
- data/test/core/string/test_index_all.rb +0 -18
- data/test/core/string/test_interpolate.rb +0 -16
- data/test/core/string/test_lchomp.rb +0 -25
- data/test/core/string/test_line_wrap.rb +0 -15
- data/test/core/string/test_lines.rb +0 -15
- data/test/core/string/test_lowercase.rb +0 -18
- data/test/core/string/test_margin.rb +0 -16
- data/test/core/string/test_methodize.rb +0 -28
- data/test/core/string/test_modulize.rb +0 -28
- data/test/core/string/test_mscan.rb +0 -18
- data/test/core/string/test_natcmp.rb +0 -17
- data/test/core/string/test_nchar.rb +0 -17
- data/test/core/string/test_newlines.rb +0 -14
- data/test/core/string/test_number.rb +0 -44
- data/test/core/string/test_op_div.rb +0 -15
- data/test/core/string/test_op_sub.rb +0 -15
- data/test/core/string/test_pathize.rb +0 -31
- data/test/core/string/test_quote.rb +0 -41
- data/test/core/string/test_range.rb +0 -35
- data/test/core/string/test_remove.rb +0 -36
- data/test/core/string/test_rewrite.rb +0 -17
- data/test/core/string/test_rotate.rb +0 -31
- data/test/core/string/test_shatter.rb +0 -17
- data/test/core/string/test_similarity.rb +0 -14
- data/test/core/string/test_snakecase.rb +0 -22
- data/test/core/string/test_splice.rb +0 -37
- data/test/core/string/test_squish.rb +0 -31
- data/test/core/string/test_start_with.rb +0 -24
- data/test/core/string/test_store.rb +0 -16
- data/test/core/string/test_subtract.rb +0 -16
- data/test/core/string/test_tab.rb +0 -16
- data/test/core/string/test_titlecase.rb +0 -16
- data/test/core/string/test_to_re.rb +0 -35
- data/test/core/string/test_trim.rb +0 -116
- data/test/core/string/test_unbracket.rb +0 -38
- data/test/core/string/test_underscore.rb +0 -21
- data/test/core/string/test_unfold.rb +0 -17
- data/test/core/string/test_unindent.rb +0 -105
- data/test/core/string/test_unquote.rb +0 -13
- data/test/core/string/test_uppercase.rb +0 -22
- data/test/core/string/test_variablize.rb +0 -15
- data/test/core/string/test_word_wrap.rb +0 -80
- data/test/core/string/test_words.rb +0 -24
- data/test/core/string/test_xor.rb +0 -16
- data/test/core/symbol/test_as_s.rb +0 -15
- data/test/core/symbol/test_bang.rb +0 -15
- data/test/core/symbol/test_chomp.rb +0 -22
- data/test/core/symbol/test_generate.rb +0 -20
- data/test/core/symbol/test_not.rb +0 -19
- data/test/core/symbol/test_op_div.rb +0 -15
- data/test/core/symbol/test_plain.rb +0 -19
- data/test/core/symbol/test_query.rb +0 -19
- data/test/core/symbol/test_setter.rb +0 -17
- data/test/core/symbol/test_succ.rb +0 -16
- data/test/core/symbol/test_thrown.rb +0 -22
- data/test/core/symbol/test_to_proc.rb +0 -35
- data/test/core/symbol/test_variablize.rb +0 -14
- data/test/core/time/test_ago.rb +0 -18
- data/test/core/time/test_change.rb +0 -17
- data/test/core/time/test_dst_adjustment.rb +0 -19
- data/test/core/time/test_elapse.rb +0 -15
- data/test/core/time/test_future.rb +0 -32
- data/test/core/time/test_hence.rb +0 -18
- data/test/core/time/test_in.rb +0 -18
- data/test/core/time/test_less.rb +0 -139
- data/test/core/time/test_past.rb +0 -32
- data/test/core/time/test_round_to.rb +0 -34
- data/test/core/time/test_set.rb +0 -43
- data/test/core/time/test_shift.rb +0 -135
- data/test/core/time/test_stamp.rb +0 -42
- data/test/core/time/test_to_time.rb +0 -15
- data/test/core/time/test_trunc.rb +0 -34
- data/test/core/to_hash_tc.rb +0 -210
- data/test/core/unboundmethod/test_arguments.rb +0 -25
- data/test/core/unboundmethod/test_name.rb +0 -19
- data/test/standard/binding/test_block_exec.rb +0 -21
- data/test/standard/math/test_abs.rb +0 -13
- data/test/standard/math/test_acot.rb +0 -23
- data/test/standard/math/test_acoth.rb +0 -22
- data/test/standard/math/test_beta.rb +0 -19
- data/test/standard/math/test_ceil.rb +0 -22
- data/test/standard/math/test_cosec.rb +0 -19
- data/test/standard/math/test_cosech.rb +0 -19
- data/test/standard/math/test_cot.rb +0 -13
- data/test/standard/math/test_coth.rb +0 -13
- data/test/standard/math/test_distance.rb +0 -16
- data/test/standard/math/test_exp10.rb +0 -14
- data/test/standard/math/test_exp2.rb +0 -14
- data/test/standard/math/test_factorial.rb +0 -13
- data/test/standard/math/test_floor.rb +0 -23
- data/test/standard/math/test_gcd.rb +0 -18
- data/test/standard/math/test_lcm.rb +0 -13
- data/test/standard/math/test_median.rb +0 -17
- data/test/standard/math/test_percentile.rb +0 -13
- data/test/standard/math/test_pow.rb +0 -30
- data/test/standard/math/test_root.rb +0 -15
- data/test/standard/math/test_sec.rb +0 -19
- data/test/standard/math/test_sech.rb +0 -19
- data/test/standard/math/test_sign.rb +0 -20
- data/test/standard/math/test_sinc.rb +0 -15
- data/test/standard/math/test_srq.rb +0 -20
- data/test/standard/pathname/test_chdir.rb +0 -16
- data/test/standard/pathname/test_readline.rb +0 -23
- data/test/standard/test_argvector.rb +0 -64
- data/test/standard/test_cloneable.rb +0 -60
- data/test/standard/test_date.rb +0 -82
- data/test/standard/test_enumargs.rb +0 -89
- data/test/standard/test_equitable.rb +0 -46
- data/test/standard/test_instantiable.rb +0 -40
- data/test/standard/test_math.rb +0 -3
- data/test/standard/test_memoizable.rb +0 -42
- data/test/standard/test_multipliers.rb +0 -141
- data/test/standard/test_ostruct.rb +0 -191
- data/test/standard/test_random.rb +0 -241
- data/test/standard/test_shellwords.rb +0 -74
- data/test/standard/test_thread.rb +0 -24
- data/test/standard/test_timer.rb +0 -62
- data/test/standard/test_tuple.rb +0 -68
- data/test/standard/test_uri.rb +0 -50
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: cc5a3121c6c373b29fdc3e515820f8e547d8b8a2fbfd0dde05cec51640960fa5
|
|
4
|
+
data.tar.gz: 2440d6fd114506decc8993153077c4bf98c5e6f372cbc2922ee253103d9c1c0e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 67499b78df8f8b5b1a005d10b029d7f0278d7b6d9db5207c458df59433cf3d9362bcd8b4a60dbb5b31eb003b1b814fe1509800224746e5b71bbc5c1796349dbe
|
|
7
|
+
data.tar.gz: 8270894f6568a4d5b9b654a293e5c385230dc48032e0c711d24aa544ba0b48b379856874b4805cd476256e570272ebad0ebe76a71b4f519be8e6fa7470f81590
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# CONTRIBUTING TO FACETS
|
|
2
|
+
|
|
3
|
+
## General Rules
|
|
4
|
+
|
|
5
|
+
* Facets methods must have no external dependencies. (The only possible
|
|
6
|
+
exception to this is if the functor gets spun-off as a separate gem along
|
|
7
|
+
with related methods, but for now that hasn't happened.)
|
|
8
|
+
|
|
9
|
+
* Each method must be in it's own file of the same name. If the method ends
|
|
10
|
+
with `=` or `?` just leave it off the file name.
|
|
11
|
+
|
|
12
|
+
* On rare occasion two or more methods can be very tightly related. In these
|
|
13
|
+
cases the methods can all go in a single file under the name of the method
|
|
14
|
+
considered most significant. Usually files for the other methods should
|
|
15
|
+
still be created that simply require the main file.
|
|
16
|
+
|
|
17
|
+
* Methods must be tested both via a Lemon unit test and as a QED demo.
|
|
18
|
+
The Lemon unit tests are for testing a method in detail whereas the QED
|
|
19
|
+
demos are for demonstrating usage.
|
|
20
|
+
|
|
21
|
+
* Facets is divided into two parts, *core* and *standard* libraries.
|
|
22
|
+
Almost all of the core library can be loaded at once using `require 'facets'`
|
|
23
|
+
The standard library (also called the *more* library) must be required
|
|
24
|
+
per-script.
|
|
25
|
+
|
|
26
|
+
* Some core methods are included on a *trial* basis, and these are not
|
|
27
|
+
necessary loaded automatically with `require 'facets'`. These should be
|
|
28
|
+
documented as such in the method comments.
|
|
29
|
+
|
|
30
|
+
* Standard libraries that are not extensions of existing standard libraries
|
|
31
|
+
do not have to be divvied up into individual method files. But note that
|
|
32
|
+
full classes and/or modules are less likely to make it into Facets, as
|
|
33
|
+
these sorts of additions to Facets are only for very basic sorts of things.
|
|
34
|
+
Otherwise they'd deserve their own gem.
|
|
35
|
+
|
|
36
|
+
* When submitting new methods for consideration, it is best if each method
|
|
37
|
+
(or *tightly related* set of methods) is in it's own pull request. If you
|
|
38
|
+
have only one method to submit then a simple commit will do the trick. If
|
|
39
|
+
you have more than one it best to use separate branches. Let me emphasizes
|
|
40
|
+
this point because it makes it *much more likely* that your pull request
|
|
41
|
+
will be merged. If you submit a bunch of methods in a single pull request,
|
|
42
|
+
it is very likely that it will not be merged even if methods you submitted
|
|
43
|
+
are accepted!!!
|
|
44
|
+
|
|
45
|
+
* Don't be discouraged when you get feedback about a method that isn't
|
|
46
|
+
all sunshine and roses. Facets has been around long enough now that
|
|
47
|
+
it needs to maintain a certain degree of quality control, and that means
|
|
48
|
+
serious discernment about what goes into the library. That includes
|
|
49
|
+
having in depth discussions the merits of methods, even about the best
|
|
50
|
+
name for a method --even if the functionality has been accepted the name
|
|
51
|
+
may not.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Versioning
|
|
55
|
+
|
|
56
|
+
Facets tries to follow a semantic versioning system, but with a slightly
|
|
57
|
+
differt scheme than most projects. For Facets the version number represents:
|
|
58
|
+
|
|
59
|
+
gestault.major.minor
|
|
60
|
+
|
|
61
|
+
Techinically there can be a fouth `build` number, but we never use it for
|
|
62
|
+
releases.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## Commit Tags
|
|
66
|
+
|
|
67
|
+
When making a commit, it is helpful to add a *commit tag* to the end of the
|
|
68
|
+
first line of commit message. Commit tags are single words wrapped in colons.
|
|
69
|
+
|
|
70
|
+
* If the commit is only a documentation change, then and `:doc:`.
|
|
71
|
+
* If it is only a change to tests then add `:test:`.
|
|
72
|
+
* If the change only effects project build or config files then add `:admin:`.
|
|
73
|
+
* If the change fixes a bug that was reported via the issue system be sure
|
|
74
|
+
to reference the issue number in the message using `#` and add a `:bug:` tag.
|
|
75
|
+
* For actual code changes, if the change is *very minor* and not something
|
|
76
|
+
anyone would notice, you can use `:tweak:`, if you want.
|
|
77
|
+
* If the change would require a minor version change than use `:minor:`.
|
|
78
|
+
* But if a change is a significant change to the API, and thus will require
|
|
79
|
+
a major version change, then end the message with `:major:`.
|
|
80
|
+
|
|
81
|
+
These are all rules of thumb, and no one expects them to be applied perfectly.
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## Documentation
|
|
85
|
+
|
|
86
|
+
Facets started when the only choice for API documentation was RDoc. So originally
|
|
87
|
+
that's how methods were documented. Since then both YARD and Tomdoc have come
|
|
88
|
+
along. And some of these documentation styles have crept into a number of
|
|
89
|
+
methods. So right now, things are a bit messy. But going forward it looks like we
|
|
90
|
+
are going to settle on Tomdoc as the official documentation style (but using
|
|
91
|
+
the tomparse gem's extensions). Using Tomdoc will give us reasonable
|
|
92
|
+
interoperability with both RDoc and YARD, both of which now have support for
|
|
93
|
+
Tomdoc (albeit support is not 100% the same, but hopefully it's close enough).
|
|
94
|
+
|
|
95
|
+
Officially we publish documentation via rubydoc.info, which is the YARD server,
|
|
96
|
+
and via the Facets website in Shomen JSON format.
|
|
97
|
+
|
|
98
|
+
When writing documentation for a method it is best to give a simple summary
|
|
99
|
+
explanation, followed by some basic examples. Follow that up with deeper
|
|
100
|
+
explanation if needed, including *when* and *why* the method could be useful.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
## Testing
|
|
104
|
+
|
|
105
|
+
* Methods in `lib/core/facets/{class}/{method}.rb` will be tested in `test/foo/{class}/test_{method}.rb`.
|
|
106
|
+
* If `lib/core/facets/{class}/{method}.rb` consists only of a require statement, no test file is expected.
|
|
107
|
+
* If `lib/core/facets/{class}/{method}.rb` consists only of a require and an alias, then `test/foo/{class}/{method}.rb`, only needs to test the existence of the alias and not the underlying code. But it's okay if the alias is tested further.
|
|
108
|
+
* Methods in `lib/core/facets/{class}/{method}.rb` will be demoed in `demo/core/{class}/{method}.md`.
|
|
109
|
+
* Require only files will have a full demo of it's method or methods. Code in a single file may be split into multiple demos, named after the method. This is to promote discoverability in the documentation.
|
|
110
|
+
* Demos of aliases will have a simple demo, and a reference to the file it aliases
|
|
111
|
+
|
|
112
|
+
|
data/HISTORY.md
CHANGED
|
@@ -1,5 +1,180 @@
|
|
|
1
1
|
# Facets Release History
|
|
2
2
|
|
|
3
|
+
## 3.2.0 / 2026-04-01
|
|
4
|
+
|
|
5
|
+
Modernization release targeting Ruby 3.1+. Cleans up long-standing
|
|
6
|
+
compatibility issues and incorporates community contributions.
|
|
7
|
+
|
|
8
|
+
Changes:
|
|
9
|
+
|
|
10
|
+
* New Features
|
|
11
|
+
|
|
12
|
+
* Add `Crypt3` module — pure Ruby crypt(3) implementation (from rubyworks/crypt3).
|
|
13
|
+
Supports md5, sha1, sha256, sha384, sha512, rmd160.
|
|
14
|
+
* Add `Array#to_ranges` to convert arrays to ranges. (PR#265)
|
|
15
|
+
* Add `Array#remove` and `Array#remove!` for count-respecting subtraction. (PR#293)
|
|
16
|
+
* Add `Array#indexes` / `Array#index_all` to find all matching indexes. (PR#294)
|
|
17
|
+
* Add `String#dashcase` for kebab-case conversion. (PR#297)
|
|
18
|
+
* Add `Binding#caller_locations`.
|
|
19
|
+
* Add `Range.intersection` and `Range#intersection` for finding the shared
|
|
20
|
+
region of multiple ranges. Works with any comparable type.
|
|
21
|
+
* Add `Kernel#functor` — block-less method chaining via Functor, replaces `tap` override.
|
|
22
|
+
* Rename `Hash#to_proc` to `Hash#setter` (avoids clash with Ruby 2.3's `Hash#to_proc`
|
|
23
|
+
which does key lookup; Facets' version does attribute assignment).
|
|
24
|
+
* Consolidate `Array#arrange` and `Array#to_ranges`; `to_ranges` is now primary,
|
|
25
|
+
`arrange` and `rangify` are aliases. Now handles mixed ranges and values.
|
|
26
|
+
* Fix `Array#step` to start at index 0 (was n-1); add optional offset parameter.
|
|
27
|
+
|
|
28
|
+
* Improved Features
|
|
29
|
+
|
|
30
|
+
* Adapt `Module#attr_setter` to frozen-string-literal. (PR#287)
|
|
31
|
+
* Update `Binding#__LINE__` and `__FILE__` to use `source_location`.
|
|
32
|
+
* Replace `URI.escape`/`URI.unescape` with `CGI.escape`/`CGI.unescape`.
|
|
33
|
+
* Rewrite `Kernel#callstack`, `#require_all`, `#load_all` to use `caller_locations`
|
|
34
|
+
instead of parsing caller strings with regex.
|
|
35
|
+
* Switch CI from Travis to GitHub Actions.
|
|
36
|
+
* Make `String#underscore` ActiveSupport-compatible (converts `::` to `/`).
|
|
37
|
+
Use `String#snakecase` for pure case conversion without namespace handling.
|
|
38
|
+
* Make `Kernel#try` ActiveSupport-compatible (supports block form and `try!`).
|
|
39
|
+
Facets' Tee/Functor form retained as extra feature.
|
|
40
|
+
|
|
41
|
+
* Bug Fixes
|
|
42
|
+
|
|
43
|
+
* Fix `Math.gini_coefficient` referencing `self` instead of `array` parameter. (PR#302)
|
|
44
|
+
* Fix typo in `Array#after` doc. (PR#283)
|
|
45
|
+
* Fix typo in `String#to_b` doc. (PR#306)
|
|
46
|
+
|
|
47
|
+
* Removals
|
|
48
|
+
|
|
49
|
+
* Remove `Array#**` (`op_pow`) alias for `product` (use `Array#product` directly).
|
|
50
|
+
* Deprecate `Array#occurrence` (use `Enumerable#tally` instead, adopted by Ruby in 2.7).
|
|
51
|
+
* Deprecate `Array#uniq_by!` (use `Array#uniq!(&block)` instead, adopted by Ruby in 1.9.2).
|
|
52
|
+
* Deprecate `Array#nonuniq` / `nonuniq!` (use `Array#duplicates` / `duplicates!` instead).
|
|
53
|
+
* Add `Array#duplicates!` (in-place version of `duplicates`).
|
|
54
|
+
* Remove `Kernel#tap` override. Use `Kernel#tee` for the block-less Functor form.
|
|
55
|
+
* Remove `Enumerable#filter` (conflicts with Ruby's built-in `filter` since 2.6).
|
|
56
|
+
Use `each_with_object` instead, with block arguments reversed:
|
|
57
|
+
`collection.each_with_object([]) { |el, out| out << el if cond }`.
|
|
58
|
+
* Remove Ruby 1.8 compatibility code from `enumerator.rb`.
|
|
59
|
+
* Remove `taint`/`tainted?` references (removed from Ruby in 3.2).
|
|
60
|
+
* Remove `Enumerable#sum` (adopted by Ruby in 2.4).
|
|
61
|
+
For non-numeric cases (e.g. `[[1],[2],[3]]`), use `reduce(:+)` instead.
|
|
62
|
+
* Remove `String#crypt` override (Ruby deprecated `crypt` in 3.2; use `bcrypt` gem instead).
|
|
63
|
+
* Remove `MatchData#match` (adopted by Ruby in 3.1).
|
|
64
|
+
* Remove `Range#overlap?` (adopted by Ruby in 3.3).
|
|
65
|
+
* Remove `Kernel#__DIR__` (adopted by Ruby as `__dir__` in 2.0).
|
|
66
|
+
* Remove `Kernel#instance_exec` (adopted by Ruby in 1.9).
|
|
67
|
+
* Remove `Kernel#singleton_class` (adopted by Ruby in 1.9).
|
|
68
|
+
* Remove `Kernel#p` override (Ruby's `p` returns its arguments since 1.9).
|
|
69
|
+
* Remove `Method#curry` (adopted by Ruby in 2.2).
|
|
70
|
+
* Remove `Array#to_h` (adopted by Ruby in 2.1).
|
|
71
|
+
* Remove `Array#intersection` (clashes with Ruby 2.7's `Array#intersection`).
|
|
72
|
+
Consider `Range.intersection` class method as future replacement.
|
|
73
|
+
* Remove `Hash#except` (adopted by Ruby in 3.0); `except!` and `remove!` retained.
|
|
74
|
+
* Remove `Hash#slice` (adopted by Ruby in 2.5); `slice!` retained.
|
|
75
|
+
Block form removed from both; use `slice(...).select { ... }` instead.
|
|
76
|
+
* Remove `Class#singleton_class?` (adopted by Ruby in 3.2).
|
|
77
|
+
* Remove `Class#subclasses` (adopted by Ruby in 3.1).
|
|
78
|
+
* Remove `Symbol#succ` (adopted by Ruby in 1.9).
|
|
79
|
+
* Remove `File.write` (adopted by Ruby in 1.9).
|
|
80
|
+
* Remove `Process.daemon` (adopted by Ruby in 1.9).
|
|
81
|
+
* Remove `Dir#each_child` (adopted by Ruby in 2.6).
|
|
82
|
+
Note: Ruby's version does not support the custom ignore argument.
|
|
83
|
+
Use `Dir.each_child('/path').reject { |f| ignore.include?(f) }` instead.
|
|
84
|
+
* Remove `Numeric#positive?` and `Numeric#negative?` (adopted by Ruby in 2.3).
|
|
85
|
+
* Remove `Object#itself` (adopted by Ruby in 2.6).
|
|
86
|
+
* Deprecate `Array#standard_deviation` (use `Array#stddev` or `Array#sd`).
|
|
87
|
+
* Deprecate `Struct#attributes` (use `Struct#to_h`, adopted by Ruby in 2.0).
|
|
88
|
+
* Deprecate `UnboundMethod#arguments` (use `UnboundMethod#parameters`, adopted by Ruby in 2.0).
|
|
89
|
+
* Remove `Object#dup!` and `Object#try_dup` (plain `dup` works on all objects since Ruby 2.4).
|
|
90
|
+
* Remove `Exception#set_message` (broken — did not actually change the message).
|
|
91
|
+
* Deprecate `Exception#error_print` (use `Exception#full_message`, adopted by Ruby in 2.5).
|
|
92
|
+
* Deprecate `Comparable#clip` (use `Comparable#clamp`, adopted by Ruby in 2.4).
|
|
93
|
+
* Redefine `Comparable#bound` as alias for `clamp`.
|
|
94
|
+
* Add `Dir.find` as convenience wrapper around Ruby's `Find.find`.
|
|
95
|
+
* Deprecate `Dir.recurse` / `Dir.ls_r` (use `Dir.find` or `Find.find` instead).
|
|
96
|
+
* Deprecate `Proc#compose` and `Proc#*` (use `Proc#<<` for right-to-left composition, Ruby 2.6+).
|
|
97
|
+
* Deprecate `Hash#update_keys` (use `Hash#transform_keys!` or `Hash#rekey!`).
|
|
98
|
+
* Deprecate `Hash#update_values` (use `Hash#transform_values!` or `Hash#revalue!`).
|
|
99
|
+
* Deprecate `Hash#fetch_nested` (use `Hash#dig`, adopted by Ruby in 2.3).
|
|
100
|
+
* Deprecate `Enumerable#compact_map` (use `Enumerable#filter_map`, adopted by Ruby in 2.7).
|
|
101
|
+
* Deprecate `Enumerable#defer` (use `Enumerable#lazy`, adopted by Ruby in 2.0).
|
|
102
|
+
* Deprecate `Enumerable#frequency` (use `Enumerable#tally`, adopted by Ruby in 2.7).
|
|
103
|
+
* Deprecate `Enumerable#hinge` (use `Enumerable#each_with_object`, note: block args reversed).
|
|
104
|
+
* Deprecate `Enumerable#map_with_index` (use `Enumerable#map.with_index`).
|
|
105
|
+
* Deprecate `Enumerable#mash` (use `Enumerable#graph` instead).
|
|
106
|
+
* Deprecate `Enumerable#uniq_by` (use `Enumerable#uniq(&block)`, Ruby 1.9.2+).
|
|
107
|
+
* Redefine `String#lchomp` / `#lchomp!` as aliases for `delete_prefix` / `delete_prefix!`.
|
|
108
|
+
* Rename `Time#trunc` to `Time#floor_to` (parallels `Time#round_to`; avoids confusion
|
|
109
|
+
with Ruby's `Time#floor` which takes sub-second digit precision). `trunc` deprecated.
|
|
110
|
+
* Fix `Binding#[]` and `#[]=` to use `local_variable_get`/`local_variable_set`
|
|
111
|
+
(broken since Ruby 1.9; now works again).
|
|
112
|
+
* Deprecate `Binding#self` (use `Binding#receiver`, adopted by Ruby in 2.6).
|
|
113
|
+
* Deprecate `Module#alias_method_chain` (use `Module#prepend`, Ruby 2.0+).
|
|
114
|
+
* Deprecate `Module#can` (use `Module#extend`).
|
|
115
|
+
* Deprecate `File.null` (use `File::NULL` constant, Ruby 1.9.3+).
|
|
116
|
+
* Deprecate `File.read_binary` (use `File.binread`, Ruby 1.9.3+).
|
|
117
|
+
* Deprecate `Kernel#eigenclass` (use `singleton_class` or `meta_class`; kept in tribute to _why).
|
|
118
|
+
* Deprecate `Kernel#extension`, `#instance_class`, `#qua_class`, `#object_class`
|
|
119
|
+
(use `singleton_class` or `meta_class`).
|
|
120
|
+
* Deprecate `Kernel#object_send` (use `public_send`), `#instance_send` (use `__send__`).
|
|
121
|
+
* Deprecate `Kernel#load_relative` (use `require_relative`).
|
|
122
|
+
* Deprecate `Kernel#returning` (use `Kernel#tap`).
|
|
123
|
+
* Deprecate `Kernel#memo` (use `Module#memoize`; global `$MEMO` is problematic).
|
|
124
|
+
* Update `Kernel#meta_class` to delegate to `singleton_class` internally.
|
|
125
|
+
* Fix dead requires for removed `kernel/singleton_class` in Proc and Kernel.
|
|
126
|
+
* Remove misplaced `applique/file_helpers` from core (test infrastructure).
|
|
127
|
+
* Remove OpenStruct extensions now built into Ruby (`to_h`, `each`, `[]`, `[]=`).
|
|
128
|
+
* Fix OpenStruct#initialize to not use removed `new_ostruct_member`.
|
|
129
|
+
* Add OpenStruct#merge (non-destructive version).
|
|
130
|
+
* Remove deprecated OpenStruct methods (`instance_delegate`, `ostruct_update`, etc.).
|
|
131
|
+
* Deprecate `cloneable.rb` (use `deep_dup`/`deep_clone` instead).
|
|
132
|
+
* Deprecate `continuation.rb` (callcc is obsolete; use Fiber).
|
|
133
|
+
* Deprecate `getoptlong.rb` (bundled gem heading for removal; use OptionParser).
|
|
134
|
+
* Deprecate `load_monitor.rb` (monkey-patches require/load globally).
|
|
135
|
+
* Clean up `random.rb`: remove Array#shuffle/shuffle! (Ruby built-in),
|
|
136
|
+
add Array#sample! (destructive sample), deprecate at_rand/pick (use sample).
|
|
137
|
+
* Fix Pathname#glob to wrap Ruby's built-in, adding symbol flag support.
|
|
138
|
+
* Remove Pathname#empty? (built into Ruby).
|
|
139
|
+
* Deprecate Pathname.null (use Pathname.new(File::NULL)).
|
|
140
|
+
* Fix `Math.kldivergence` (was broken — referenced `self` instead of array parameter).
|
|
141
|
+
* Drop unused `test_files` directive from gemspec. (PR#301)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
## 3.1.0 / 2016-05-10
|
|
145
|
+
|
|
146
|
+
More or less a minor release, but there are some backward incompatabilites
|
|
147
|
+
such as `Hash#except!` which no longer returns the rejected entries (use
|
|
148
|
+
`Hash#remove!` for old behavior).
|
|
149
|
+
|
|
150
|
+
Special thanks to Scott Parrish for all his help getting Facets in tip-top
|
|
151
|
+
shape.
|
|
152
|
+
|
|
153
|
+
Changes:
|
|
154
|
+
|
|
155
|
+
* New Features
|
|
156
|
+
|
|
157
|
+
* Add `Hash#remove!` for old `except!` behavior.
|
|
158
|
+
* Add `Array#standard_deviation`.
|
|
159
|
+
* Add `Array#variance`.
|
|
160
|
+
* Add `Array#average`.
|
|
161
|
+
* Add `Numeric#delimit`.
|
|
162
|
+
|
|
163
|
+
* Improved Features
|
|
164
|
+
|
|
165
|
+
* Change `Hash#except!` to not return rejected entries.
|
|
166
|
+
* Improve definition of Character Set in `String.random`.
|
|
167
|
+
* Add one to denominator of `String#similarity` score.
|
|
168
|
+
* Enhanced download methods.
|
|
169
|
+
* Improvements on compatability with ActiveSupport.
|
|
170
|
+
* Enumerable#from and #thru return empty set when index is out of bounds.
|
|
171
|
+
|
|
172
|
+
* Bug Fixes
|
|
173
|
+
|
|
174
|
+
* Fix `Enumerable#key_by`.
|
|
175
|
+
* Fix `Enumerable#sum` to take initial value.
|
|
176
|
+
|
|
177
|
+
|
|
3
178
|
## 3.0.0 / 2014-11-11
|
|
4
179
|
|
|
5
180
|
This major release has been a long time in coming --too long in fact. As with
|
|
@@ -21,8 +196,10 @@ Changes:
|
|
|
21
196
|
* Add Dir.lookup method
|
|
22
197
|
* Add Enumerator::Lazy#squeeze
|
|
23
198
|
* Add Hash#fetch_nested
|
|
199
|
+
* Add Hash#deep_rekey and Hash#deep_rekey!
|
|
24
200
|
* Add Kernel#instance_extract
|
|
25
201
|
* Add Math#EC for Euler's constant
|
|
202
|
+
* Add Module#alias_class_method
|
|
26
203
|
* Add Pathname#chdir
|
|
27
204
|
* Add Pathname#readline
|
|
28
205
|
* Add Proc.wrap (may become `Kernel#Proc()`)
|
|
@@ -34,6 +211,7 @@ Changes:
|
|
|
34
211
|
* Improved Features
|
|
35
212
|
|
|
36
213
|
* Enumerable#sum argument is initial value.
|
|
214
|
+
* Generalize Enumerable#sum to duck-type on `#+`.
|
|
37
215
|
* Hash#collate can take multiple arguments.
|
|
38
216
|
* Hash#collate no longer flattens automatically.
|
|
39
217
|
* Time#past? and #future? use Time.current.
|
|
@@ -43,6 +221,7 @@ Changes:
|
|
|
43
221
|
|
|
44
222
|
* Rename Object#replace to Object#instance_replace.
|
|
45
223
|
* Rename Range#to_r to Range#to_rng, since #to_r is now for Rational.
|
|
224
|
+
* Rename Kernel#eigen to #meta.
|
|
46
225
|
|
|
47
226
|
* Bug Fixes
|
|
48
227
|
|