facets 3.1.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/HISTORY.md +141 -0
- data/LICENSE.txt +21 -343
- data/README.md +26 -19
- data/lib/core/facets/array/arrange.rb +1 -42
- data/lib/core/facets/array/average.rb +0 -1
- data/lib/core/facets/array/before.rb +1 -1
- data/lib/core/facets/array/delete_first.rb +21 -0
- data/lib/core/facets/array/duplicates.rb +13 -0
- data/lib/core/facets/array/indexes.rb +113 -0
- data/lib/core/facets/array/nonuniq.rb +6 -8
- data/lib/core/facets/array/occurrence.rb +4 -1
- data/lib/core/facets/array/remove.rb +39 -0
- data/lib/core/facets/array/span.rb +29 -0
- data/lib/core/facets/array/split_at.rb +25 -0
- data/lib/core/facets/array/standard_deviation.rb +7 -2
- 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 +3 -3
- 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/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/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/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/null.rb +3 -15
- data/lib/core/facets/file/read_binary.rb +3 -12
- data/lib/core/facets/hash/except.rb +0 -7
- 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 +6 -4
- data/lib/core/facets/kernel/callstack.rb +5 -24
- data/lib/core/facets/kernel/eigenclass.rb +6 -6
- 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/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/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/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 +6 -8
- 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/lchomp.rb +7 -14
- data/lib/core/facets/string/newlines.rb +0 -2
- 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 -1
- 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/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 +1 -1
- data/lib/standard/facets/multiton.rb +1 -1
- 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/tuple.rb +2 -4
- data/lib/standard/facets/uri.rb +3 -2
- metadata +29 -1172
- data/.index +0 -80
- data/.yardopts +0 -10
- 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/after.md +0 -13
- data/demo/core/array/arrange.md +0 -17
- data/demo/core/array/before.md +0 -14
- data/demo/core/array/collapse.md +0 -15
- data/demo/core/array/collisions.md +0 -30
- data/demo/core/array/commonality.md +0 -31
- data/demo/core/array/conjoin.md +0 -47
- data/demo/core/array/contains.md +0 -9
- data/demo/core/array/delete_unless.md +0 -13
- data/demo/core/array/delete_values.md +0 -10
- data/demo/core/array/delete_values_at.md +0 -15
- data/demo/core/array/divide.md +0 -14
- data/demo/core/array/duplicates.md +0 -14
- data/demo/core/array/each_overlap.md +0 -12
- data/demo/core/array/each_pair.md +0 -13
- data/demo/core/array/each_value.md +0 -12
- data/demo/core/array/entropy.md +0 -13
- data/demo/core/array/extract_options.md +0 -13
- data/demo/core/array/first.md +0 -11
- data/demo/core/array/from.md +0 -11
- data/demo/core/array/ideal_entropy.md +0 -11
- data/demo/core/array/intersection.md +0 -11
- data/demo/core/array/last.md +0 -11
- data/demo/core/array/median.md +0 -23
- data/demo/core/array/merge.md +0 -15
- data/demo/core/array/missing.md +0 -10
- data/demo/core/array/mode.md +0 -9
- data/demo/core/array/nonuniq.md +0 -16
- data/demo/core/array/not_empty.md +0 -8
- data/demo/core/array/occur.md +0 -18
- data/demo/core/array/occurrence.md +0 -13
- data/demo/core/array/only.md +0 -9
- data/demo/core/array/op_pow.md +0 -10
- data/demo/core/array/pad.md +0 -28
- data/demo/core/array/peek.md +0 -10
- data/demo/core/array/poke.md +0 -15
- data/demo/core/array/probability +0 -8
- data/demo/core/array/pull.md +0 -10
- data/demo/core/array/recurse.md +0 -10
- data/demo/core/array/recursively.md +0 -20
- data/demo/core/array/reject_values.md +0 -10
- data/demo/core/array/splice.md +0 -14
- data/demo/core/array/split.md +0 -13
- data/demo/core/array/squeeze.md +0 -14
- data/demo/core/array/step.md +0 -16
- data/demo/core/array/store.md +0 -9
- data/demo/core/array/thru.md +0 -12
- data/demo/core/array/to_h.md +0 -11
- data/demo/core/array/traverse.md +0 -20
- data/demo/core/array/uniq_by.md +0 -16
- data/demo/core/array/unique_permutation.md +0 -14
- data/demo/core/array/zip.md +0 -8
- data/demo/core/binding/caller.md +0 -57
- data/demo/core/binding/defined.md +0 -10
- data/demo/core/binding/opvars.md +0 -16
- data/demo/core/binding/self.md +0 -6
- data/demo/core/class/descendants.md +0 -13
- data/demo/core/class/to_proc.md +0 -11
- data/demo/core/comparable/at_least.md +0 -11
- data/demo/core/comparable/at_most.md +0 -11
- data/demo/core/comparable/bound.md +0 -13
- data/demo/core/comparable/cap.md +0 -11
- data/demo/core/comparable/clip.md +0 -29
- data/demo/core/comparable/cmp.md +0 -18
- data/demo/core/comparable/op_get.md +0 -32
- data/demo/core/dir/ascend.md +0 -24
- data/demo/core/dir/descend.md +0 -16
- data/demo/core/dir/multiglob.md +0 -41
- data/demo/core/dir/parent.md +0 -6
- data/demo/core/dir/recurse.md +0 -41
- data/demo/core/exception/detail.md +0 -19
- data/demo/core/facets.md +0 -6
- data/demo/core/filetest/root.md +0 -13
- data/demo/core/hash/recursively.md +0 -21
- data/demo/core/indexable.md +0 -95
- data/demo/core/integer/bitmask.md +0 -46
- data/demo/core/integer/factorial.md +0 -10
- data/demo/core/integer/length.md +0 -7
- data/demo/core/integer/multiple.md +0 -12
- data/demo/core/integer/of.md +0 -11
- data/demo/core/integer/ordinal.md +0 -11
- data/demo/core/integer/times_collect.md +0 -9
- data/demo/core/matchdata/match.md +0 -7
- data/demo/core/matchdata/matchset.md +0 -7
- data/demo/core/matchdata/matchtree.md +0 -10
- data/demo/core/module/cattr.md +0 -43
- data/demo/core/module/class_extend.md +0 -64
- data/demo/core/module/class_inheritor.md +0 -126
- data/demo/core/module/copy_inheritor.md +0 -30
- data/demo/core/module/include_as.md +0 -31
- data/demo/core/module/method_space.md +0 -24
- data/demo/core/string/acronym.md +0 -9
- data/demo/core/string/align.md +0 -34
- data/demo/core/string/ascii_only.md +0 -37
- data/demo/core/string/bracket.md +0 -35
- data/demo/core/string/camelcase.md +0 -47
- data/demo/core/string/capitalized.md +0 -27
- data/demo/core/string/characters.md +0 -11
- data/demo/core/string/cleanlines.md +0 -10
- data/demo/core/string/cleave.md +0 -49
- data/demo/core/string/compress_lines.md +0 -22
- data/demo/core/string/crypt.md +0 -15
- data/demo/core/string/divide.md +0 -9
- data/demo/core/string/each_word.md +0 -11
- data/demo/core/string/edit_distance.md +0 -15
- data/demo/core/string/exclude.md +0 -15
- data/demo/core/string/expand_tabs.md +0 -69
- data/demo/core/string/fold.md +0 -14
- data/demo/core/string/indent.md +0 -65
- data/demo/core/string/index_all.md +0 -14
- data/demo/core/string/interpolate.md +0 -8
- data/demo/core/string/lchomp.md +0 -14
- data/demo/core/string/line_wrap.md +0 -7
- data/demo/core/string/lowercase.md +0 -12
- data/demo/core/string/methodize.md +0 -22
- data/demo/core/string/modulize.md +0 -22
- data/demo/core/string/mscan.md +0 -10
- data/demo/core/string/natcmp.md +0 -10
- data/demo/core/string/nchar.md +0 -9
- data/demo/core/string/newlines.md +0 -9
- data/demo/core/string/number.md +0 -27
- data/demo/core/string/op_div.md +0 -10
- data/demo/core/string/op_sub.md +0 -7
- data/demo/core/string/pathize.md +0 -22
- data/demo/core/string/quote.md +0 -20
- data/demo/core/string/random.md +0 -25
- data/demo/core/string/range.md +0 -19
- data/demo/core/string/remove.md +0 -33
- data/demo/core/string/rewrite.md +0 -9
- data/demo/core/string/shatter.md +0 -9
- data/demo/core/string/similarity.md +0 -12
- data/demo/core/string/snakecase.md +0 -14
- data/demo/core/string/splice.md +0 -28
- data/demo/core/string/squish.md +0 -27
- data/demo/core/string/store.md +0 -10
- data/demo/core/string/subtract.md +0 -8
- data/demo/core/string/titlecase.md +0 -8
- data/demo/core/string/to_re.md +0 -22
- data/demo/core/string/trim.md +0 -92
- data/demo/core/string/unbracket.md +0 -24
- data/demo/core/string/underscore.md +0 -17
- data/demo/core/string/unfold.md +0 -9
- data/demo/core/string/unindent.md +0 -65
- data/demo/core/string/unquote.md +0 -6
- data/demo/core/string/uppercase.md +0 -15
- data/demo/core/string/variablize.md +0 -7
- data/demo/core/string/word_wrap.md +0 -54
- data/demo/core/string/words.md +0 -13
- data/demo/core/string/xor.md +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 -12
- data/lib/core/facets/array/to_h.rb +0 -19
- 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 -40
- 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/symbol/succ.rb +0 -23
- data/lib/core/facets.yml +0 -80
- 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_arrange.rb +0 -37
- data/test/core/array/test_average.rb +0 -16
- data/test/core/array/test_before.rb +0 -48
- data/test/core/array/test_collapse.rb +0 -23
- 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_delete_unless.rb +0 -17
- data/test/core/array/test_delete_values.rb +0 -31
- data/test/core/array/test_divide.rb +0 -24
- data/test/core/array/test_duplicates.rb +0 -29
- data/test/core/array/test_each_overlap.rb +0 -31
- data/test/core/array/test_each_pair.rb +0 -16
- data/test/core/array/test_each_value.rb +0 -16
- 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_from.rb +0 -42
- 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_op_pow.rb +0 -13
- data/test/core/array/test_pad.rb +0 -40
- data/test/core/array/test_peek.rb +0 -28
- data/test/core/array/test_poke.rb +0 -21
- data/test/core/array/test_probability.rb +0 -18
- 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_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_standard_deviation.rb +0 -18
- data/test/core/array/test_step.rb +0 -28
- data/test/core/array/test_store.rb +0 -22
- data/test/core/array/test_to_h.rb +0 -14
- data/test/core/array/test_traverse.rb +0 -26
- data/test/core/array/test_uniq_by.rb +0 -24
- data/test/core/array/test_unique_permutation.rb +0 -23
- data/test/core/array/test_variance.rb +0 -17
- data/test/core/array/test_zip.rb +0 -13
- data/test/core/binding/test_caller.rb +0 -69
- data/test/core/binding/test_defined.rb +0 -18
- 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.rb +0 -36
- data/test/core/enumerable/test_compact_map.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_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_hashify.rb +0 -113
- 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_occur.rb +0 -40
- 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_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 -34
- 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_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_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_factorial.rb +0 -30
- data/test/core/integer/test_multiple.rb +0 -16
- 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 -34
- 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_replace.rb +0 -47
- 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_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/numeric/test_approx.rb +0 -26
- data/test/core/numeric/test_delimit.rb +0 -68
- data/test/core/numeric/test_distance.rb +0 -16
- data/test/core/numeric/test_length.rb +0 -16
- data/test/core/numeric/test_round_to.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_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_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_nudge.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_rng.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_acronym.rb +0 -14
- data/test/core/string/test_align.rb +0 -32
- data/test/core/string/test_ascii_only.rb +0 -51
- data/test/core/string/test_bracket.rb +0 -37
- 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 -27
- data/test/core/string/test_crypt.rb +0 -17
- data/test/core/string/test_divide.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_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 -22
- 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_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_random.rb +0 -25
- data/test/core/string/test_range.rb +0 -35
- data/test/core/string/test_remove.rb +0 -50
- 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 -22
- 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_store.rb +0 -16
- data/test/core/string/test_subtract.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/struct/test_replace.rb +0 -18
- 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_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/unboundmethod/test_arguments.rb +0 -25
- 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 -105
- 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
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
class Hash
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# @deprecated Use Hash#transform_values! (Ruby 2.4+) or Hash#revalue! instead.
|
|
4
4
|
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# h #=> { :a=>2, :b=>3 }
|
|
8
|
-
#
|
|
9
|
-
# CREDIT: Trans
|
|
10
|
-
|
|
11
|
-
def update_values #:yield:
|
|
5
|
+
def update_values(&block)
|
|
6
|
+
warn "Hash#update_values is deprecated. Use Hash#transform_values! or Hash#revalue! instead.", uplevel: 1
|
|
12
7
|
if block_given?
|
|
13
|
-
|
|
8
|
+
transform_values!(&block)
|
|
14
9
|
else
|
|
15
10
|
to_enum(:update_values)
|
|
16
11
|
end
|
|
17
12
|
end
|
|
18
13
|
|
|
19
14
|
end
|
|
20
|
-
|
|
@@ -199,19 +199,21 @@ module Indexable
|
|
|
199
199
|
splice(-1)
|
|
200
200
|
end
|
|
201
201
|
|
|
202
|
-
# A
|
|
203
|
-
# last index of the indexable object
|
|
204
|
-
#
|
|
202
|
+
# A shortening of "ends at". Returns the
|
|
203
|
+
# last index of the indexable object,
|
|
204
|
+
# or nil if there are no elements.
|
|
205
205
|
#
|
|
206
206
|
# [1,2,3,4,5].ends #=> 4
|
|
207
207
|
#
|
|
208
|
-
# This nearly equivalent to +size - 1+.
|
|
208
|
+
# This is nearly equivalent to +size - 1+.
|
|
209
209
|
#
|
|
210
210
|
def ends
|
|
211
211
|
return nil if size == 0
|
|
212
212
|
size - 1
|
|
213
213
|
end
|
|
214
214
|
|
|
215
|
+
alias_method :last_index, :ends
|
|
216
|
+
|
|
215
217
|
# Returns the positive ordinal index given
|
|
216
218
|
# a cardinal position, 1 to n or -n to -1.
|
|
217
219
|
#
|
|
@@ -3,12 +3,7 @@ module Kernel
|
|
|
3
3
|
alias_method :pp_callstack, :caller
|
|
4
4
|
alias_method :pp_call_stack, :caller
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
# returning an array composed of:
|
|
8
|
-
#
|
|
9
|
-
# * file (String)
|
|
10
|
-
# * lineno (Integer)
|
|
11
|
-
# * method (Symbol)
|
|
6
|
+
# Returns the call stack as an array of [file, lineno, method] entries.
|
|
12
7
|
#
|
|
13
8
|
# For example, from irb
|
|
14
9
|
#
|
|
@@ -16,27 +11,14 @@ module Kernel
|
|
|
16
11
|
#
|
|
17
12
|
# _produces_ ...
|
|
18
13
|
#
|
|
19
|
-
# [["(irb)", 2, :irb_binding],
|
|
20
|
-
# ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, :irb_binding],
|
|
21
|
-
# ["/usr/lib/ruby/1.8/irb/workspace.rb", 52, nil]]
|
|
22
|
-
#
|
|
23
|
-
# Note: If the user decides to redefine caller() to output data
|
|
24
|
-
# in a different format, _prior_ to requiring this, then the
|
|
25
|
-
# results will be indeterminate.
|
|
14
|
+
# [["(irb)", 2, :irb_binding], ...]
|
|
26
15
|
#
|
|
27
16
|
# CREDIT: Trans
|
|
28
17
|
|
|
29
18
|
def callstack(level = 1)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
file, lineno, method = call_str.split(':')
|
|
34
|
-
if method =~ /in `(.*)'/ then
|
|
35
|
-
method = $1.intern()
|
|
36
|
-
end
|
|
37
|
-
stack << [file, lineno.to_i, method]
|
|
38
|
-
}
|
|
39
|
-
stack
|
|
19
|
+
caller_locations(level).map do |loc|
|
|
20
|
+
[loc.path, loc.lineno, loc.label&.to_sym]
|
|
21
|
+
end
|
|
40
22
|
end
|
|
41
23
|
|
|
42
24
|
alias_method :call_stack, :callstack
|
|
@@ -53,4 +35,3 @@ class Binding
|
|
|
53
35
|
|
|
54
36
|
alias_method :call_stack, :callstack
|
|
55
37
|
end
|
|
56
|
-
|
|
@@ -3,13 +3,13 @@ module Kernel
|
|
|
3
3
|
# During this trying time when no one can get their
|
|
4
4
|
# techie catchwords to stick to the refrigerator no
|
|
5
5
|
# matter how hard they slap it with the enchanted
|
|
6
|
-
# magnetic spatula, it
|
|
6
|
+
# magnetic spatula, it's good to know that the
|
|
7
7
|
# contrived phrases really do fly, graceful and
|
|
8
8
|
# unclasped and bearing north toward chilled shrimp.
|
|
9
|
-
# I know what my Hallowe
|
|
9
|
+
# I know what my Hallowe'en pumpkin is going to say.
|
|
10
10
|
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
11
|
+
# @deprecated Use singleton_class or meta_class instead.
|
|
12
|
+
# Kept in tribute to WhyTheLuckyStiff who coined the term.
|
|
13
13
|
#
|
|
14
14
|
# CREDIT: WhyTheLuckyStiff
|
|
15
15
|
#
|
|
@@ -17,8 +17,8 @@ module Kernel
|
|
|
17
17
|
# require 'facets/kernel/eigenclass'
|
|
18
18
|
#
|
|
19
19
|
def eigenclass
|
|
20
|
-
|
|
20
|
+
warn "Kernel#eigenclass is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
|
|
21
|
+
singleton_class
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
end
|
|
24
|
-
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
# Don't say it!
|
|
6
|
-
#
|
|
3
|
+
# @deprecated Use singleton_class or meta_class instead.
|
|
7
4
|
def extension
|
|
8
|
-
|
|
5
|
+
warn "Kernel#extension is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
|
|
6
|
+
singleton_class
|
|
9
7
|
end
|
|
10
8
|
|
|
11
9
|
end
|
|
12
|
-
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'facets/functor'
|
|
2
|
+
|
|
3
|
+
module Kernel
|
|
4
|
+
|
|
5
|
+
# Returns a Functor that intercepts method calls, forwards
|
|
6
|
+
# them to self for side effects, and returns self. This is like
|
|
7
|
+
# a block-less version of #tap that allows method chaining.
|
|
8
|
+
#
|
|
9
|
+
# YAML.functor.load_file('foo.yml').load_file('bar.yml')
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
def functor
|
|
13
|
+
Functor.new{ |op,*a,&b| self.send(op, *a, &b); self }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -1,26 +1,10 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
# internal (eg private) access to the object.
|
|
5
|
-
# Kernel extension using instance_ prefix which is beneficial
|
|
6
|
-
# to separation of metaprogramming from general programming.
|
|
7
|
-
# object_ methods, in contrast to the instance_ methods,
|
|
8
|
-
# do not access internal state.
|
|
9
|
-
|
|
10
|
-
# Easy access to an object qua class, otherwise known
|
|
11
|
-
# as the object's metaclass or singleton class. This
|
|
12
|
-
# implemnetation alwasy returns the class, even if a
|
|
13
|
-
# block is provided to eval against it...
|
|
14
|
-
#
|
|
15
|
-
# It is what it is.
|
|
16
|
-
# But I think I like this one best.
|
|
17
|
-
#
|
|
18
|
-
# CREDIT: Trans
|
|
19
|
-
|
|
3
|
+
# @deprecated Use singleton_class or meta_class instead.
|
|
20
4
|
def instance_class(&block)
|
|
21
|
-
|
|
22
|
-
(
|
|
5
|
+
warn "Kernel#instance_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
|
|
6
|
+
singleton_class.module_eval(&block) if block
|
|
7
|
+
singleton_class
|
|
23
8
|
end
|
|
24
9
|
|
|
25
10
|
end
|
|
26
|
-
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
3
|
+
# @deprecated Use __send__ instead.
|
|
4
|
+
def instance_send(name, *args, &blk)
|
|
5
|
+
warn "Kernel#instance_send is deprecated. Use __send__ instead.", uplevel: 1
|
|
6
|
+
__send__(name, *args, &blk)
|
|
7
|
+
end
|
|
5
8
|
|
|
6
9
|
end
|
|
7
|
-
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def load_relative(relative_feature, safe=nil)
|
|
12
|
-
c = caller.first
|
|
13
|
-
fail "Can't parse #{c}" unless c.rindex(/:\d+(:in `.*')?$/)
|
|
14
|
-
file = $` # File.dirname(c)
|
|
15
|
-
if /\A\((.*)\)/ =~ file # eval, etc.
|
|
16
|
-
raise LoadError, "require_relative is called in #{$1}"
|
|
17
|
-
end
|
|
18
|
-
absolute = File.expand_path(relative_feature, File.dirname(file))
|
|
19
|
-
load absolute, safe
|
|
20
|
-
end
|
|
21
|
-
|
|
3
|
+
# @deprecated Use require_relative for requires; for load, use
|
|
4
|
+
# an absolute path via File.expand_path.
|
|
5
|
+
def load_relative(relative_feature, safe=nil)
|
|
6
|
+
warn "Kernel#load_relative is deprecated.", uplevel: 1
|
|
7
|
+
loc = caller_locations(1, 1).first
|
|
8
|
+
file = loc.absolute_path || loc.path
|
|
9
|
+
absolute = File.expand_path(relative_feature, File.dirname(file))
|
|
10
|
+
load absolute, safe
|
|
22
11
|
end
|
|
23
12
|
|
|
24
13
|
end
|
|
25
|
-
|
|
@@ -1,35 +1,14 @@
|
|
|
1
|
-
require 'facets/binding/eval'
|
|
2
|
-
require 'facets/kernel/__method__'
|
|
3
|
-
|
|
4
1
|
module Kernel
|
|
5
2
|
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# Memoize a method.
|
|
10
|
-
#
|
|
11
|
-
# class MemoExample
|
|
12
|
-
# attr_accessor :a
|
|
13
|
-
# def m
|
|
14
|
-
# memo{ @a }
|
|
15
|
-
# end
|
|
16
|
-
# end
|
|
17
|
-
#
|
|
18
|
-
# ex = MemoExample.new
|
|
19
|
-
#
|
|
20
|
-
# ex.a = 10
|
|
21
|
-
# ex.m #=> 10
|
|
22
|
-
#
|
|
23
|
-
# ex.a = 20
|
|
24
|
-
# ex.m #=> 10
|
|
25
|
-
#
|
|
26
|
-
# NOTE: This method is not a common core extension and is not
|
|
27
|
-
# loaded automatically when using <code>require 'facets'</code>.
|
|
3
|
+
# @deprecated Use Module#memoize instead, which provides proper
|
|
4
|
+
# per-object memoization without a global variable.
|
|
28
5
|
#
|
|
29
6
|
# @uncommon
|
|
30
7
|
# require 'facets/kernel/memo'
|
|
31
8
|
#
|
|
32
9
|
def memo(*args, &block)
|
|
10
|
+
warn "Kernel#memo is deprecated. Use Module#memoize instead.", uplevel: 1
|
|
11
|
+
$MEMO ||= {}
|
|
33
12
|
if args.empty?
|
|
34
13
|
args = block.binding.eval('[self, __method__]')
|
|
35
14
|
end
|
|
@@ -41,4 +20,3 @@ module Kernel
|
|
|
41
20
|
end
|
|
42
21
|
|
|
43
22
|
end
|
|
44
|
-
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
# Easy access to an object's
|
|
4
|
-
#
|
|
5
|
-
#
|
|
3
|
+
# Easy access to an object's singleton class, with optional block eval.
|
|
4
|
+
#
|
|
5
|
+
# obj.meta_class #=> #<Class:obj>
|
|
6
|
+
# obj.meta_class { def foo; end }
|
|
7
|
+
#
|
|
8
|
+
# This is a concise alternative to Ruby's `singleton_class` that also
|
|
9
|
+
# accepts a block for class_eval.
|
|
10
|
+
#
|
|
6
11
|
def meta_class(&block)
|
|
7
12
|
if block_given?
|
|
8
|
-
|
|
13
|
+
singleton_class.class_eval(&block)
|
|
9
14
|
else
|
|
10
|
-
|
|
15
|
+
singleton_class
|
|
11
16
|
end
|
|
12
17
|
end
|
|
13
18
|
|
|
14
|
-
# The non-underscored form of #meta_class if faily common.
|
|
15
19
|
alias_method :metaclass, :meta_class
|
|
16
20
|
|
|
17
21
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
# @deprecated Use __class__ instead.
|
|
4
|
+
def object_class
|
|
5
|
+
warn "Kernel#object_class is deprecated. Use __class__ instead.", uplevel: 1
|
|
6
|
+
self.class
|
|
7
|
+
end
|
|
8
8
|
|
|
9
9
|
end
|
|
10
|
-
|
|
@@ -1,30 +1,9 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# end
|
|
9
|
-
#
|
|
10
|
-
# obj = SendExample.new
|
|
11
|
-
#
|
|
12
|
-
# expect NoMethodError do
|
|
13
|
-
# obj.object_send(:foo)
|
|
14
|
-
# end
|
|
15
|
-
#
|
|
16
|
-
# DEPRECATED: Use #public_send instead.
|
|
17
|
-
|
|
18
|
-
alias object_send public_send rescue nil
|
|
19
|
-
|
|
20
|
-
#def object_send(name, *args, &blk)
|
|
21
|
-
# #instance_eval "self.#{name}(*args)"
|
|
22
|
-
# if respond_to?(name)
|
|
23
|
-
# __send__(name, *args, &blk)
|
|
24
|
-
# else
|
|
25
|
-
# __send__(:method_missing, name, *args, &blk)
|
|
26
|
-
# end
|
|
27
|
-
#end
|
|
3
|
+
# @deprecated Use public_send instead (built-in since Ruby 1.9.2).
|
|
4
|
+
def object_send(name, *args, &blk)
|
|
5
|
+
warn "Kernel#object_send is deprecated. Use public_send instead.", uplevel: 1
|
|
6
|
+
public_send(name, *args, &blk)
|
|
7
|
+
end
|
|
28
8
|
|
|
29
9
|
end
|
|
30
|
-
|
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
# singleton class. #qua_class can also take a block.
|
|
5
|
-
#
|
|
6
|
-
# string = "Hello World"
|
|
7
|
-
#
|
|
8
|
-
# string.qua_class do
|
|
9
|
-
# def important
|
|
10
|
-
# self + "!"
|
|
11
|
-
# end
|
|
12
|
-
# end
|
|
13
|
-
#
|
|
14
|
-
# string.important #=> "Hello World!"
|
|
15
|
-
#
|
|
16
|
-
# Yes, another one.
|
|
17
|
-
#
|
|
18
|
-
# CREDIT: Trans
|
|
19
|
-
|
|
3
|
+
# @deprecated Use singleton_class or meta_class instead.
|
|
20
4
|
def qua_class(&block)
|
|
5
|
+
warn "Kernel#qua_class is deprecated. Use singleton_class or meta_class instead.", uplevel: 1
|
|
21
6
|
if block_given?
|
|
22
|
-
|
|
7
|
+
singleton_class.class_eval(&block)
|
|
23
8
|
else
|
|
24
|
-
|
|
9
|
+
singleton_class
|
|
25
10
|
end
|
|
26
11
|
end
|
|
27
12
|
|
|
28
|
-
# The +qua_class+ method can also be written +quaclass+.
|
|
29
13
|
alias_method :quaclass, :qua_class
|
|
30
14
|
|
|
31
15
|
end
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
# Require a pattern of files
|
|
4
|
-
# This makes
|
|
3
|
+
# Require a pattern of files relative to the current file.
|
|
4
|
+
# This makes it easy to require an entire directory, for instance:
|
|
5
5
|
#
|
|
6
6
|
# require_all 'core_ext/*'
|
|
7
7
|
#
|
|
8
|
-
# NOTE: This method used to allow glob-based requires from the $LOAD_PATH,
|
|
9
|
-
# but this was deprecated in favor of relative requiring only, as it is
|
|
10
|
-
# consider the typical usecase, and globbing from the $LOAD_PATH is a
|
|
11
|
-
# bit dangerous. Better options exist for globbing the $LOAD_PATH such as
|
|
12
|
-
# the +plugins+ gem.
|
|
13
8
|
|
|
14
9
|
def require_all(pattern)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if /\A\((.*)\)/ =~ file # eval, etc.
|
|
19
|
-
raise LoadError, "require_relative is called in #{$1}"
|
|
20
|
-
end
|
|
10
|
+
loc = caller_locations(1, 1).first
|
|
11
|
+
file = loc.absolute_path || loc.path
|
|
12
|
+
raise LoadError, "require_all is called in #{loc.label}" unless file
|
|
21
13
|
glob = File.expand_path(pattern, File.dirname(file))
|
|
22
14
|
Dir.glob(glob).each do |absolute|
|
|
23
15
|
require absolute
|
|
@@ -26,12 +18,9 @@ module Kernel
|
|
|
26
18
|
|
|
27
19
|
# Same as #require_all, but for #load.
|
|
28
20
|
def load_all(pattern, safe=nil)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if /\A\((.*)\)/ =~ file # eval, etc.
|
|
33
|
-
raise LoadError, "require_relative is called in #{$1}"
|
|
34
|
-
end
|
|
21
|
+
loc = caller_locations(1, 1).first
|
|
22
|
+
file = loc.absolute_path || loc.path
|
|
23
|
+
raise LoadError, "load_all is called in #{loc.label}" unless file
|
|
35
24
|
glob = File.expand_path(pattern, File.dirname(file))
|
|
36
25
|
Dir.glob(glob).each do |absolute|
|
|
37
26
|
load absolute, safe
|
|
@@ -39,4 +28,3 @@ module Kernel
|
|
|
39
28
|
end
|
|
40
29
|
|
|
41
30
|
end
|
|
42
|
-
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
module Kernel
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# @deprecated Use Kernel#tap instead (built-in since Ruby 1.9).
|
|
4
4
|
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# book = returning book_class.new do |book|
|
|
8
|
-
# book.title = "Imperium"
|
|
9
|
-
# book.author = "Ulick Varange"
|
|
10
|
-
# end
|
|
11
|
-
#
|
|
12
|
-
# book.class #=> book_class
|
|
13
|
-
#
|
|
14
|
-
# Technically, #returning probably should force the return of
|
|
15
|
-
# the stated object irregardless of any return statements that
|
|
16
|
-
# might appear within it's block. This might differentiate
|
|
17
|
-
# #returning from #with, however it also would require
|
|
18
|
-
# implementation in Ruby itself.
|
|
19
|
-
#
|
|
20
|
-
# CREDIT: Mikael Brockman
|
|
21
|
-
|
|
22
|
-
def returning(obj=self) #:yield:
|
|
5
|
+
def returning(obj=self)
|
|
6
|
+
warn "Kernel#returning is deprecated. Use Kernel#tap instead.", uplevel: 1
|
|
23
7
|
yield obj
|
|
24
8
|
obj
|
|
25
9
|
end
|
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# The tap K-Combinator. This yields self -and- returns self.
|
|
6
|
-
#
|
|
7
|
-
# 'foo.yml'.tap{ |f| YAML.load(f) } #=> 'foo.yml'
|
|
8
|
-
#
|
|
9
|
-
# Unlike Ruby's definition, this rendition can be used as a higher
|
|
10
|
-
# order message. This form allows a single call before returning
|
|
11
|
-
# the receiver.
|
|
12
|
-
#
|
|
13
|
-
# YAML.tap.load_file('foo.yml').load_file('bar.yml')
|
|
14
|
-
#
|
|
15
|
-
# IMPORTANT: This is one of few core overrides in Facets.
|
|
16
|
-
|
|
17
|
-
def tap #:yield:
|
|
18
|
-
if block_given?
|
|
19
|
-
yield(self)
|
|
20
|
-
self
|
|
21
|
-
else
|
|
22
|
-
Functor.new{ |op,*a,&b| self.send(op, *a, &b); self }
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Old Definition:
|
|
27
|
-
#
|
|
28
|
-
# def tap #:yield:
|
|
29
|
-
# if block_given?
|
|
30
|
-
# b.arity == 1 ? yield(self) : instance_eval(&b)
|
|
31
|
-
# end
|
|
32
|
-
# return self
|
|
33
|
-
# end
|
|
34
|
-
#
|
|
35
|
-
|
|
36
|
-
end
|
|
1
|
+
# Facets no longer overrides Kernel#tap. Use Kernel#functor instead
|
|
2
|
+
# for the block-less Functor form.
|
|
3
|
+
require 'facets/kernel/functor'
|
|
@@ -3,38 +3,36 @@ require 'facets/functor'
|
|
|
3
3
|
module Kernel
|
|
4
4
|
|
|
5
5
|
# Invokes the method identified by the symbol +method+, passing it any
|
|
6
|
-
# arguments
|
|
7
|
-
# <tt>Object#send</tt> does.
|
|
6
|
+
# arguments and/or the block specified.
|
|
8
7
|
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
# is a +nil+ object or NilClass.
|
|
8
|
+
# Unlike regular send, a +NoMethodError+ exception will *not* be raised
|
|
9
|
+
# if the receiving object is +nil+ (see NilClass#try below).
|
|
12
10
|
#
|
|
13
|
-
#
|
|
11
|
+
# Compatible with ActiveSupport's #try, plus an additional Functor
|
|
12
|
+
# form when called with no arguments and no block.
|
|
14
13
|
#
|
|
15
|
-
# @example
|
|
16
|
-
#
|
|
17
|
-
# @example
|
|
18
|
-
#
|
|
19
|
-
# or:
|
|
20
|
-
#
|
|
21
|
-
# @example ? @example.name : nil
|
|
22
|
-
#
|
|
23
|
-
# But with try
|
|
24
|
-
#
|
|
25
|
-
# @example.try(:name) #=> "bob"
|
|
26
|
-
#
|
|
27
|
-
# or
|
|
28
|
-
#
|
|
29
|
-
# @example.try.name #=> "bob"
|
|
30
|
-
#
|
|
31
|
-
# It also accepts arguments and a block, for the method it is trying:
|
|
32
|
-
#
|
|
33
|
-
# @people.try(:collect){ |p| p.name }
|
|
14
|
+
# @example.try(:name) #=> "bob"
|
|
15
|
+
# @example.try { |o| o.name } #=> "bob" (ActiveSupport block form)
|
|
16
|
+
# @example.try.name #=> "bob" (Facets Functor form)
|
|
34
17
|
#
|
|
35
18
|
def try(method=nil, *args, &block)
|
|
36
19
|
if method
|
|
37
20
|
__send__(method, *args, &block)
|
|
21
|
+
elsif block_given?
|
|
22
|
+
yield self
|
|
23
|
+
else
|
|
24
|
+
self
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Like #try, but raises NoMethodError if the method doesn't exist
|
|
29
|
+
# (unless receiver is nil). Compatible with ActiveSupport's #try!.
|
|
30
|
+
#
|
|
31
|
+
def try!(method=nil, *args, &block)
|
|
32
|
+
if method
|
|
33
|
+
public_send(method, *args, &block)
|
|
34
|
+
elsif block_given?
|
|
35
|
+
yield self
|
|
38
36
|
else
|
|
39
37
|
self
|
|
40
38
|
end
|
|
@@ -46,13 +44,25 @@ end
|
|
|
46
44
|
class NilClass
|
|
47
45
|
|
|
48
46
|
# See Kernel#try.
|
|
49
|
-
def try(method=nil, *args)
|
|
47
|
+
def try(method=nil, *args, &block)
|
|
50
48
|
if method
|
|
51
49
|
nil
|
|
50
|
+
elsif block_given?
|
|
51
|
+
nil
|
|
52
52
|
else
|
|
53
|
-
Functor.new{ nil }
|
|
53
|
+
Functor.new { nil }
|
|
54
54
|
end
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
# See Kernel#try!.
|
|
58
|
+
def try!(method=nil, *args, &block)
|
|
59
|
+
if method
|
|
60
|
+
nil
|
|
61
|
+
elsif block_given?
|
|
62
|
+
nil
|
|
63
|
+
else
|
|
64
|
+
Functor.new { nil }
|
|
65
|
+
end
|
|
66
|
+
end
|
|
58
67
|
|
|
68
|
+
end
|
data/lib/core/facets/kernel.rb
CHANGED
|
@@ -8,7 +8,6 @@ require_relative 'kernel/callstack.rb'
|
|
|
8
8
|
require_relative 'kernel/call_stack.rb'
|
|
9
9
|
require_relative 'kernel/case.rb'
|
|
10
10
|
require_relative 'kernel/complete.rb'
|
|
11
|
-
require_relative 'kernel/constant.rb'
|
|
12
11
|
require_relative 'kernel/d.rb'
|
|
13
12
|
require_relative 'kernel/deep_clone.rb'
|
|
14
13
|
require_relative 'kernel/deep_copy.rb'
|
|
@@ -48,7 +47,6 @@ require_relative 'kernel/not_nil.rb'
|
|
|
48
47
|
require_relative 'kernel/object_class.rb'
|
|
49
48
|
require_relative 'kernel/object_hexid.rb'
|
|
50
49
|
require_relative 'kernel/object_send.rb'
|
|
51
|
-
require_relative 'kernel/p.rb'
|
|
52
50
|
require_relative 'kernel/presence.rb'
|
|
53
51
|
require_relative 'kernel/present.rb'
|
|
54
52
|
require_relative 'kernel/qua_class.rb'
|
|
@@ -57,8 +55,8 @@ require_relative 'kernel/respond.rb'
|
|
|
57
55
|
require_relative 'kernel/returning.rb'
|
|
58
56
|
require_relative 'kernel/silence.rb'
|
|
59
57
|
require_relative 'kernel/silence_warnings.rb'
|
|
60
|
-
require_relative 'kernel/singleton_class.rb'
|
|
61
58
|
require_relative 'kernel/super_method.rb'
|
|
59
|
+
require_relative 'kernel/functor.rb'
|
|
62
60
|
require_relative 'kernel/tap.rb'
|
|
63
61
|
require_relative 'kernel/temporarily.rb'
|
|
64
62
|
#require_relative 'kernel/trap_chain.rb' # uncommon
|
|
@@ -70,7 +68,7 @@ require_relative 'kernel/writers.rb'
|
|
|
70
68
|
#require_relative 'kernel/y.rb' # uncommon
|
|
71
69
|
require_relative 'kernel/yes.rb'
|
|
72
70
|
require_relative 'kernel/__class__.rb'
|
|
73
|
-
require_relative 'kernel/__dir__.rb'
|
|
71
|
+
#require_relative 'kernel/__dir__.rb' # removed, use Ruby's built-in __dir__
|
|
74
72
|
require_relative 'kernel/__get__.rb'
|
|
75
73
|
require_relative 'kernel/__set__.rb'
|
|
76
74
|
|
data/lib/core/facets/lazy.rb
CHANGED