facets 2.1.3 → 2.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.
- data/AUTHORS +14 -12
 - data/CHANGES +45 -2
 - data/NOTES +9 -7
 - data/lib/core/facets/1stclassmethod.rb +15 -11
 - data/lib/core/facets/array.rb +0 -1
 - data/lib/core/facets/array/conjoin.rb +40 -8
 - data/lib/core/facets/array/delete.rb +8 -2
 - data/lib/core/facets/array/indexable.rb +30 -3
 - data/lib/core/facets/array/merge.rb +11 -0
 - data/lib/core/facets/array/only.rb +3 -3
 - data/lib/core/facets/array/pad.rb +4 -46
 - data/lib/core/facets/array/rotate.rb +4 -4
 - data/lib/core/facets/array/select.rb +2 -0
 - data/lib/core/facets/array/splice.rb +16 -2
 - data/lib/core/facets/array/stackable.rb +6 -40
 - data/lib/core/facets/binding.rb +3 -0
 - data/lib/core/facets/binding/cflow.rb +10 -64
 - data/lib/core/facets/binding/defined.rb +10 -0
 - data/lib/core/facets/binding/eval.rb +10 -76
 - data/lib/core/facets/binding/here.rb +9 -0
 - data/lib/core/facets/binding/self.rb +10 -0
 - data/lib/core/facets/binding/vars.rb +0 -45
 - data/lib/core/facets/boolean.rb +31 -103
 - data/lib/core/facets/class/descendents.rb +17 -44
 - data/lib/core/facets/comparable/bound.rb +8 -70
 - data/lib/core/facets/comparable/cmp.rb +12 -92
 - data/lib/core/facets/conversion.rb +122 -321
 - data/lib/core/facets/dir/multiglob.rb +0 -13
 - data/lib/core/facets/dir/traverse.rb +61 -111
 - data/lib/core/facets/enumerable.rb +4 -2
 - data/lib/core/facets/enumerable/cartesian.rb +36 -85
 - data/lib/core/facets/enumerable/collect.rb +64 -152
 - data/lib/core/facets/enumerable/combination.rb +40 -42
 - data/lib/core/facets/enumerable/count.rb +99 -174
 - data/lib/core/facets/enumerable/each.rb +86 -0
 - data/lib/core/facets/enumerable/mash.rb +58 -0
 - data/lib/core/facets/enumerable/permutation.rb +39 -44
 - data/lib/core/facets/enumerable/probability.rb +16 -90
 - data/lib/core/facets/enumerable/split.rb +113 -0
 - data/lib/core/facets/exception/detail.rb +1 -2
 - data/lib/core/facets/facets.rb +3 -2
 - data/lib/core/facets/file/read.rb +4 -59
 - data/lib/core/facets/file/topath.rb +8 -96
 - data/lib/core/facets/file/write.rb +21 -49
 - data/lib/core/facets/filetest/root.rb +4 -3
 - data/lib/core/facets/functor.rb +5 -43
 - data/lib/core/facets/hash/at.rb +7 -37
 - data/lib/core/facets/hash/delete.rb +9 -58
 - data/lib/core/facets/hash/has_keys.rb +4 -43
 - data/lib/core/facets/hash/insert.rb +5 -38
 - data/lib/core/facets/hash/inverse.rb +2 -41
 - data/lib/core/facets/hash/iterate.rb +4 -45
 - data/lib/core/facets/hash/keyize.rb +24 -92
 - data/lib/core/facets/hash/merge.rb +4 -38
 - data/lib/core/facets/hash/new.rb +5 -38
 - data/lib/core/facets/hash/op.rb +20 -66
 - data/lib/core/facets/hash/rekey.rb +9 -87
 - data/lib/core/facets/hash/select.rb +1 -1
 - data/lib/core/facets/hash/slice.rb +42 -0
 - data/lib/core/facets/hash/traverse.rb +6 -46
 - data/lib/core/facets/hash/update.rb +27 -67
 - data/lib/core/facets/hash/weave.rb +22 -42
 - data/lib/core/facets/indexable.rb +42 -14
 - data/lib/core/facets/integer/bitmask.rb +69 -106
 - data/lib/core/facets/integer/factorial.rb +1 -44
 - data/lib/core/facets/integer/multiples.rb +27 -22
 - data/lib/core/facets/integer/of.rb +1 -33
 - data/lib/core/facets/kernel.rb +4 -2
 - data/lib/core/facets/kernel/ask.rb +15 -3
 - data/lib/core/facets/kernel/callstack.rb +38 -69
 - data/lib/core/facets/kernel/constant.rb +2 -38
 - data/lib/core/facets/kernel/deepcopy.rb +3 -55
 - data/lib/core/facets/kernel/dir.rb +2 -0
 - data/lib/core/facets/kernel/ergo.rb +2 -2
 - data/lib/core/facets/kernel/instance.rb +51 -120
 - data/lib/core/facets/kernel/metaid.rb +35 -73
 - data/lib/core/facets/kernel/object.rb +14 -39
 - data/lib/core/facets/kernel/op_esc.rb +24 -2
 - data/lib/core/facets/kernel/populate.rb +6 -69
 - data/lib/core/facets/kernel/report.rb +28 -33
 - data/lib/core/facets/kernel/require.rb +7 -21
 - data/lib/core/facets/kernel/respond.rb +11 -1
 - data/lib/core/facets/kernel/returning.rb +50 -0
 - data/lib/core/facets/kernel/silence.rb +12 -24
 - data/lib/core/facets/kernel/super.rb +12 -76
 - data/lib/core/facets/kernel/tap.rb +25 -107
 - data/lib/core/facets/kernel/val.rb +7 -46
 - data/lib/core/facets/kernel/withattr.rb +6 -64
 - data/lib/core/facets/matchdata/matchset.rb +8 -50
 - data/lib/core/facets/module.rb +3 -1
 - data/lib/core/facets/module/abstract.rb +9 -47
 - data/lib/core/facets/module/alias.rb +11 -68
 - data/lib/core/facets/module/attr.rb +36 -15
 - data/lib/core/facets/module/cattr.rb +8 -76
 - data/lib/core/facets/module/clone.rb +15 -66
 - data/lib/core/facets/module/include.rb +54 -114
 - data/lib/core/facets/module/methods.rb +15 -13
 - data/lib/core/facets/module/modify.rb +20 -206
 - data/lib/core/facets/module/name.rb +19 -83
 - data/lib/core/facets/module/require.rb +48 -53
 - data/lib/core/facets/module/traits.rb +74 -33
 - data/lib/core/facets/nilclass/status.rb +25 -2
 - data/lib/core/facets/numeric/round.rb +24 -89
 - data/lib/core/facets/proc/bind.rb +16 -59
 - data/lib/core/facets/proc/compose.rb +6 -40
 - data/lib/core/facets/proc/fn.rb +2 -0
 - data/lib/core/facets/range/combine.rb +15 -51
 - data/lib/core/facets/range/overlap.rb +8 -64
 - data/lib/core/facets/regexp/arity.rb +6 -41
 - data/lib/core/facets/stackable.rb +43 -4
 - data/lib/core/facets/string.rb +2 -0
 - data/lib/core/facets/string/align.rb +45 -55
 - data/lib/core/facets/string/blank.rb +2 -46
 - data/lib/core/facets/string/bracket.rb +14 -87
 - data/lib/core/facets/string/case.rb +45 -32
 - data/lib/core/facets/string/crypt.rb +3 -40
 - data/lib/core/facets/string/filter.rb +7 -49
 - data/lib/core/facets/string/format.rb +24 -126
 - data/lib/core/facets/string/indexable.rb +50 -133
 - data/lib/core/facets/string/interpolate.rb +24 -59
 - data/lib/core/facets/string/natcmp.rb +5 -39
 - data/lib/core/facets/string/nchar.rb +37 -45
 - data/lib/core/facets/string/op.rb +13 -0
 - data/lib/core/facets/string/partitions.rb +38 -99
 - data/lib/core/facets/string/range.rb +8 -49
 - data/lib/core/facets/string/regesc.rb +9 -42
 - data/lib/core/facets/string/scan.rb +6 -52
 - data/lib/core/facets/string/splice.rb +8 -13
 - data/lib/core/facets/string/tabs.rb +16 -153
 - data/lib/core/facets/symbol.rb +3 -1
 - data/lib/core/facets/symbol/chomp.rb +11 -29
 - data/lib/core/facets/symbol/generate.rb +4 -43
 - data/lib/core/facets/symbol/not.rb +13 -25
 - data/lib/core/facets/symbol/shadow.rb +2 -40
 - data/lib/core/facets/symbol/succ.rb +14 -13
 - data/lib/core/facets/symbol/to_proc.rb +33 -28
 - data/lib/core/facets/time.rb +1 -0
 - data/lib/core/facets/time/change.rb +5 -38
 - data/lib/core/facets/time/elapse.rb +2 -41
 - data/lib/core/facets/time/stamp.rb +47 -0
 - data/lib/core/facets/unboundmethod.rb +3 -0
 - data/lib/core/facets/unboundmethod/arguments.rb +27 -4
 - data/lib/core/facets/unboundmethod/name.rb +21 -7
 - data/lib/methods/facets/enumerable/cluster_by.rb +1 -1
 - data/lib/methods/facets/enumerable/collate.rb +1 -0
 - data/lib/methods/facets/enumerable/divide.rb +1 -1
 - data/lib/methods/facets/enumerable/each_by.rb +1 -1
 - data/lib/methods/facets/enumerable/each_pair.rb +1 -1
 - data/lib/methods/facets/enumerable/eachn.rb +1 -1
 - data/lib/methods/facets/enumerable/graph.rb +1 -1
 - data/lib/methods/facets/enumerable/group_by.rb +1 -1
 - data/lib/methods/facets/enumerable/inject.rb +1 -0
 - data/lib/methods/facets/enumerable/map_send.rb +1 -0
 - data/lib/methods/facets/enumerable/modulate.rb +1 -0
 - data/lib/methods/facets/enumerable/partition_by.rb +1 -1
 - data/lib/methods/facets/hash/collate.rb +1 -1
 - data/lib/methods/facets/hash/except.rb +1 -0
 - data/lib/methods/facets/hash/graph.rb +1 -1
 - data/lib/methods/facets/hash/mash.rb +1 -0
 - data/lib/methods/facets/kernel/Bit.rb +1 -0
 - data/lib/methods/facets/kernel/complete.rb +1 -1
 - data/lib/methods/facets/kernel/here.rb +1 -1
 - data/lib/methods/facets/kernel/non_nil.rb +1 -0
 - data/lib/methods/facets/kernel/respond_with_value.rb +1 -0
 - data/lib/methods/facets/kernel/with.rb +1 -1
 - data/lib/methods/facets/module/class_def.rb +1 -0
 - data/lib/methods/facets/string/camelcase.rb +1 -0
 - data/lib/methods/facets/string/op_minus.rb +1 -0
 - data/lib/methods/facets/string/snakecase.rb +1 -0
 - data/lib/more/facets/attributes.rb +5 -5
 - data/lib/more/facets/basicobject.rb +0 -62
 - data/lib/{core/facets/continuation/create.rb → more/facets/continuation.rb} +4 -21
 - data/lib/more/facets/duration.rb +534 -0
 - data/lib/more/facets/lazy.rb +3 -3
 - data/lib/more/facets/namespace.rb +23 -71
 - data/lib/more/facets/rbsystem.rb +42 -8
 - data/lib/more/facets/stylize.rb +6 -3
 - data/lib/more/facets/thread.rb +55 -0
 - data/meta/MANIFEST +49 -18
 - data/meta/ROLLRC +1 -1
 - data/meta/project.yaml +2 -2
 - data/task/install +1 -1
 - data/task/test/general +8 -2
 - data/test/unit/array/test_pad.rb +30 -45
 - data/test/unit/array/test_stackable.rb +14 -28
 - data/test/unit/binding/test_cflow.rb +34 -49
 - data/test/unit/binding/test_defined.rb +17 -0
 - data/test/unit/binding/test_eval.rb +11 -39
 - data/test/unit/binding/test_here.rb +17 -0
 - data/test/unit/binding/test_self.rb +17 -0
 - data/test/unit/binding/test_vars.rb +22 -37
 - data/test/unit/class/test_descendents.rb +15 -30
 - data/test/unit/class/test_initializer.rb +1 -8
 - data/test/unit/comparable/test_bound.rb +38 -53
 - data/test/unit/comparable/test_cmp.rb +45 -60
 - data/test/unit/dir/test_traverse.rb +56 -0
 - data/test/unit/enumerable/test_cartesian.rb +34 -47
 - data/test/unit/enumerable/test_collect.rb +16 -125
 - data/test/unit/enumerable/test_combination.rb +1 -8
 - data/test/unit/enumerable/test_count.rb +51 -66
 - data/test/unit/enumerable/test_each.rb +77 -0
 - data/test/unit/enumerable/test_mash.rb +51 -0
 - data/test/unit/enumerable/test_permutation.rb +1 -7
 - data/test/unit/enumerable/test_probability.rb +42 -55
 - data/test/unit/enumerable/test_split.rb +52 -0
 - data/test/unit/exception/test_detail.rb +19 -0
 - data/test/unit/file/test_read.rb +34 -0
 - data/test/unit/file/test_topath.rb +17 -25
 - data/test/unit/file/test_write.rb +6 -12
 - data/test/unit/filetest/test_root.rb +14 -0
 - data/test/unit/hash/test_at.rb +9 -21
 - data/test/unit/hash/test_delete.rb +22 -37
 - data/test/unit/hash/test_has_keys.rb +13 -28
 - data/test/unit/hash/test_insert.rb +9 -23
 - data/test/unit/hash/test_inverse.rb +11 -26
 - data/test/unit/hash/test_iterate.rb +16 -31
 - data/test/unit/hash/test_keyize.rb +40 -55
 - data/test/unit/hash/test_merge.rb +10 -25
 - data/test/unit/hash/test_new.rb +9 -24
 - data/test/unit/hash/test_op.rb +1 -7
 - data/test/unit/hash/test_rekey.rb +47 -62
 - data/test/unit/hash/test_traverse.rb +17 -32
 - data/test/unit/hash/test_update.rb +30 -45
 - data/test/unit/hash/test_weave.rb +10 -23
 - data/test/unit/integer/test_bitmask.rb +48 -44
 - data/test/unit/integer/test_factorial.rb +11 -26
 - data/test/unit/integer/test_multiples.rb +1 -5
 - data/test/unit/integer/test_of.rb +14 -29
 - data/test/unit/kernel/test_callstack.rb +13 -28
 - data/test/unit/kernel/test_constant.rb +14 -28
 - data/test/unit/kernel/test_deepcopy.rb +20 -35
 - data/test/unit/kernel/test_instance.rb +46 -61
 - data/test/unit/kernel/test_metaid.rb +42 -57
 - data/test/unit/kernel/test_object.rb +14 -29
 - data/test/unit/kernel/test_populate.rb +38 -53
 - data/test/unit/kernel/test_report.rb +1 -7
 - data/test/unit/kernel/test_returning.rb +16 -0
 - data/test/unit/kernel/test_silence.rb +8 -23
 - data/test/unit/kernel/test_super.rb +41 -56
 - data/test/unit/kernel/test_tap.rb +15 -39
 - data/test/unit/kernel/test_val.rb +7 -20
 - data/test/unit/kernel/test_withattr.rb +29 -44
 - data/test/unit/matchdata/test_matchset.rb +20 -35
 - data/test/unit/module/test_abstract.rb +15 -30
 - data/test/unit/module/test_alias.rb +32 -45
 - data/test/unit/module/test_cattr.rb +39 -54
 - data/test/unit/module/test_clone.rb +31 -43
 - data/test/unit/module/test_include.rb +1 -35
 - data/test/unit/module/test_modify.rb +102 -114
 - data/test/unit/module/test_name.rb +1 -7
 - data/test/unit/numeric/test_round.rb +46 -61
 - data/test/unit/proc/test_bind.rb +29 -44
 - data/test/unit/proc/test_compose.rb +20 -35
 - data/test/unit/range/test_combine.rb +14 -29
 - data/test/unit/range/test_overlap.rb +34 -51
 - data/test/unit/regexp/test_arity.rb +14 -29
 - data/test/unit/string/test_align.rb +13 -27
 - data/test/unit/string/test_blank.rb +12 -27
 - data/test/unit/string/test_bracket.rb +52 -67
 - data/test/unit/string/test_case.rb +19 -38
 - data/test/unit/string/test_crypt.rb +10 -25
 - data/test/unit/string/test_filter.rb +1 -7
 - data/test/unit/string/test_format.rb +2 -7
 - data/test/unit/string/test_indexable.rb +54 -69
 - data/test/unit/string/test_interpolate.rb +8 -21
 - data/test/unit/string/test_natcmp.rb +11 -26
 - data/test/unit/string/test_nchar.rb +1 -14
 - data/test/unit/string/test_op.rb +14 -0
 - data/test/unit/string/test_partitions.rb +39 -54
 - data/test/unit/string/test_range.rb +17 -32
 - data/test/unit/string/test_regesc.rb +1 -7
 - data/test/unit/string/test_scan.rb +23 -38
 - data/test/unit/string/test_stackable.rb +79 -98
 - data/test/unit/string/test_tabs.rb +1 -7
 - data/test/unit/symbol/test_chomp.rb +10 -21
 - data/test/unit/symbol/test_generate.rb +7 -22
 - data/test/unit/symbol/test_not.rb +10 -25
 - data/test/unit/symbol/test_shadow.rb +8 -23
 - data/test/unit/symbol/test_succ.rb +1 -7
 - data/test/unit/symbol/test_to_proc.rb +1 -7
 - data/test/unit/test_attributes.rb +1 -1
 - data/test/unit/test_continuation.rb +13 -0
 - data/test/unit/test_conversion.rb +1 -14
 - data/test/unit/test_namespace.rb +30 -3
 - data/test/unit/test_thread.rb +23 -0
 - data/test/unit/time/test_change.rb +11 -26
 - data/test/unit/time/test_elapse.rb +10 -25
 - data/test/unit/time/test_stamp.rb +28 -0
 - metadata +65 -25
 - data/lib/core/facets/array/unzip.rb +0 -14
 - data/lib/core/facets/continuation.rb +0 -1
 - data/lib/core/facets/enumerable/collate.rb +0 -104
 - data/lib/core/facets/kernel/require_esc.rb +0 -44
 - data/lib/more/facets/mapsend.rb +0 -98
 - data/lib/more/facets/pp_s.rb +0 -30
 - data/log/history.rd +0 -38
 - data/log/todo.rd +0 -4
 - data/task/special/quickopts +0 -15
 - data/test/unit/continuation/test_create.rb +0 -28
 - data/test/unit/enumerable/test_collate.rb +0 -51
 - data/test/unit/kernel/test_require_esc.rb +0 -29
 - data/test/unit/test_mapsend.rb +0 -18
 - data/test/unit/test_pp_s.rb +0 -17
 
    
        data/lib/core/facets/symbol.rb
    CHANGED
    
    | 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'facets/symbol/shadow.rb'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'facets/symbol/succ.rb'
         
     | 
| 
       3 
2 
     | 
    
         
             
            require 'facets/symbol/not.rb'
         
     | 
| 
       4 
3 
     | 
    
         
             
            require 'facets/symbol/generate.rb'
         
     | 
| 
       5 
4 
     | 
    
         
             
            require 'facets/symbol/chomp.rb'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # remove for 1.9
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'facets/symbol/succ.rb'
         
     | 
| 
       6 
8 
     | 
    
         
             
            require 'facets/symbol/to_proc.rb'
         
     | 
| 
         @@ -1,41 +1,23 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #--
         
     | 
| 
       2 
     | 
    
         
            -
            # CREDIT Thomas Sawyer
         
     | 
| 
       3 
     | 
    
         
            -
            #++
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
1 
     | 
    
         
             
            class Symbol
         
     | 
| 
       6 
2 
     | 
    
         | 
| 
       7 
3 
     | 
    
         
             
              # Just like String#chomp.
         
     | 
| 
       8 
4 
     | 
    
         
             
              #
         
     | 
| 
       9 
     | 
    
         
            -
               
     | 
| 
      
 5 
     | 
    
         
            +
              #   :ab.chomp(:b)  #=> :a
         
     | 
| 
      
 6 
     | 
    
         
            +
              #
         
     | 
| 
      
 7 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              def chomp(seperator)
         
     | 
| 
       10 
10 
     | 
    
         
             
                to_s.chomp(seperator.to_s).to_sym
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
              # Just like String#lchomp.
         
     | 
| 
       14 
14 
     | 
    
         
             
              #
         
     | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
               
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       23 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       24 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       25 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       26 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       27 
     | 
    
         
            -
            #
         
     | 
| 
       28 
     | 
    
         
            -
            =begin test
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
              class TestSymbol < Test::Unit::TestCase
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                def test_chomp
         
     | 
| 
       35 
     | 
    
         
            -
                  assert_equal( :a, :ab.chomp(:b) )
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              #   :ab.lchomp(:a)  #=> :b
         
     | 
| 
      
 16 
     | 
    
         
            +
              #
         
     | 
| 
      
 17 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
       37 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              def lchomp(seperator)
         
     | 
| 
      
 20 
     | 
    
         
            +
                to_s.reverse.chomp(seperator.to_s).reverse.to_sym
         
     | 
| 
       38 
21 
     | 
    
         
             
              end
         
     | 
| 
       39 
22 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,21 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # TITLE:
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            #   Symbol Generation
         
     | 
| 
       4 
     | 
    
         
            -
            #
         
     | 
| 
       5 
     | 
    
         
            -
            # DESCRIPTION:
         
     | 
| 
       6 
     | 
    
         
            -
            #
         
     | 
| 
       7 
     | 
    
         
            -
            #    Symbol generation extensions.
         
     | 
| 
       8 
     | 
    
         
            -
            #
         
     | 
| 
       9 
     | 
    
         
            -
            # AUTHORS:
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   CREDIT Thomas Sawyer
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
            # NOTES:
         
     | 
| 
       14 
     | 
    
         
            -
            #
         
     | 
| 
       15 
     | 
    
         
            -
            #   TODO Is Symbol#chomp worth having? Are the any other
         
     | 
| 
       16 
     | 
    
         
            -
            #        String methods that Symbols really should have too?
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            #
         
     | 
| 
       19 
1 
     | 
    
         
             
            class Symbol
         
     | 
| 
       20 
2 
     | 
    
         | 
| 
       21 
3 
     | 
    
         
             
              # Generate a unique symbol.
         
     | 
| 
         @@ -26,34 +8,13 @@ class Symbol 
     | 
|
| 
       26 
8 
     | 
    
         
             
              #
         
     | 
| 
       27 
9 
     | 
    
         
             
              #   Symbol.generate(:this) => :<2>this
         
     | 
| 
       28 
10 
     | 
    
         
             
              #
         
     | 
| 
       29 
     | 
    
         
            -
               
     | 
| 
       30 
     | 
    
         
            -
              # 
     | 
| 
       31 
     | 
    
         
            -
               
     | 
| 
      
 11 
     | 
    
         
            +
              #   TODO: Is the generated symbol format acceptable?
         
     | 
| 
      
 12 
     | 
    
         
            +
              #
         
     | 
| 
      
 13 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       32 
15 
     | 
    
         
             
              def self.generate(suffix=nil)
         
     | 
| 
       33 
16 
     | 
    
         
             
                @symbol_generate_counter ||= 0
         
     | 
| 
       34 
17 
     | 
    
         
             
                ("<%X>#{suffix}" % @symbol_generate_counter += 1).to_sym
         
     | 
| 
       35 
18 
     | 
    
         
             
              end
         
     | 
| 
       36 
19 
     | 
    
         | 
| 
       37 
20 
     | 
    
         
             
            end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       41 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       42 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       43 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       44 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       45 
     | 
    
         
            -
            #
         
     | 
| 
       46 
     | 
    
         
            -
            =begin test
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              class TestSymbol < Test::Unit::TestCase
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                def test_generate
         
     | 
| 
       53 
     | 
    
         
            -
                  assert_equal( Symbol.generate, :'<1>' )
         
     | 
| 
       54 
     | 
    
         
            -
                end
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
              end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
            =end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
         @@ -1,10 +1,22 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
1 
     | 
    
         
             
            class Symbol
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
              # Does a symbol have a "not" sign?
         
     | 
| 
      
 4 
     | 
    
         
            +
              #
         
     | 
| 
      
 5 
     | 
    
         
            +
              #   "friend".to_sym.not?   #=> false
         
     | 
| 
      
 6 
     | 
    
         
            +
              #   "~friend".to_sym.not?  #=> true
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       4 
10 
     | 
    
         
             
              def not?
         
     | 
| 
       5 
11 
     | 
    
         
             
                self.to_s.slice(0,1) == '~'
         
     | 
| 
       6 
12 
     | 
    
         
             
              end
         
     | 
| 
       7 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
              # Add a "not" sign to the front of a symbol.
         
     | 
| 
      
 15 
     | 
    
         
            +
              #
         
     | 
| 
      
 16 
     | 
    
         
            +
              #   ~:friend    #=> :"~friend"
         
     | 
| 
      
 17 
     | 
    
         
            +
              #
         
     | 
| 
      
 18 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       8 
20 
     | 
    
         
             
              def ~@
         
     | 
| 
       9 
21 
     | 
    
         
             
                if self.to_s.slice(0,1) == '~'
         
     | 
| 
       10 
22 
     | 
    
         
             
                  "#{self.to_s[1..-1]}".to_sym
         
     | 
| 
         @@ -14,27 +26,3 @@ class Symbol 
     | 
|
| 
       14 
26 
     | 
    
         
             
              end
         
     | 
| 
       15 
27 
     | 
    
         | 
| 
       16 
28 
     | 
    
         
             
            end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       20 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       21 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       22 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       23 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       24 
     | 
    
         
            -
            #
         
     | 
| 
       25 
     | 
    
         
            -
            =begin test
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              class TCSymbol < Test::Unit::TestCase
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                def test_not
         
     | 
| 
       32 
     | 
    
         
            -
                  assert_equal( :"~a", ~:a )
         
     | 
| 
       33 
     | 
    
         
            -
                  a = :a
         
     | 
| 
       34 
     | 
    
         
            -
                  n = ~a
         
     | 
| 
       35 
     | 
    
         
            -
                  assert( n.not? )
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
            =end
         
     | 
| 
         @@ -1,21 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # TITLE:
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            #   Symbol Generation
         
     | 
| 
       4 
     | 
    
         
            -
            #
         
     | 
| 
       5 
     | 
    
         
            -
            # DESCRIPTION:
         
     | 
| 
       6 
     | 
    
         
            -
            #
         
     | 
| 
       7 
     | 
    
         
            -
            #    Symbol generation extensions.
         
     | 
| 
       8 
     | 
    
         
            -
            #
         
     | 
| 
       9 
     | 
    
         
            -
            # AUTHORS:
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   CREDIT Thomas Sawyer
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
            # NOTES:
         
     | 
| 
       14 
     | 
    
         
            -
            #
         
     | 
| 
       15 
     | 
    
         
            -
            #   TODO Is Symbol#chomp worth having? Are the any other
         
     | 
| 
       16 
     | 
    
         
            -
            #        String methods that Symbols really should have too?
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            #
         
     | 
| 
       19 
1 
     | 
    
         
             
            class Symbol
         
     | 
| 
       20 
2 
     | 
    
         | 
| 
       21 
3 
     | 
    
         
             
              # Easily manipulate undercores on symbols.
         
     | 
| 
         @@ -23,6 +5,8 @@ class Symbol 
     | 
|
| 
       23 
5 
     | 
    
         
             
              #   :a.pad(2)         #=> :__a__
         
     | 
| 
       24 
6 
     | 
    
         
             
              #   :__a__.pad(-1)    #=> :_a_
         
     | 
| 
       25 
7 
     | 
    
         
             
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              #   CREDIT: Trans
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       26 
10 
     | 
    
         
             
              def shadow(i=1)
         
     | 
| 
       27 
11 
     | 
    
         
             
                return self if i == 0
         
     | 
| 
       28 
12 
     | 
    
         
             
                s = self.to_s
         
     | 
| 
         @@ -37,25 +21,3 @@ class Symbol 
     | 
|
| 
       37 
21 
     | 
    
         
             
              alias :pad :shadow
         
     | 
| 
       38 
22 
     | 
    
         | 
| 
       39 
23 
     | 
    
         
             
            end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       43 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       44 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       45 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       46 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       47 
     | 
    
         
            -
            #
         
     | 
| 
       48 
     | 
    
         
            -
            =begin test
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
              class TestSymbol < Test::Unit::TestCase
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                def test_shadow
         
     | 
| 
       55 
     | 
    
         
            -
                  assert_equal( :__a__, :a.shadow(2) )
         
     | 
| 
       56 
     | 
    
         
            -
                  assert_equal( :_a_, :__a__.shadow(-1) )
         
     | 
| 
       57 
     | 
    
         
            -
                end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
              end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
            =end
         
     | 
| 
         @@ -1,18 +1,19 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # DEPRECATE for 1.9
         
     | 
| 
      
 2 
     | 
    
         
            +
            unless (RUBY_VERSION[0,3] == '1.9')
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
               
     | 
| 
       4 
     | 
    
         
            -
              # the symbol to a string uses String#succ and then
         
     | 
| 
       5 
     | 
    
         
            -
              # converts it back to a symbol.
         
     | 
| 
       6 
     | 
    
         
            -
              #
         
     | 
| 
       7 
     | 
    
         
            -
              #   :a.succ => :b
         
     | 
| 
       8 
     | 
    
         
            -
              #
         
     | 
| 
       9 
     | 
    
         
            -
              #--
         
     | 
| 
       10 
     | 
    
         
            -
              # In the future I would like this to work more like
         
     | 
| 
       11 
     | 
    
         
            -
              # a simple character dial.
         
     | 
| 
       12 
     | 
    
         
            -
              #++
         
     | 
| 
      
 4 
     | 
    
         
            +
              class Symbol
         
     | 
| 
       13 
5 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                # Successor method for symobol. This simply converts
         
     | 
| 
      
 7 
     | 
    
         
            +
                # the symbol to a string uses String#succ and then
         
     | 
| 
      
 8 
     | 
    
         
            +
                # converts it back to a symbol.
         
     | 
| 
      
 9 
     | 
    
         
            +
                #
         
     | 
| 
      
 10 
     | 
    
         
            +
                #   :a.succ => :b
         
     | 
| 
      
 11 
     | 
    
         
            +
                #
         
     | 
| 
      
 12 
     | 
    
         
            +
                #   TODO: Make this  work more like a simple character dial.
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def succ
         
     | 
| 
      
 15 
     | 
    
         
            +
                  self.to_s.succ.intern
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
       16 
17 
     | 
    
         
             
              end
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
19 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,34 +1,39 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # DEPRECATE for 1.9
         
     | 
| 
      
 2 
     | 
    
         
            +
            unless (RUBY_VERSION[0,3] == '1.9')
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
               
     | 
| 
       4 
     | 
    
         
            -
              # which it refers.
         
     | 
| 
       5 
     | 
    
         
            -
              #
         
     | 
| 
       6 
     | 
    
         
            -
              #   up = :upcase.to_proc
         
     | 
| 
       7 
     | 
    
         
            -
              #   up.call("hello")  #=> HELLO
         
     | 
| 
       8 
     | 
    
         
            -
              #
         
     | 
| 
       9 
     | 
    
         
            -
              # More useful is the fact that this allows <tt>&</tt>
         
     | 
| 
       10 
     | 
    
         
            -
              # to be used to coerce Symbol into Proc. 
         
     | 
| 
       11 
     | 
    
         
            -
              #
         
     | 
| 
       12 
     | 
    
         
            -
              #   %w{foo bar qux}.map(&:upcase)   #=> ["FOO","BAR","QUX"]
         
     | 
| 
       13 
     | 
    
         
            -
              #   [1, 2, 3].inject(&:+)           #=> 6
         
     | 
| 
       14 
     | 
    
         
            -
              #
         
     | 
| 
       15 
     | 
    
         
            -
              # And other conveniences such as:
         
     | 
| 
       16 
     | 
    
         
            -
              #
         
     | 
| 
       17 
     | 
    
         
            -
              #   %{john terry fiona}.map(&:capitalize)   # -> %{John Terry Fiona}
         
     | 
| 
       18 
     | 
    
         
            -
              #   sum = numbers.inject(&:+)
         
     | 
| 
       19 
     | 
    
         
            -
              #
         
     | 
| 
       20 
     | 
    
         
            -
              # TODO This will be deprecated as of Ruby 1.9, since it will become standard Ruby.
         
     | 
| 
       21 
     | 
    
         
            -
              #
         
     | 
| 
       22 
     | 
    
         
            -
              #   CREDIT Florian Gross (orignal)
         
     | 
| 
       23 
     | 
    
         
            -
              #   CREDIT Nobuhiro Imai (current)
         
     | 
| 
      
 4 
     | 
    
         
            +
              class Symbol
         
     | 
| 
       24 
5 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
                # Turn a symbol into a proc calling the method to
         
     | 
| 
      
 7 
     | 
    
         
            +
                # which it refers.
         
     | 
| 
      
 8 
     | 
    
         
            +
                #
         
     | 
| 
      
 9 
     | 
    
         
            +
                #   up = :upcase.to_proc
         
     | 
| 
      
 10 
     | 
    
         
            +
                #   up.call("hello")  #=> HELLO
         
     | 
| 
      
 11 
     | 
    
         
            +
                #
         
     | 
| 
      
 12 
     | 
    
         
            +
                # More useful is the fact that this allows <tt>&</tt>
         
     | 
| 
      
 13 
     | 
    
         
            +
                # to be used to coerce Symbol into Proc.
         
     | 
| 
      
 14 
     | 
    
         
            +
                #
         
     | 
| 
      
 15 
     | 
    
         
            +
                #   %w{foo bar qux}.map(&:upcase)   #=> ["FOO","BAR","QUX"]
         
     | 
| 
      
 16 
     | 
    
         
            +
                #   [1, 2, 3].inject(&:+)           #=> 6
         
     | 
| 
      
 17 
     | 
    
         
            +
                #
         
     | 
| 
      
 18 
     | 
    
         
            +
                # And other conveniences such as:
         
     | 
| 
      
 19 
     | 
    
         
            +
                #
         
     | 
| 
      
 20 
     | 
    
         
            +
                #   %{john terry fiona}.map(&:capitalize)   # -> %{John Terry Fiona}
         
     | 
| 
      
 21 
     | 
    
         
            +
                #   sum = numbers.inject(&:+)
         
     | 
| 
      
 22 
     | 
    
         
            +
                #
         
     | 
| 
      
 23 
     | 
    
         
            +
                #   TODO: This will be deprecated as of Ruby 1.9, since it will become standard Ruby.
         
     | 
| 
      
 24 
     | 
    
         
            +
                #
         
     | 
| 
      
 25 
     | 
    
         
            +
                #   CREDIT: Florian Gross (orignal)
         
     | 
| 
      
 26 
     | 
    
         
            +
                #   CREDIT: Nobuhiro Imai (current)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def to_proc
         
     | 
| 
      
 29 
     | 
    
         
            +
                  Proc.new{|*args| args.shift.__send__(self, *args)}
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
       28 
31 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
               
     | 
| 
      
 32 
     | 
    
         
            +
                # OLD DEFINITION
         
     | 
| 
      
 33 
     | 
    
         
            +
                #def to_proc
         
     | 
| 
      
 34 
     | 
    
         
            +
                #  proc { |obj, *args| obj.send(self, *args) }
         
     | 
| 
      
 35 
     | 
    
         
            +
                #end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
       32 
37 
     | 
    
         | 
| 
       33 
38 
     | 
    
         
             
            end
         
     | 
| 
       34 
39 
     | 
    
         | 
    
        data/lib/core/facets/time.rb
    CHANGED
    
    
| 
         @@ -1,16 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # = FILE
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            #   time/change.rb
         
     | 
| 
       4 
     | 
    
         
            -
            #
         
     | 
| 
       5 
     | 
    
         
            -
            # = DESCRIPTION
         
     | 
| 
       6 
     | 
    
         
            -
            #
         
     | 
| 
       7 
     | 
    
         
            -
            #   Time extension for changing time.
         
     | 
| 
       8 
     | 
    
         
            -
            #
         
     | 
| 
       9 
     | 
    
         
            -
            # = AUTHORS
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   CREDIT Thomas Sawyer
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            #
         
     | 
| 
       14 
1 
     | 
    
         
             
            class Time
         
     | 
| 
       15 
2 
     | 
    
         | 
| 
       16 
3 
     | 
    
         
             
              # Returns a new Time where one or more of the elements
         
     | 
| 
         @@ -19,6 +6,11 @@ class Time 
     | 
|
| 
       19 
6 
     | 
    
         
             
              # cascadingly, so if only the hour is passed, then
         
     | 
| 
       20 
7 
     | 
    
         
             
              # minute, sec, and usec is set to 0. If the hour and
         
     | 
| 
       21 
8 
     | 
    
         
             
              # minute is passed, then sec and usec is set to 0.
         
     | 
| 
      
 9 
     | 
    
         
            +
              #
         
     | 
| 
      
 10 
     | 
    
         
            +
              #  t = Time.now            #=> Sat Dec 01 14:10:15 -0500 2007
         
     | 
| 
      
 11 
     | 
    
         
            +
              #  t.change(:hour => 11)   #=> Sat Dec 01 11:00:00 -0500 2007
         
     | 
| 
      
 12 
     | 
    
         
            +
              #
         
     | 
| 
      
 13 
     | 
    
         
            +
              #  CREDIT: David Hansson (?)
         
     | 
| 
       22 
14 
     | 
    
         | 
| 
       23 
15 
     | 
    
         
             
              def change(options)
         
     | 
| 
       24 
16 
     | 
    
         
             
                opts={}; options.each_pair{ |k,v| opts[k] = v.to_i }
         
     | 
| 
         @@ -34,28 +26,3 @@ class Time 
     | 
|
| 
       34 
26 
     | 
    
         
             
              end
         
     | 
| 
       35 
27 
     | 
    
         | 
| 
       36 
28 
     | 
    
         
             
            end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       40 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       41 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       42 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       43 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       44 
     | 
    
         
            -
            #
         
     | 
| 
       45 
     | 
    
         
            -
            =begin test
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
              class TestTimeChange < Test::Unit::TestCase
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                def test_change
         
     | 
| 
       52 
     | 
    
         
            -
                  t = Time.parse('4/20/2006 15:37')
         
     | 
| 
       53 
     | 
    
         
            -
                  n = Time.now
         
     | 
| 
       54 
     | 
    
         
            -
                  n = n.change( :month=>4, :day=>20, :hour=>15, :min=>37, :year=>2006 )
         
     | 
| 
       55 
     | 
    
         
            -
                  assert_equal( t, n )
         
     | 
| 
       56 
     | 
    
         
            -
                end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
              end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
            =end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
         @@ -1,25 +1,11 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # = FILE
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            #   time/change.rb
         
     | 
| 
       4 
     | 
    
         
            -
            #
         
     | 
| 
       5 
     | 
    
         
            -
            # = DESCRIPTION
         
     | 
| 
       6 
     | 
    
         
            -
            #
         
     | 
| 
       7 
     | 
    
         
            -
            #   Time extension for changing time.
         
     | 
| 
       8 
     | 
    
         
            -
            #
         
     | 
| 
       9 
     | 
    
         
            -
            # = AUTHORS
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   CREDIT Thomas Sawyer
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            #
         
     | 
| 
       14 
1 
     | 
    
         
             
            class Time
         
     | 
| 
       15 
2 
     | 
    
         | 
| 
       16 
3 
     | 
    
         
             
              # Tracks the elapse time of a code block.
         
     | 
| 
       17 
4 
     | 
    
         
             
              #
         
     | 
| 
       18 
5 
     | 
    
         
             
              #   Time.elapse { sleep 1 }  #=> 0.999188899993896
         
     | 
| 
       19 
6 
     | 
    
         
             
              #
         
     | 
| 
       20 
     | 
    
         
            -
               
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              #++
         
     | 
| 
      
 7 
     | 
    
         
            +
              #   CREDIT: Hal Fulton
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       23 
9 
     | 
    
         
             
              def self.elapse
         
     | 
| 
       24 
10 
     | 
    
         
             
                raise "Need block" unless block_given?
         
     | 
| 
       25 
11 
     | 
    
         
             
                t0 = Time.now.to_f
         
     | 
| 
         @@ -28,28 +14,3 @@ class Time 
     | 
|
| 
       28 
14 
     | 
    
         
             
              end
         
     | 
| 
       29 
15 
     | 
    
         | 
| 
       30 
16 
     | 
    
         
             
            end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
            #  _____         _
         
     | 
| 
       35 
     | 
    
         
            -
            # |_   _|__  ___| |_
         
     | 
| 
       36 
     | 
    
         
            -
            #   | |/ _ \/ __| __|
         
     | 
| 
       37 
     | 
    
         
            -
            #   | |  __/\__ \ |_
         
     | 
| 
       38 
     | 
    
         
            -
            #   |_|\___||___/\__|
         
     | 
| 
       39 
     | 
    
         
            -
            #
         
     | 
| 
       40 
     | 
    
         
            -
            =begin test
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
              require 'test/unit'
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
              class TestTime < Test::Unit::TestCase
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                def test_elapse
         
     | 
| 
       47 
     | 
    
         
            -
                  #t = Time.parse('4/20/2006 15:37')
         
     | 
| 
       48 
     | 
    
         
            -
                  t = Time.elapse { sleep 1 }
         
     | 
| 
       49 
     | 
    
         
            -
                  assert( (t > 0.9) && (t < 2.1 ))
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
              end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
            =end
         
     | 
| 
       55 
     | 
    
         
            -
             
     |