mack-facets 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/gems.rb +25 -0
- data/lib/gems/english-0.3.1/VERSION +1 -0
- data/lib/gems/english-0.3.1/lib/english/array.rb +48 -0
- data/lib/gems/english-0.3.1/lib/english/censor.rb +76 -0
- data/lib/gems/english-0.3.1/lib/english/double_metaphone.rb +353 -0
- data/lib/gems/english-0.3.1/lib/english/dresner.rb +47 -0
- data/lib/gems/english-0.3.1/lib/english/inflect.rb +299 -0
- data/lib/gems/english-0.3.1/lib/english/jumble.rb +37 -0
- data/lib/gems/english-0.3.1/lib/english/levenshtein.rb +78 -0
- data/lib/gems/english-0.3.1/lib/english/metaphone.rb +110 -0
- data/lib/gems/english-0.3.1/lib/english/numerals.rb +71 -0
- data/lib/gems/english-0.3.1/lib/english/patterns.rb +49 -0
- data/lib/gems/english-0.3.1/lib/english/porter_stemming.rb +188 -0
- data/lib/gems/english-0.3.1/lib/english/roman.rb +174 -0
- data/lib/gems/english-0.3.1/lib/english/similarity.rb +103 -0
- data/lib/gems/english-0.3.1/lib/english/soundex.rb +70 -0
- data/lib/gems/english-0.3.1/lib/english/string.rb +210 -0
- data/lib/gems/english-0.3.1/lib/english/style.rb +294 -0
- data/lib/gems/english-0.3.1/lib/english/style_orm.rb +143 -0
- data/lib/gems/english-0.3.1/lib/english/textfilter.rb +91 -0
- data/lib/gems/extlib-0.9.8/lib/extlib.rb +56 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/assertions.rb +8 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/blank.rb +59 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/boolean.rb +11 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/class.rb +175 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/datetime.rb +9 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/dictionary.rb +433 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/hash.rb +419 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/hook.rb +366 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/inflection.rb +435 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/lazy_array.rb +106 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/logger.rb +202 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/mash.rb +148 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/module.rb +41 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/nil.rb +5 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/numeric.rb +5 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/object.rb +175 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/object_space.rb +13 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/pathname.rb +5 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/pooling.rb +239 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/rubygems.rb +38 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/simple_set.rb +39 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/string.rb +132 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/struct.rb +8 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/symbol.rb +17 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/tasks/release.rb +15 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/time.rb +19 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/version.rb +3 -0
- data/lib/gems/extlib-0.9.8/lib/extlib/virtual_file.rb +10 -0
- data/lib/gems/facets-2.4.5/VERSION +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets-live.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets-load.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets.rb +11 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/combination.rb +59 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/conjoin.rb +58 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/delete.rb +61 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/index.rb +48 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/indexable.rb +73 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/merge.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/not_empty.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/only.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/pad.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/permutation.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/product.rb +57 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/recursively.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/rotate.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/select.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/splice.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/stackable.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/array/traverse.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding/caller.rb +54 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding/defined.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding/eval.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding/local_variables.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/binding/self.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/bitmask.rb +104 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/blank.rb +60 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/boolean.rb +156 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/callstack.rb +52 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/cattr.rb +2 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr.rb +115 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_accessor.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_reader.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_writer.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/descendents.rb +36 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/methodize.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/pathize.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/prepend.rb +50 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/subclasses.rb +2 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/class/to_proc.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/comparable.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/comparable/bound.rb +65 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/comparable/cmp.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/comparable/comparable.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir/ascend.rb +59 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir/descend.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir/multiglob.rb +92 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir/parent.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/dir/recurse.rb +29 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/accumulate.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/cluster_by.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/collect.rb +54 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/commonality.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/count.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/divide.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/duplicates.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/each_by.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/entropy.rb +37 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/frequency.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/group_by.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/inject.rb +31 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/map_send.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/mash.rb +32 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/mode.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/modulate.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/none.rb +31 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/occur.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/one.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/probability.rb +36 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/split.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/sum.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/uniq_by.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/exception.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/exception/detail.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/exception/suppress.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/append.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/create.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/null.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/read.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/rewrite.rb +88 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/rootname.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/split_root.rb +10 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/write.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/file/writelines.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/filetest.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/filetest/root.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/float.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/float/round.rb +2 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/functor.rb +77 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/alias.rb +31 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/argumentize.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/at.rb +8 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/autonew.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/collate.rb +45 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/delete.rb +47 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/diff.rb +11 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/except.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/insert.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/inverse.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/join.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/keys.rb +45 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/mash.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/merge.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op.rb +7 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_add.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_and.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_mul.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_or.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_push.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_sub.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/recursive_merge.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/recursively.rb +29 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/rekey.rb +59 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/select.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/slice.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/swap.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_h.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_proc.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_struct.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/traverse.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/update.rb +81 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/weave.rb +81 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/hash/zipnew.rb +2 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/indexable.rb +251 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/even.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/factorial.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/multiple.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/odd.rb +35 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/of.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/integer/ordinal.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__callee__.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__class__.rb +9 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__dir__.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__get__.rb +10 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__method__.rb +36 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__set__.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/as.rb +100 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/ask.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/attr_singleton.rb +62 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/complete.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/constant.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/d.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/deep_copy.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/demo.rb +23 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/ergo.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/here.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/in.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_assign.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_class.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_exec.rb +40 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_send.rb +7 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_variables.rb +99 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/maybe.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/not_nil.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_class.rb +10 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_hexid.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_send.rb +32 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/p.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/populate.rb +73 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/qua_class.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/require_all.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/require_local.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/resc.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/respond.rb +23 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/returning.rb +23 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/silence.rb +75 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/singleton_class.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/tap.rb +32 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/try.rb +23 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/val.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/kernel/with.rb +20 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/lazy.rb +238 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/matchdata.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/matchdata/match.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/matchdata/matchset.rb +44 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/metaid.rb +94 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/abstract.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_accessor.rb +45 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_method_chain.rb +50 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_module_function.rb +30 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/ancestor.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/basename.rb +31 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/can.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/class.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/conflict.rb +63 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/include_function_module.rb +25 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/instance_methods.rb +40 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/integrate.rb +2 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/is.rb +57 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/methodize.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/modspace.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/module_load.rb +56 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/nesting.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/op.rb +95 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/pathize.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/prepend.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/redefine_method.rb +35 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/redirect_method.rb +45 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/rename_method.rb +20 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/revise.rb +62 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/spacename.rb +25 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/module/wrap_method.rb +28 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/nilclass.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/nilclass/ergo.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/nilclass/to_f.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/numeric.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/numeric/approx.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/numeric/distance.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/numeric/round.rb +72 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc/bind.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc/compose.rb +42 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc/curry.rb +31 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc/to_method.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/proc/update.rb +9 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range/combine.rb +47 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range/overlap.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range/to_r.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range/umbrella.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/range/within.rb +66 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/regexp.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/regexp/arity.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/regexp/to_re.rb +28 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/stackable.rb +86 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/align.rb +106 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/bracket.rb +105 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/bytes.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/camelcase.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/capitalized.rb +46 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/chars.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/chomp.rb +33 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/cleave.rb +36 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/divide.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/each_char.rb +29 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/each_word.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/end_with.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/fold.rb +39 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/interpolate.rb +20 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/line_wrap.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/lines.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/methodize.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/modulize.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/mscan.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/natcmp.rb +88 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/nchar.rb +28 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/op_sub.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/pathize.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/range.rb +77 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/rewrite.rb +28 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/shatter.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/snakecase.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/splice.rb +37 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/start_with.rb +32 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/subtract.rb +4 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/tab.rb +103 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/titlecase.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/to_re.rb +26 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/variablize.rb +13 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/word_wrap.rb +34 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/words.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/string/xor.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/chomp.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/generate.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/not.rb +29 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/plain.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/query.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/re_s.rb +18 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/setter.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/succ.rb +19 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/to_proc.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/symbol/variablize.rb +12 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/advance.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/ago.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/change.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/elapse.rb +16 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/hence.rb +94 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/round.rb +17 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/set.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/stamp.rb +44 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/to_time.rb +21 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/time/trunc.rb +15 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/to_hash.rb +87 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod.rb +6 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod/arguments.rb +44 -0
- data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod/name.rb +25 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/basicobject.rb +14 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/cgi.rb +50 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/continuation.rb +57 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/date.rb +396 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/head.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/safe_ln.rb +28 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/slice.rb +141 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/tail.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/wc.rb +114 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/whereis.rb +64 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/which.rb +101 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/getoptlong.rb +71 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/logger.rb +291 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/ostruct.rb +238 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/pathname.rb +172 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/rbconfig.rb +45 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/set.rb +27 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/shellwords.rb +89 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/uri.rb +249 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/yaml.rb +75 -0
- data/lib/gems/facets-2.4.5/lib/lore/facets/zlib.rb +38 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/1stclassmethod.rb +140 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/advisable.rb +162 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/annotations.rb +302 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/ansicode.rb +315 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/arguments.rb +365 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/argvector.rb +353 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/association.rb +194 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/attr.rb +208 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/autoarray.rb +62 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/autoreload.rb +150 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/basex.rb +37 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/bbcode.rb +397 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/bicrypt.rb +265 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/binding/opvars.rb +24 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/binreadable.rb +221 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/blankslate.rb +66 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/buildable.rb +344 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/bytes.rb +175 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/cachedecorator.rb +117 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/capsule.rb +258 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/chain.rb +58 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/class_extension.rb +114 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/classmethods.rb +199 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/cloneable.rb +76 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/command.rb +439 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/consoleutils.rb +113 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/coroutine.rb +159 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/crypt.rb +166 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/cssfilter.rb +254 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/daemonize.rb +44 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/dependency.rb +151 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/dictionary.rb +478 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/dictionarymatcher.rb +136 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/downloader.rb +281 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/duplicable.rb +43 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/duration.rb +540 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/elementor.rb +133 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/elementwise.rb +61 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/enumerablepass.rb +217 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/equatable.rb +120 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/eventhook.rb +132 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/expirable.rb +82 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/fileable.rb +162 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/filelist.rb +497 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/fileshell.rb +202 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/hash/stringify_keys.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/hash/symbolize_keys.rb +94 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/heap.rb +22 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/htmlfilter.rb +595 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/infinity.rb +193 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/inheritor.rb +130 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/ini.rb +264 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/instantiable.rb +47 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/instantise.rb +1 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/instantize.rb +95 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/interval.rb +282 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/ioredirect.rb +130 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/iteration.rb +65 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/kernel/meta.rb +32 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/linkedlist.rb +222 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/lrucache.rb +157 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/main.rb +70 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/memoize.rb +116 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/methodspace.rb +141 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/minitar.rb +1063 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/multipliers.rb +109 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/multiton.rb +386 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/nackclass.rb +41 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/net/smtp_tls.rb +131 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/nilstatus.rb +47 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/nullclass.rb +74 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/opencascade.rb +94 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/opencollection.rb +43 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/openhash.rb +39 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/openobject.rb +267 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/opesc.rb +60 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/orderedhash.rb +37 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/overload.rb +94 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/paramix.rb +202 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/partial.rb +37 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/pathlist.rb +112 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/platform.rb +192 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/pool.rb +91 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/pqueue.rb +449 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/progressbar.rb +253 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/prototype.rb +88 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/random.rb +451 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/rbsystem.rb +222 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/recorder.rb +109 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/reference.rb +99 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/reflection.rb +145 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/registerable.rb +35 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/rwdelegator.rb +74 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/semaphore.rb +92 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/settings.rb +248 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/snapshot.rb +209 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/string/mask.rb +278 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/string/words.rb +173 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/succ.rb +44 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/syncarray.rb +114 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/synchash.rb +157 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/tagiter.rb +366 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/thread.rb +51 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/timer.rb +274 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/times.rb +431 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/tracepoint.rb +209 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/tuple.rb +325 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/typecast.rb +261 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/uninheritable.rb +50 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/uploadutils.rb +464 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/version.rb +136 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/xmlhash.rb +112 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/xoxo.rb +259 -0
- data/lib/gems/facets-2.4.5/lib/more/facets/ziputils.rb +349 -0
- data/lib/mack-facets.rb +4 -2
- data/lib/mack-facets/english_extensions/inflect.rb +50 -50
- data/lib/mack-facets/extensions/string.rb +10 -1
- data/lib/mack-facets/utils/inflections.rb +50 -47
- data/lib/mack-facets/utils/inflector.rb +19 -19
- metadata +547 -36
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# = GetoptLong
|
|
2
|
+
#
|
|
3
|
+
# Ruby's standard GetoptLong class with an added DSL.
|
|
4
|
+
#
|
|
5
|
+
# opts = GetoptLong.new do
|
|
6
|
+
# reqs '--expect', '-x'
|
|
7
|
+
# flag '--help', '-h'
|
|
8
|
+
# end
|
|
9
|
+
#
|
|
10
|
+
# opts.each { |opt, arg|
|
|
11
|
+
# ...
|
|
12
|
+
# }
|
|
13
|
+
#
|
|
14
|
+
# == Authors
|
|
15
|
+
#
|
|
16
|
+
# * Thomas Sawuer
|
|
17
|
+
#
|
|
18
|
+
# == Copying
|
|
19
|
+
#
|
|
20
|
+
# Copyright (c) 2007 Thomas Sawyer
|
|
21
|
+
#
|
|
22
|
+
# Ruby License
|
|
23
|
+
#
|
|
24
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
25
|
+
# software under the same terms as Ruby.
|
|
26
|
+
#
|
|
27
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
28
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
29
|
+
# FOR A PARTICULAR PURPOSE.
|
|
30
|
+
|
|
31
|
+
require 'getoptlong'
|
|
32
|
+
|
|
33
|
+
class GetoptLong
|
|
34
|
+
|
|
35
|
+
alias :init :initialize
|
|
36
|
+
|
|
37
|
+
def initialize(*arguments, &block)
|
|
38
|
+
if block_given?
|
|
39
|
+
raise ArgumentError unless arguments.empty?
|
|
40
|
+
arguments = DSL.new(&block).arguments
|
|
41
|
+
end
|
|
42
|
+
init(*arguments)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# DSL-mode parser.
|
|
46
|
+
|
|
47
|
+
class DSL
|
|
48
|
+
attr :arguments
|
|
49
|
+
|
|
50
|
+
def initialize(&block)
|
|
51
|
+
@arguments = []
|
|
52
|
+
instance_eval(&block)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def flag(*opts)
|
|
56
|
+
@arguments << (opts << GetoptLong::NO_ARGUMENT)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def required(*opts)
|
|
60
|
+
@arguments << (opts << GetoptLong::REQUIRED_ARGUMENT)
|
|
61
|
+
end
|
|
62
|
+
alias :reqs :required
|
|
63
|
+
|
|
64
|
+
def optional(*opts)
|
|
65
|
+
@arguments << (opts << GetoptLong::OPTIONAL_ARGUMENT)
|
|
66
|
+
end
|
|
67
|
+
alias :opts :optional
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# = Logger
|
|
2
|
+
#
|
|
3
|
+
# Extended variation of Ruby's standard Logger library.
|
|
4
|
+
#
|
|
5
|
+
# log = Logger.new
|
|
6
|
+
#
|
|
7
|
+
# log.setup_format do |severity, timestamp, progname, msg|
|
|
8
|
+
# Logger::SIMPLE_FORMAT % [severity, msg]
|
|
9
|
+
# end
|
|
10
|
+
#
|
|
11
|
+
# == Conventions
|
|
12
|
+
#
|
|
13
|
+
# When using debug level logger messages always append 'if $DBG'
|
|
14
|
+
# at the end. This hack is needed because Ruby does not support
|
|
15
|
+
# lazy evaluation (lisp macros).
|
|
16
|
+
#
|
|
17
|
+
# == Authors
|
|
18
|
+
#
|
|
19
|
+
# * George Moschovitis
|
|
20
|
+
# * TransLogarithim
|
|
21
|
+
#
|
|
22
|
+
# == Copying
|
|
23
|
+
#
|
|
24
|
+
# Copyright (c) 2005 George Moschovitis
|
|
25
|
+
#
|
|
26
|
+
# Ruby License
|
|
27
|
+
#
|
|
28
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
29
|
+
# software under the same terms as Ruby.
|
|
30
|
+
#
|
|
31
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
32
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
33
|
+
# FOR A PARTICULAR PURPOSE.
|
|
34
|
+
|
|
35
|
+
require "logger"
|
|
36
|
+
require "time"
|
|
37
|
+
require "facets/ansicode"
|
|
38
|
+
|
|
39
|
+
# = Logger
|
|
40
|
+
#
|
|
41
|
+
# Extended variation of Ruby's standard Logger library.
|
|
42
|
+
# Mainly for compatibility purposes (with what?)
|
|
43
|
+
#
|
|
44
|
+
# log = Logger.new
|
|
45
|
+
#
|
|
46
|
+
# log.setup_format do |severity, timestamp, progname, msg|
|
|
47
|
+
# Logger::SIMPLE_FORMAT % [severity, msg]
|
|
48
|
+
# end
|
|
49
|
+
#
|
|
50
|
+
# When using debug level logger messages always append 'if $DBG'
|
|
51
|
+
# at the end. This hack is needed because Ruby does not support
|
|
52
|
+
# lazy evaluation (lisp macros).
|
|
53
|
+
#
|
|
54
|
+
# TODO: What's all this about then?
|
|
55
|
+
|
|
56
|
+
class Logger
|
|
57
|
+
|
|
58
|
+
# Some available logging formats.
|
|
59
|
+
SIMPLE_FORMAT = "%5s: %s\n"
|
|
60
|
+
DETAILED_FORMAT = "%s %5s: %s\n"
|
|
61
|
+
|
|
62
|
+
# Why these names ?
|
|
63
|
+
alias_method :devel, :debug
|
|
64
|
+
alias_method :fine, :debug
|
|
65
|
+
|
|
66
|
+
def ansicolor=(on)
|
|
67
|
+
unless is_a?(Ansicolor)
|
|
68
|
+
class << self
|
|
69
|
+
include Ansicolor
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
@logdev.ansicolor = on
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# NOTE: trace is deprecated b/c binding of caller is no longer possible.
|
|
76
|
+
=begin
|
|
77
|
+
# Prints a trace message to DEBUGLOG (at debug level).
|
|
78
|
+
# Useful for emitting the value of variables, etc. Use
|
|
79
|
+
# like this:
|
|
80
|
+
#
|
|
81
|
+
# x = y = 5
|
|
82
|
+
# trace 'x' # -> 'x = 5'
|
|
83
|
+
# trace 'x ** y' # -> 'x ** y = 3125'
|
|
84
|
+
#
|
|
85
|
+
# If you have a more complicated value, like an array of
|
|
86
|
+
# hashes, then you'll probably want to use an alternative
|
|
87
|
+
# output format. For instance:
|
|
88
|
+
#
|
|
89
|
+
# trace 'value', :yaml
|
|
90
|
+
#
|
|
91
|
+
# Valid output format values (the _style_ parameter) are:
|
|
92
|
+
#
|
|
93
|
+
# :p :inspect
|
|
94
|
+
# :pp (pretty-print, using 'pp' library)
|
|
95
|
+
# :s :to_s
|
|
96
|
+
# :y :yaml :to_yaml (using the 'yaml' library')
|
|
97
|
+
#
|
|
98
|
+
# The default is <tt>:p</tt>.
|
|
99
|
+
#
|
|
100
|
+
# CREDITS:
|
|
101
|
+
#
|
|
102
|
+
# This code comes straight from the dev-utils Gem.
|
|
103
|
+
# Author: Gavin Sinclair <gsinclair@soyabean.com.au>
|
|
104
|
+
|
|
105
|
+
def trace(expr, style=:p)
|
|
106
|
+
unless expr.respond_to? :to_str
|
|
107
|
+
warn "trace: Can't evaluate the given value: #{caller.first}"
|
|
108
|
+
else
|
|
109
|
+
raise "FACETS: binding/or_caller is no longer possible"
|
|
110
|
+
require "facets/core/binding/self/of_caller"
|
|
111
|
+
|
|
112
|
+
Binding.of_caller do |b|
|
|
113
|
+
value = b.eval(expr.to_str)
|
|
114
|
+
formatter = TRACE_STYLES[style] || :inspect
|
|
115
|
+
case formatter
|
|
116
|
+
when :pp then require 'pp'
|
|
117
|
+
when :y, :yaml, :to_yaml then require 'yaml'
|
|
118
|
+
end
|
|
119
|
+
value_s = value.send(formatter)
|
|
120
|
+
message = "#{expr} = #{value_s}"
|
|
121
|
+
lines = message.split(/\n/)
|
|
122
|
+
indent = " "
|
|
123
|
+
debug(lines.shift)
|
|
124
|
+
lines.each do |line|
|
|
125
|
+
debug(indent + line)
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
TRACE_STYLES = {} # :nodoc:
|
|
132
|
+
TRACE_STYLES.update(
|
|
133
|
+
:pp => :pp_s, :s => :to_s, :p => :inspect,
|
|
134
|
+
:y => :to_yaml, :yaml => :to_yaml,
|
|
135
|
+
:inspect => :inspect, :to_yaml => :to_yaml
|
|
136
|
+
)
|
|
137
|
+
=end
|
|
138
|
+
|
|
139
|
+
# Dictate the way in which this logger should format the
|
|
140
|
+
# messages it displays. This method requires a block. The
|
|
141
|
+
# block should return formatted strings given severity,
|
|
142
|
+
# timestamp, msg, progname.
|
|
143
|
+
#
|
|
144
|
+
# === Example
|
|
145
|
+
#
|
|
146
|
+
# logger = Logger.new
|
|
147
|
+
# logger.setup_format do |severity, timestamp, msg, progname|
|
|
148
|
+
# "#{progname}@#{timestamp} - #{severity}::#{msg}"
|
|
149
|
+
# end
|
|
150
|
+
|
|
151
|
+
def setup_format(&format_proc)
|
|
152
|
+
raise "Formating block needed" unless format_proc
|
|
153
|
+
@format_proc = format_proc
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def format_procedure
|
|
157
|
+
@format_proc
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
private
|
|
161
|
+
|
|
162
|
+
attr_accessor :format_proc
|
|
163
|
+
|
|
164
|
+
alias_method :format_message_without_proc, :format_message # :nodoc:
|
|
165
|
+
|
|
166
|
+
def format_message(*args) # :nodoc:
|
|
167
|
+
@format_proc ? @format_proc.call(*args) : format_message_without_proc(*args)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
class LogDevice
|
|
171
|
+
attr_writer :ansicolor
|
|
172
|
+
|
|
173
|
+
def ansicolor?
|
|
174
|
+
@ansicolor
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# For adding ansicolor output.
|
|
179
|
+
|
|
180
|
+
module Ansicolor
|
|
181
|
+
|
|
182
|
+
def info(str)
|
|
183
|
+
return unless info?
|
|
184
|
+
@logdev.ansicolor? ? info_with_color{ super } : super
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def warn(str)
|
|
188
|
+
return unless warn?
|
|
189
|
+
@logdev.ansicolor? ? warn_with_color{ super } : super
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def debug(str)
|
|
193
|
+
return unless debug?
|
|
194
|
+
@logdev.ansicolor? ? debug_with_color{ super } : super
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def error(str)
|
|
198
|
+
return unless error?
|
|
199
|
+
@logdev.ansicolor? ? error_with_color{ super } : super
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def fatal(str)
|
|
203
|
+
return unless error?
|
|
204
|
+
@logdev.ansicolor? ? fatal_with_color{ super } : super
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def info_with_color #:yield:
|
|
208
|
+
self << ANSICode.green
|
|
209
|
+
yield
|
|
210
|
+
self << ANSICode.clear
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def warn_with_color #:yield:
|
|
214
|
+
self << ANSICode.cyan
|
|
215
|
+
yield
|
|
216
|
+
self << ANSICode.clear
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
def error_with_color #:yield:
|
|
220
|
+
self << ANSICode.red
|
|
221
|
+
yield
|
|
222
|
+
self << ANSICode.clear
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
def debug_with_color #:yield:
|
|
226
|
+
self << ANSICode.yellow
|
|
227
|
+
yield
|
|
228
|
+
self << ANSICode.clear
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def fatal_with_color #:yield:
|
|
232
|
+
self << ANSICode.bold + ANSICode.red
|
|
233
|
+
yield
|
|
234
|
+
self << ANSICode.clear
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
# OLD WAY TO ADD COLOR
|
|
242
|
+
=begin
|
|
243
|
+
module Console
|
|
244
|
+
|
|
245
|
+
class Logger < ::Logger
|
|
246
|
+
|
|
247
|
+
attr_accessor :style
|
|
248
|
+
|
|
249
|
+
def style
|
|
250
|
+
@style ||= Style.new
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
def info(str)
|
|
254
|
+
return if level > Logger::INFO
|
|
255
|
+
self << style.info(str)
|
|
256
|
+
super
|
|
257
|
+
self << ANSICode.clear
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def warn(str)
|
|
261
|
+
self << style.warn(str)
|
|
262
|
+
super
|
|
263
|
+
self << ANSICode.clear
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
def error(str)
|
|
267
|
+
return if level > Logger::ERROR
|
|
268
|
+
self << style.error(str)
|
|
269
|
+
super
|
|
270
|
+
self << ANSICode.clear
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def debug(str)
|
|
274
|
+
self << style.debug(str)
|
|
275
|
+
super
|
|
276
|
+
self << ANSICode.clear
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
# Logger Style
|
|
280
|
+
|
|
281
|
+
class Style
|
|
282
|
+
def info(str) ; ANSICode.green ; end
|
|
283
|
+
def warn(str) ; ANSICode.cyan ; end
|
|
284
|
+
def error(str) ; ANSICode.bold + ANSICode.red ; end
|
|
285
|
+
def debug(str) ; '' ; end
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
=end
|
|
291
|
+
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# = OpenStruct
|
|
2
|
+
#
|
|
3
|
+
# Ruby's standard OpenStruct with a few extensions added-in.
|
|
4
|
+
#
|
|
5
|
+
# == Auhtors
|
|
6
|
+
#
|
|
7
|
+
# * Thomas Sawyer
|
|
8
|
+
#
|
|
9
|
+
# == Copying
|
|
10
|
+
#
|
|
11
|
+
# Copyright (c) 2005 Thomas Sawyer, George Moschovitis
|
|
12
|
+
#
|
|
13
|
+
# Ruby License
|
|
14
|
+
#
|
|
15
|
+
# This module is free software. You may use, modify, and/or redistribute this
|
|
16
|
+
# software under the same terms as Ruby.
|
|
17
|
+
#
|
|
18
|
+
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
19
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
20
|
+
# FOR A PARTICULAR PURPOSE.
|
|
21
|
+
#
|
|
22
|
+
# == History
|
|
23
|
+
#
|
|
24
|
+
# * 2006-11-04 trans Deprecate #instance in favor of #instance_delegate.
|
|
25
|
+
# * 2007-04-15 trans Filled out with actual methods, used "ostruct_" for some accessors.
|
|
26
|
+
|
|
27
|
+
require 'ostruct'
|
|
28
|
+
|
|
29
|
+
class OpenStruct
|
|
30
|
+
|
|
31
|
+
# Allows the initialization of an OpenStruct with a setter block:
|
|
32
|
+
#
|
|
33
|
+
# person = OpenStruct.new do |o|
|
|
34
|
+
# o.name = 'John Smith'
|
|
35
|
+
# o.gender = :M
|
|
36
|
+
# o.age = 71
|
|
37
|
+
# end
|
|
38
|
+
#
|
|
39
|
+
# You can still provide a hash for initialization purposes, and even combine
|
|
40
|
+
# the two approaches if you wish.
|
|
41
|
+
#
|
|
42
|
+
# person = OpenStruct.new(:name => 'John Smith', :age => 31) do |p|
|
|
43
|
+
# p.gender = :M
|
|
44
|
+
# end
|
|
45
|
+
#
|
|
46
|
+
# Alternatively you can provide a default block:
|
|
47
|
+
#
|
|
48
|
+
# stuff = OpenStruct.new{ |o,k| o[k] = [] }
|
|
49
|
+
# stuff.place << :a
|
|
50
|
+
# stuff.place << :b
|
|
51
|
+
# stuff.place #=> [:a, :b]
|
|
52
|
+
#
|
|
53
|
+
# A setter block versus a defualt block is determined by the arity of
|
|
54
|
+
# the block. You can not provide both at the same time.
|
|
55
|
+
#
|
|
56
|
+
# CREDIT Noah Gibbs
|
|
57
|
+
# CREDIT Gavin Sinclair
|
|
58
|
+
# CREDIT 7rans
|
|
59
|
+
#
|
|
60
|
+
def initialize(hash=nil, &block)
|
|
61
|
+
if block && block.arity==2
|
|
62
|
+
@table = Hash.new(&block)
|
|
63
|
+
else
|
|
64
|
+
@table = {}
|
|
65
|
+
end
|
|
66
|
+
if hash
|
|
67
|
+
for k,v in hash
|
|
68
|
+
@table[k.to_sym] = v
|
|
69
|
+
new_ostruct_member(k)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
if block && block.arity==1
|
|
73
|
+
yield self
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
#
|
|
78
|
+
def each(&blk)
|
|
79
|
+
@table.each(&blk)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
#
|
|
83
|
+
def to_h
|
|
84
|
+
@table.dup
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Access a value in the OpenStruct by key, like a Hash.
|
|
88
|
+
# This increases OpenStruct's "duckiness".
|
|
89
|
+
#
|
|
90
|
+
# o = OpenStruct.new
|
|
91
|
+
# o.t = 4
|
|
92
|
+
# o['t'] #=> 4
|
|
93
|
+
#
|
|
94
|
+
def [](key)
|
|
95
|
+
key = key.to_sym unless key.is_a?(Symbol)
|
|
96
|
+
@table[key]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Set a value in the OpenStruct by key, like a Hash.
|
|
100
|
+
#
|
|
101
|
+
# o = OpenStruct.new
|
|
102
|
+
# o['t'] = 4
|
|
103
|
+
# o.t #=> 4
|
|
104
|
+
#
|
|
105
|
+
def []=(key,val)
|
|
106
|
+
raise TypeError, "can't modify frozen #{self.class}", caller(1) if self.frozen?
|
|
107
|
+
key = key.to_sym unless key.is_a?(Symbol)
|
|
108
|
+
@table[key]=val
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# CREDIT Robert J. Berger <rberger AT ibd.com>
|
|
112
|
+
# Thanks for reporting issues that this method resolved.
|
|
113
|
+
|
|
114
|
+
# Provides access to an OpenStruct's inner table.
|
|
115
|
+
#
|
|
116
|
+
# o = OpenStruct.new
|
|
117
|
+
# o.a = 1
|
|
118
|
+
# o.b = 2
|
|
119
|
+
# o.instance_delegate.each { |k, v| puts "#{k} #{v}" }
|
|
120
|
+
#
|
|
121
|
+
# produces
|
|
122
|
+
#
|
|
123
|
+
# a 1
|
|
124
|
+
# b 2
|
|
125
|
+
#
|
|
126
|
+
#
|
|
127
|
+
def instance_delegate
|
|
128
|
+
@table
|
|
129
|
+
end
|
|
130
|
+
alias ostruct_delegate instance_delegate
|
|
131
|
+
|
|
132
|
+
# Insert/update hash data on the fly.
|
|
133
|
+
#
|
|
134
|
+
# o = OpenStruct.new
|
|
135
|
+
# o.ostruct_update { :a => 2 }
|
|
136
|
+
# o.a #=> 2
|
|
137
|
+
#
|
|
138
|
+
def ostruct_update(other)
|
|
139
|
+
#other = other.to_hash #to_h ?
|
|
140
|
+
for k,v in other
|
|
141
|
+
@table[k.to_sym] = v
|
|
142
|
+
end
|
|
143
|
+
self
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# Merge hash data creating a new OpenStruct object.
|
|
147
|
+
#
|
|
148
|
+
# o = OpenStruct.new
|
|
149
|
+
# o.ostruct_merge { :a => 2 }
|
|
150
|
+
# o.a #=> 2
|
|
151
|
+
#
|
|
152
|
+
def ostruct_merge(other)
|
|
153
|
+
o = dup
|
|
154
|
+
o.ostruct_update(other)
|
|
155
|
+
o
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
##
|
|
159
|
+
# TO BE DEPRECATED
|
|
160
|
+
# Must consider that accessing instance_delegate instead can be dangerous.
|
|
161
|
+
# Might we us a Functor to ensure the table keys are always symbols?
|
|
162
|
+
##
|
|
163
|
+
|
|
164
|
+
# Insert/update hash data on the fly.
|
|
165
|
+
#
|
|
166
|
+
# o = OpenStruct.new
|
|
167
|
+
# o.ostruct_update { :a => 2 }
|
|
168
|
+
# o.a #=> 2
|
|
169
|
+
#
|
|
170
|
+
def __update__(other)
|
|
171
|
+
#other = other.to_hash #to_h?
|
|
172
|
+
for k,v in other
|
|
173
|
+
@table[k.to_sym] = v
|
|
174
|
+
end
|
|
175
|
+
self
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# Merge hash data creating a new OpenStruct object.
|
|
179
|
+
#
|
|
180
|
+
# o = OpenStruct.new
|
|
181
|
+
# o.ostruct_merge { :a => 2 }
|
|
182
|
+
# o.a #=> 2
|
|
183
|
+
#
|
|
184
|
+
def __merge__(other)
|
|
185
|
+
o = dup
|
|
186
|
+
o.__update__(other)
|
|
187
|
+
o
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class Hash
|
|
193
|
+
|
|
194
|
+
# Turns a hash into a generic object using an OpenStruct.
|
|
195
|
+
#
|
|
196
|
+
# o = { 'a' => 1 }.to_ostruct
|
|
197
|
+
# o.a #=> 1
|
|
198
|
+
#
|
|
199
|
+
def to_ostruct
|
|
200
|
+
OpenStruct.new(self)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# CREDIT Alison Rowland
|
|
204
|
+
# CREDIT Jamie Macey
|
|
205
|
+
# CREDIT Mat Schaffer
|
|
206
|
+
|
|
207
|
+
#--
|
|
208
|
+
# Special thanks to Alison Rowland, Jamie Macey and Mat Schaffer
|
|
209
|
+
# for inspiring recursive improvements.
|
|
210
|
+
#++
|
|
211
|
+
|
|
212
|
+
# Like to_ostruct but recusively objectifies all hash elements as well.
|
|
213
|
+
#
|
|
214
|
+
# o = { 'a' => { 'b' => 1 } }.to_ostruct_recurse
|
|
215
|
+
# o.a.b #=> 1
|
|
216
|
+
#
|
|
217
|
+
# The +exclude+ parameter is used internally to prevent infinite
|
|
218
|
+
# recursion and is not intended to be utilized by the end-user.
|
|
219
|
+
# But for more advance use, if there is a particular subhash you
|
|
220
|
+
# would like to prevent from being converted to an OpoenStruct
|
|
221
|
+
# then include it in the +exclude+ hash referencing itself. Eg.
|
|
222
|
+
#
|
|
223
|
+
# h = { 'a' => { 'b' => 1 } }
|
|
224
|
+
# o = h.to_ostruct_recurse( { h['a'] => h['a'] } )
|
|
225
|
+
# o.a['b'] #=> 1
|
|
226
|
+
#
|
|
227
|
+
def to_ostruct_recurse(exclude={})
|
|
228
|
+
return exclude[self] if exclude.key?( self )
|
|
229
|
+
o = exclude[self] = OpenStruct.new
|
|
230
|
+
h = self.dup
|
|
231
|
+
each_pair do |k,v|
|
|
232
|
+
h[k] = v.to_ostruct_recurse( exclude ) if v.respond_to?(:to_ostruct_recurse)
|
|
233
|
+
end
|
|
234
|
+
o.__update__(h)
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
end
|
|
238
|
+
|