tbpgr_utils 0.0.14 → 0.0.15
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/README.md +35 -0
 - data/lib/open_classes/array.rb +98 -98
 - data/lib/open_classes/module.rb +13 -0
 - data/lib/tbpgr_utils.rb +1 -0
 - data/lib/tbpgr_utils/version.rb +1 -1
 - data/spec/open_classes/array_spec.rb +175 -175
 - data/spec/open_classes/module_spec.rb +71 -0
 - metadata +13 -10
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -33,6 +33,7 @@ Or install it yourself as: 
     | 
|
| 
       33 
33 
     | 
    
         
             
            |TbpgrUtils Kernel#print_eval                            |Print code + eval result                                                                          |
         
     | 
| 
       34 
34 
     | 
    
         
             
            |TbpgrUtils Kernel#puts_eval                             |Puts code + eval result                                                                           |
         
     | 
| 
       35 
35 
     | 
    
         
             
            |TbpgrUtils Kernel#bulk_puts_eval                        |Puts each-line-code + eval result                                                                 |
         
     | 
| 
      
 36 
     | 
    
         
            +
            |TbpgrUtils Module.alias_methods                         |create alias methods                                                                              |
         
     | 
| 
       36 
37 
     | 
    
         
             
            |TbpgrUtils Object#any_of?                               |if self match any one of items, return true                                                       |
         
     | 
| 
       37 
38 
     | 
    
         
             
            |TbpgrUtils Object#boolean?                              |data type check for boolean                                                                       |
         
     | 
| 
       38 
39 
     | 
    
         
             
            |TbpgrUtils Object#my_methods                            |return public/protected/private self define methods                                               |
         
     | 
| 
         @@ -407,6 +408,39 @@ output 
     | 
|
| 
       407 
408 
     | 
    
         
             
            "hoge-hige2" + "add" + message # => "hoge-hige2addmsg"
         
     | 
| 
       408 
409 
     | 
    
         
             
            ~~~
         
     | 
| 
       409 
410 
     | 
    
         | 
| 
      
 411 
     | 
    
         
            +
            ### Module.alias_methods
         
     | 
| 
      
 412 
     | 
    
         
            +
            create alias methods.
         
     | 
| 
      
 413 
     | 
    
         
            +
             
     | 
| 
      
 414 
     | 
    
         
            +
            ~~~ruby
         
     | 
| 
      
 415 
     | 
    
         
            +
            require "tbpgr_utils"
         
     | 
| 
      
 416 
     | 
    
         
            +
             
     | 
| 
      
 417 
     | 
    
         
            +
            class Hoge
         
     | 
| 
      
 418 
     | 
    
         
            +
              def hoge
         
     | 
| 
      
 419 
     | 
    
         
            +
                "hoge"
         
     | 
| 
      
 420 
     | 
    
         
            +
              end
         
     | 
| 
      
 421 
     | 
    
         
            +
             
     | 
| 
      
 422 
     | 
    
         
            +
              alias_methods [:hige, :hege, :huge], :hoge
         
     | 
| 
      
 423 
     | 
    
         
            +
            end
         
     | 
| 
      
 424 
     | 
    
         
            +
             
     | 
| 
      
 425 
     | 
    
         
            +
            Hoge.new.hoge # => "hoge"
         
     | 
| 
      
 426 
     | 
    
         
            +
            Hoge.new.hige # => "hoge"
         
     | 
| 
      
 427 
     | 
    
         
            +
            Hoge.new.hege # => "hoge"
         
     | 
| 
      
 428 
     | 
    
         
            +
            Hoge.new.huge # => "hoge"
         
     | 
| 
      
 429 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 430 
     | 
    
         
            +
             
     | 
| 
      
 431 
     | 
    
         
            +
            same code is...
         
     | 
| 
      
 432 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 433 
     | 
    
         
            +
            class Hoge
         
     | 
| 
      
 434 
     | 
    
         
            +
              def hoge
         
     | 
| 
      
 435 
     | 
    
         
            +
                "hoge"
         
     | 
| 
      
 436 
     | 
    
         
            +
              end
         
     | 
| 
      
 437 
     | 
    
         
            +
             
     | 
| 
      
 438 
     | 
    
         
            +
              alias_method :hige, :hoge
         
     | 
| 
      
 439 
     | 
    
         
            +
              alias_method :hege, :hoge
         
     | 
| 
      
 440 
     | 
    
         
            +
              alias_method :huge, :hoge
         
     | 
| 
      
 441 
     | 
    
         
            +
            end
         
     | 
| 
      
 442 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 443 
     | 
    
         
            +
             
     | 
| 
       410 
444 
     | 
    
         
             
            ### Object#any_of?
         
     | 
| 
       411 
445 
     | 
    
         
             
            ~~~ruby
         
     | 
| 
       412 
446 
     | 
    
         
             
            require 'tbpgr_utils'
         
     | 
| 
         @@ -580,6 +614,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils. 
     | 
|
| 
       580 
614 
     | 
    
         
             
            https://github.com/tbpgr/tbpgr_utils_snippets
         
     | 
| 
       581 
615 
     | 
    
         | 
| 
       582 
616 
     | 
    
         
             
            ## History
         
     | 
| 
      
 617 
     | 
    
         
            +
            * version 0.0.15 : add Module.alias_methods
         
     | 
| 
       583 
618 
     | 
    
         
             
            * version 0.0.14 : add Array#together_map(aliases => [tmap, together_collect, tcollect])
         
     | 
| 
       584 
619 
     | 
    
         
             
            * version 0.0.13 : add Array#together_with_index, Kernel#bulk_puts_eval
         
     | 
| 
       585 
620 
     | 
    
         
             
            * version 0.0.12 : AttributesInitializable::ClassMethods.attr_reader_init,attr_writer_init
         
     | 
    
        data/lib/open_classes/array.rb
    CHANGED
    
    | 
         @@ -1,98 +1,98 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # encoding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require 'open_classes/object'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            # Array
         
     | 
| 
       5 
     | 
    
         
            -
            class Array
         
     | 
| 
       6 
     | 
    
         
            -
              # Arrays loop together.
         
     | 
| 
       7 
     | 
    
         
            -
              #
         
     | 
| 
       8 
     | 
    
         
            -
              #   alpha = %w{one two three}
         
     | 
| 
       9 
     | 
    
         
            -
              #   numbers = %w{1 2 3}
         
     | 
| 
       10 
     | 
    
         
            -
              #   [alpha, numbers].together do |first, second|
         
     | 
| 
       11 
     | 
    
         
            -
              #     print "#{first}:#{second}\n"  # => output one:1, two:2, three:3
         
     | 
| 
       12 
     | 
    
         
            -
              #   end
         
     | 
| 
       13 
     | 
    
         
            -
              def together
         
     | 
| 
       14 
     | 
    
         
            -
                if_not_contain_array_rails_type_error
         
     | 
| 
       15 
     | 
    
         
            -
                first.each_with_index do |i_v, i|
         
     | 
| 
       16 
     | 
    
         
            -
                  eval_each_str = get_args_str_for_together i
         
     | 
| 
       17 
     | 
    
         
            -
                  instance_eval "yield(#{eval_each_str})"
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
              # Arrays loop together with index.
         
     | 
| 
       22 
     | 
    
         
            -
              #
         
     | 
| 
       23 
     | 
    
         
            -
              #   alpha = %w{one two three}
         
     | 
| 
       24 
     | 
    
         
            -
              #   numbers = %w{1 2 3}
         
     | 
| 
       25 
     | 
    
         
            -
              #   [alpha, numbers].together_with_index do |first, second, index|
         
     | 
| 
       26 
     | 
    
         
            -
              #     print "#{index.to_s}:#{first}:#{second}\n"  # => output 0:one:1, 1:two:2, 2:three:3
         
     | 
| 
       27 
     | 
    
         
            -
              #   end
         
     | 
| 
       28 
     | 
    
         
            -
              def together_with_index
         
     | 
| 
       29 
     | 
    
         
            -
                if_not_contain_array_rails_type_error
         
     | 
| 
       30 
     | 
    
         
            -
                first.each_with_index do |i_v, i|
         
     | 
| 
       31 
     | 
    
         
            -
                  eval_each_str = get_args_str_for_together i, true
         
     | 
| 
       32 
     | 
    
         
            -
                  instance_eval "yield(#{eval_each_str})"
         
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
       34 
     | 
    
         
            -
              end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
              # Arrays together map.
         
     | 
| 
       37 
     | 
    
         
            -
              #
         
     | 
| 
       38 
     | 
    
         
            -
              # together_map has aliases [:tmap, :together_collect, :tcollect]
         
     | 
| 
       39 
     | 
    
         
            -
              #
         
     | 
| 
       40 
     | 
    
         
            -
              # if you want to single Array return
         
     | 
| 
       41 
     | 
    
         
            -
              #   alpha = %w{one two three}
         
     | 
| 
       42 
     | 
    
         
            -
              #   numbers = %w{1 2 3}
         
     | 
| 
       43 
     | 
    
         
            -
              #   print [alpha, numbers].together_map do |first, second|
         
     | 
| 
       44 
     | 
    
         
            -
              #     "#{first}:#{second}\n"
         
     | 
| 
       45 
     | 
    
         
            -
              #   end # => output one:1, two:2, three:3
         
     | 
| 
       46 
     | 
    
         
            -
              #
         
     | 
| 
       47 
     | 
    
         
            -
              # if you want to multi Array return
         
     | 
| 
       48 
     | 
    
         
            -
              #   alpha = %w{one two three}
         
     | 
| 
       49 
     | 
    
         
            -
              #   numbers = %w{1 2 3}
         
     | 
| 
       50 
     | 
    
         
            -
              #   print [alpha, numbers].together_map do |first, second|
         
     | 
| 
       51 
     | 
    
         
            -
              #     ["#{first}:#{second}", "#{second}:#{first}"]
         
     | 
| 
       52 
     | 
    
         
            -
              #   end # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
         
     | 
| 
       53 
     | 
    
         
            -
              def together_map
         
     | 
| 
       54 
     | 
    
         
            -
                if_not_contain_array_rails_type_error
         
     | 
| 
       55 
     | 
    
         
            -
                ret = []
         
     | 
| 
       56 
     | 
    
         
            -
                first.each_with_index do |i_v, i|
         
     | 
| 
       57 
     | 
    
         
            -
                  eval_each_str = get_args_str_for_together i
         
     | 
| 
       58 
     | 
    
         
            -
                  each_ret = instance_eval "yield(#{eval_each_str})"
         
     | 
| 
       59 
     | 
    
         
            -
                  ret = set_together_each_return(ret, each_ret, i)
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
                ret
         
     | 
| 
       62 
     | 
    
         
            -
              end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
              alias_method :together_collect, :together_map
         
     | 
| 
       65 
     | 
    
         
            -
              alias_method :tmap, :together_map
         
     | 
| 
       66 
     | 
    
         
            -
              alias_method :tcollect, :together_map
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              private
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
              def if_not_contain_array_rails_type_error
         
     | 
| 
       71 
     | 
    
         
            -
                each { |f|fail TypeError, "you have to use [Array1, Array2, ...] | #{f.class} is invalid" unless f.class == Array }
         
     | 
| 
       72 
     | 
    
         
            -
              end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
              def get_args_for_together(i)
         
     | 
| 
       75 
     | 
    
         
            -
                eval_each = []
         
     | 
| 
       76 
     | 
    
         
            -
                each_with_index {|j_v, j|eval_each << "self[#{j}][#{i}]"}
         
     | 
| 
       77 
     | 
    
         
            -
                eval_each
         
     | 
| 
       78 
     | 
    
         
            -
              end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
              def get_args_str_for_together(i, with_index = false)
         
     | 
| 
       81 
     | 
    
         
            -
                each_eval = with_index ? get_args_for_together(i) << i : get_args_for_together(i)
         
     | 
| 
       82 
     | 
    
         
            -
                each_eval.join(',')
         
     | 
| 
       83 
     | 
    
         
            -
              end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
              def set_together_each_return(ret, each_ret, index)
         
     | 
| 
       86 
     | 
    
         
            -
                if together_return_multi?(each_ret)
         
     | 
| 
       87 
     | 
    
         
            -
                   
     | 
| 
       88 
     | 
    
         
            -
                  (0..( 
     | 
| 
       89 
     | 
    
         
            -
                else
         
     | 
| 
       90 
     | 
    
         
            -
                  ret << each_ret
         
     | 
| 
       91 
     | 
    
         
            -
                end
         
     | 
| 
       92 
     | 
    
         
            -
                ret
         
     | 
| 
       93 
     | 
    
         
            -
              end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
              def together_return_multi?(list)
         
     | 
| 
       96 
     | 
    
         
            -
                (list.class == Array && list.size ==  
     | 
| 
       97 
     | 
    
         
            -
              end
         
     | 
| 
       98 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'open_classes/object'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            # Array
         
     | 
| 
      
 5 
     | 
    
         
            +
            class Array
         
     | 
| 
      
 6 
     | 
    
         
            +
              # Arrays loop together.
         
     | 
| 
      
 7 
     | 
    
         
            +
              #
         
     | 
| 
      
 8 
     | 
    
         
            +
              #   alpha = %w{one two three}
         
     | 
| 
      
 9 
     | 
    
         
            +
              #   numbers = %w{1 2 3}
         
     | 
| 
      
 10 
     | 
    
         
            +
              #   [alpha, numbers].together do |first, second|
         
     | 
| 
      
 11 
     | 
    
         
            +
              #     print "#{first}:#{second}\n"  # => output one:1, two:2, three:3
         
     | 
| 
      
 12 
     | 
    
         
            +
              #   end
         
     | 
| 
      
 13 
     | 
    
         
            +
              def together
         
     | 
| 
      
 14 
     | 
    
         
            +
                if_not_contain_array_rails_type_error
         
     | 
| 
      
 15 
     | 
    
         
            +
                first.each_with_index do |i_v, i|
         
     | 
| 
      
 16 
     | 
    
         
            +
                  eval_each_str = get_args_str_for_together i
         
     | 
| 
      
 17 
     | 
    
         
            +
                  instance_eval "yield(#{eval_each_str})"
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              # Arrays loop together with index.
         
     | 
| 
      
 22 
     | 
    
         
            +
              #
         
     | 
| 
      
 23 
     | 
    
         
            +
              #   alpha = %w{one two three}
         
     | 
| 
      
 24 
     | 
    
         
            +
              #   numbers = %w{1 2 3}
         
     | 
| 
      
 25 
     | 
    
         
            +
              #   [alpha, numbers].together_with_index do |first, second, index|
         
     | 
| 
      
 26 
     | 
    
         
            +
              #     print "#{index.to_s}:#{first}:#{second}\n"  # => output 0:one:1, 1:two:2, 2:three:3
         
     | 
| 
      
 27 
     | 
    
         
            +
              #   end
         
     | 
| 
      
 28 
     | 
    
         
            +
              def together_with_index
         
     | 
| 
      
 29 
     | 
    
         
            +
                if_not_contain_array_rails_type_error
         
     | 
| 
      
 30 
     | 
    
         
            +
                first.each_with_index do |i_v, i|
         
     | 
| 
      
 31 
     | 
    
         
            +
                  eval_each_str = get_args_str_for_together i, true
         
     | 
| 
      
 32 
     | 
    
         
            +
                  instance_eval "yield(#{eval_each_str})"
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              # Arrays together map.
         
     | 
| 
      
 37 
     | 
    
         
            +
              #
         
     | 
| 
      
 38 
     | 
    
         
            +
              # together_map has aliases [:tmap, :together_collect, :tcollect]
         
     | 
| 
      
 39 
     | 
    
         
            +
              #
         
     | 
| 
      
 40 
     | 
    
         
            +
              # if you want to single Array return
         
     | 
| 
      
 41 
     | 
    
         
            +
              #   alpha = %w{one two three}
         
     | 
| 
      
 42 
     | 
    
         
            +
              #   numbers = %w{1 2 3}
         
     | 
| 
      
 43 
     | 
    
         
            +
              #   print [alpha, numbers].together_map do |first, second|
         
     | 
| 
      
 44 
     | 
    
         
            +
              #     "#{first}:#{second}\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
              #   end # => output one:1, two:2, three:3
         
     | 
| 
      
 46 
     | 
    
         
            +
              #
         
     | 
| 
      
 47 
     | 
    
         
            +
              # if you want to multi Array return
         
     | 
| 
      
 48 
     | 
    
         
            +
              #   alpha = %w{one two three}
         
     | 
| 
      
 49 
     | 
    
         
            +
              #   numbers = %w{1 2 3}
         
     | 
| 
      
 50 
     | 
    
         
            +
              #   print [alpha, numbers].together_map do |first, second|
         
     | 
| 
      
 51 
     | 
    
         
            +
              #     ["#{first}:#{second}", "#{second}:#{first}"]
         
     | 
| 
      
 52 
     | 
    
         
            +
              #   end # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
         
     | 
| 
      
 53 
     | 
    
         
            +
              def together_map
         
     | 
| 
      
 54 
     | 
    
         
            +
                if_not_contain_array_rails_type_error
         
     | 
| 
      
 55 
     | 
    
         
            +
                ret = []
         
     | 
| 
      
 56 
     | 
    
         
            +
                first.each_with_index do |i_v, i|
         
     | 
| 
      
 57 
     | 
    
         
            +
                  eval_each_str = get_args_str_for_together i
         
     | 
| 
      
 58 
     | 
    
         
            +
                  each_ret = instance_eval "yield(#{eval_each_str})"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  ret = set_together_each_return(ret, each_ret, i)
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
                ret
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
              alias_method :together_collect, :together_map
         
     | 
| 
      
 65 
     | 
    
         
            +
              alias_method :tmap, :together_map
         
     | 
| 
      
 66 
     | 
    
         
            +
              alias_method :tcollect, :together_map
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
              private
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
              def if_not_contain_array_rails_type_error
         
     | 
| 
      
 71 
     | 
    
         
            +
                each { |f|fail TypeError, "you have to use [Array1, Array2, ...] | #{f.class} is invalid" unless f.class == Array }
         
     | 
| 
      
 72 
     | 
    
         
            +
              end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
              def get_args_for_together(i)
         
     | 
| 
      
 75 
     | 
    
         
            +
                eval_each = []
         
     | 
| 
      
 76 
     | 
    
         
            +
                each_with_index { |j_v, j|eval_each << "self[#{j}][#{i}]" }
         
     | 
| 
      
 77 
     | 
    
         
            +
                eval_each
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              def get_args_str_for_together(i, with_index = false)
         
     | 
| 
      
 81 
     | 
    
         
            +
                each_eval = with_index ? get_args_for_together(i) << i : get_args_for_together(i)
         
     | 
| 
      
 82 
     | 
    
         
            +
                each_eval.join(',')
         
     | 
| 
      
 83 
     | 
    
         
            +
              end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
              def set_together_each_return(ret, each_ret, index)
         
     | 
| 
      
 86 
     | 
    
         
            +
                if together_return_multi?(each_ret)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  size.times { |i|ret << [] } if index == 0
         
     | 
| 
      
 88 
     | 
    
         
            +
                  (0..(size - 1)).each { |i|ret[i] << each_ret[i] }
         
     | 
| 
      
 89 
     | 
    
         
            +
                else
         
     | 
| 
      
 90 
     | 
    
         
            +
                  ret << each_ret
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
                ret
         
     | 
| 
      
 93 
     | 
    
         
            +
              end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
              def together_return_multi?(list)
         
     | 
| 
      
 96 
     | 
    
         
            +
                (list.class == Array && list.size == size).to_bool
         
     | 
| 
      
 97 
     | 
    
         
            +
              end
         
     | 
| 
      
 98 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            # Module
         
     | 
| 
      
 4 
     | 
    
         
            +
            class Module
         
     | 
| 
      
 5 
     | 
    
         
            +
              # create alias methods.
         
     | 
| 
      
 6 
     | 
    
         
            +
              #
         
     | 
| 
      
 7 
     | 
    
         
            +
              # create hoge's aliases [:hige, :huge] case
         
     | 
| 
      
 8 
     | 
    
         
            +
              #   alias_methods [:hige, :fuge], :hoge
         
     | 
| 
      
 9 
     | 
    
         
            +
              def alias_methods(new_methods, old_method)
         
     | 
| 
      
 10 
     | 
    
         
            +
                fail TypeError, "invalid type #{new_methods.class}" unless new_methods.class == Array
         
     | 
| 
      
 11 
     | 
    
         
            +
                new_methods.each { |new_method|alias_method new_method, old_method }
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/tbpgr_utils.rb
    CHANGED
    
    
    
        data/lib/tbpgr_utils/version.rb
    CHANGED
    
    
| 
         @@ -1,175 +1,175 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # encoding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require 'spec_helper'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'tbpgr_utils'
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            describe Array do
         
     | 
| 
       6 
     | 
    
         
            -
              context :together do
         
     | 
| 
       7 
     | 
    
         
            -
                cases = [
         
     | 
| 
       8 
     | 
    
         
            -
                  {
         
     | 
| 
       9 
     | 
    
         
            -
                    case_no: 1,
         
     | 
| 
       10 
     | 
    
         
            -
                    case_title: 'valid case',
         
     | 
| 
       11 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       12 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
       13 
     | 
    
         
            -
                  },
         
     | 
| 
       14 
     | 
    
         
            -
                  {
         
     | 
| 
       15 
     | 
    
         
            -
                    case_no: 2,
         
     | 
| 
       16 
     | 
    
         
            -
                    case_title: 'contain nil case',
         
     | 
| 
       17 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
       18 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:'],
         
     | 
| 
       19 
     | 
    
         
            -
                  },
         
     | 
| 
       20 
     | 
    
         
            -
                ]
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                cases.each do |c|
         
     | 
| 
       23 
     | 
    
         
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
       24 
     | 
    
         
            -
                    begin
         
     | 
| 
       25 
     | 
    
         
            -
                      case_before c
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                      # -- given --
         
     | 
| 
       28 
     | 
    
         
            -
                      # nothing
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                      # -- when/then --
         
     | 
| 
       31 
     | 
    
         
            -
                      actual = []
         
     | 
| 
       32 
     | 
    
         
            -
                      c[:inputs].together do |first, second|
         
     | 
| 
       33 
     | 
    
         
            -
                        actual << "#{first}:#{second}"
         
     | 
| 
       34 
     | 
    
         
            -
                      end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                      expect(actual).to eq(c[:expected])
         
     | 
| 
       37 
     | 
    
         
            -
                    ensure
         
     | 
| 
       38 
     | 
    
         
            -
                      case_after c
         
     | 
| 
       39 
     | 
    
         
            -
                    end
         
     | 
| 
       40 
     | 
    
         
            -
                  end
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                  def case_before(c)
         
     | 
| 
       43 
     | 
    
         
            -
                    # implement each case before
         
     | 
| 
       44 
     | 
    
         
            -
                  end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                  def case_after(c)
         
     | 
| 
       47 
     | 
    
         
            -
                    # implement each case after
         
     | 
| 
       48 
     | 
    
         
            -
                  end
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
              end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
              context :together_with_index do
         
     | 
| 
       53 
     | 
    
         
            -
                cases = [
         
     | 
| 
       54 
     | 
    
         
            -
                  {
         
     | 
| 
       55 
     | 
    
         
            -
                    case_no: 1,
         
     | 
| 
       56 
     | 
    
         
            -
                    case_title: 'valid case',
         
     | 
| 
       57 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       58 
     | 
    
         
            -
                    expected: ['0:1:one', '1:2:two', '2:3:three'],
         
     | 
| 
       59 
     | 
    
         
            -
                  },
         
     | 
| 
       60 
     | 
    
         
            -
                  {
         
     | 
| 
       61 
     | 
    
         
            -
                    case_no: 2,
         
     | 
| 
       62 
     | 
    
         
            -
                    case_title: 'contain nil case',
         
     | 
| 
       63 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
       64 
     | 
    
         
            -
                    expected: ['0:1:one', '1:2:two', '2:3:'],
         
     | 
| 
       65 
     | 
    
         
            -
                  },
         
     | 
| 
       66 
     | 
    
         
            -
                ]
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                cases.each do |c|
         
     | 
| 
       69 
     | 
    
         
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
       70 
     | 
    
         
            -
                    begin
         
     | 
| 
       71 
     | 
    
         
            -
                      case_before c
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                      # -- given --
         
     | 
| 
       74 
     | 
    
         
            -
                      # nothing
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                      # -- when/then --
         
     | 
| 
       77 
     | 
    
         
            -
                      actual = []
         
     | 
| 
       78 
     | 
    
         
            -
                      c[:inputs].together_with_index do |first, second, index|
         
     | 
| 
       79 
     | 
    
         
            -
                        actual << "#{index.to_s}:#{first}:#{second}"
         
     | 
| 
       80 
     | 
    
         
            -
                      end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                      expect(actual).to eq(c[:expected])
         
     | 
| 
       83 
     | 
    
         
            -
                    ensure
         
     | 
| 
       84 
     | 
    
         
            -
                      case_after c
         
     | 
| 
       85 
     | 
    
         
            -
                    end
         
     | 
| 
       86 
     | 
    
         
            -
                  end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                  def case_before(c)
         
     | 
| 
       89 
     | 
    
         
            -
                    # implement each case before
         
     | 
| 
       90 
     | 
    
         
            -
                  end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                  def case_after(c)
         
     | 
| 
       93 
     | 
    
         
            -
                    # implement each case after
         
     | 
| 
       94 
     | 
    
         
            -
                  end
         
     | 
| 
       95 
     | 
    
         
            -
                end
         
     | 
| 
       96 
     | 
    
         
            -
              end
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
              context :together_map do
         
     | 
| 
       99 
     | 
    
         
            -
                cases = [
         
     | 
| 
       100 
     | 
    
         
            -
                  {
         
     | 
| 
       101 
     | 
    
         
            -
                    case_no: 1,
         
     | 
| 
       102 
     | 
    
         
            -
                    case_title: 'valid case',
         
     | 
| 
       103 
     | 
    
         
            -
                    method_name: :together_map, 
     | 
| 
       104 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       105 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
       106 
     | 
    
         
            -
                  },
         
     | 
| 
       107 
     | 
    
         
            -
                  {
         
     | 
| 
       108 
     | 
    
         
            -
                    case_no: 2,
         
     | 
| 
       109 
     | 
    
         
            -
                    case_title: 'contain nil case',
         
     | 
| 
       110 
     | 
    
         
            -
                    method_name: :together_map, 
     | 
| 
       111 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
       112 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:'],
         
     | 
| 
       113 
     | 
    
         
            -
                  },
         
     | 
| 
       114 
     | 
    
         
            -
                  {
         
     | 
| 
       115 
     | 
    
         
            -
                    case_no: 3,
         
     | 
| 
       116 
     | 
    
         
            -
                    case_title: 'valid case',
         
     | 
| 
       117 
     | 
    
         
            -
                    method_name: :together_map, 
     | 
| 
       118 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       119 
     | 
    
         
            -
                    expected: [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']],
         
     | 
| 
       120 
     | 
    
         
            -
                    is_multi: true,
         
     | 
| 
       121 
     | 
    
         
            -
                  },
         
     | 
| 
       122 
     | 
    
         
            -
                  {
         
     | 
| 
       123 
     | 
    
         
            -
                    case_no: 4,
         
     | 
| 
       124 
     | 
    
         
            -
                    case_title: 'valid case(alias together_collect)',
         
     | 
| 
       125 
     | 
    
         
            -
                    method_name: :together_collect, 
     | 
| 
       126 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       127 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
       128 
     | 
    
         
            -
                  },
         
     | 
| 
       129 
     | 
    
         
            -
                  {
         
     | 
| 
       130 
     | 
    
         
            -
                    case_no: 5,
         
     | 
| 
       131 
     | 
    
         
            -
                    case_title: 'valid case(alias tmap)',
         
     | 
| 
       132 
     | 
    
         
            -
                    method_name: :tmap, 
     | 
| 
       133 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       134 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
       135 
     | 
    
         
            -
                  },
         
     | 
| 
       136 
     | 
    
         
            -
                  {
         
     | 
| 
       137 
     | 
    
         
            -
                    case_no: 6,
         
     | 
| 
       138 
     | 
    
         
            -
                    case_title: 'valid case(alias tcollect)',
         
     | 
| 
       139 
     | 
    
         
            -
                    method_name: :tcollect, 
     | 
| 
       140 
     | 
    
         
            -
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
       141 
     | 
    
         
            -
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
       142 
     | 
    
         
            -
                  },
         
     | 
| 
       143 
     | 
    
         
            -
                ]
         
     | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
                cases.each do |c|
         
     | 
| 
       146 
     | 
    
         
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
       147 
     | 
    
         
            -
                    begin
         
     | 
| 
       148 
     | 
    
         
            -
                      case_before c
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                      # -- given --
         
     | 
| 
       151 
     | 
    
         
            -
                      # nothing
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
                      # -- when/then --
         
     | 
| 
       154 
     | 
    
         
            -
                      if c[:is_multi]
         
     | 
| 
       155 
     | 
    
         
            -
                        actual = c[:inputs].method(c[:method_name]).call {|first, second|["#{first}:#{second}", "#{second}:#{first}"]}
         
     | 
| 
       156 
     | 
    
         
            -
                      else
         
     | 
| 
       157 
     | 
    
         
            -
                        actual = c[:inputs].method(c[:method_name]).call {|first, second|"#{first}:#{second}"}
         
     | 
| 
       158 
     | 
    
         
            -
                      end
         
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
                      expect(actual).to eq(c[:expected])
         
     | 
| 
       161 
     | 
    
         
            -
                    ensure
         
     | 
| 
       162 
     | 
    
         
            -
                      case_after c
         
     | 
| 
       163 
     | 
    
         
            -
                    end
         
     | 
| 
       164 
     | 
    
         
            -
                  end
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
                  def case_before(c)
         
     | 
| 
       167 
     | 
    
         
            -
                    # implement each case before
         
     | 
| 
       168 
     | 
    
         
            -
                  end
         
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
       170 
     | 
    
         
            -
                  def case_after(c)
         
     | 
| 
       171 
     | 
    
         
            -
                    # implement each case after
         
     | 
| 
       172 
     | 
    
         
            -
                  end
         
     | 
| 
       173 
     | 
    
         
            -
                end
         
     | 
| 
       174 
     | 
    
         
            -
              end
         
     | 
| 
       175 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'tbpgr_utils'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Array do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context :together do
         
     | 
| 
      
 7 
     | 
    
         
            +
                cases = [
         
     | 
| 
      
 8 
     | 
    
         
            +
                  {
         
     | 
| 
      
 9 
     | 
    
         
            +
                    case_no: 1,
         
     | 
| 
      
 10 
     | 
    
         
            +
                    case_title: 'valid case',
         
     | 
| 
      
 11 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 12 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
      
 13 
     | 
    
         
            +
                  },
         
     | 
| 
      
 14 
     | 
    
         
            +
                  {
         
     | 
| 
      
 15 
     | 
    
         
            +
                    case_no: 2,
         
     | 
| 
      
 16 
     | 
    
         
            +
                    case_title: 'contain nil case',
         
     | 
| 
      
 17 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
      
 18 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:'],
         
     | 
| 
      
 19 
     | 
    
         
            +
                  },
         
     | 
| 
      
 20 
     | 
    
         
            +
                ]
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                cases.each do |c|
         
     | 
| 
      
 23 
     | 
    
         
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 25 
     | 
    
         
            +
                      case_before c
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                      # -- given --
         
     | 
| 
      
 28 
     | 
    
         
            +
                      # nothing
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                      # -- when/then --
         
     | 
| 
      
 31 
     | 
    
         
            +
                      actual = []
         
     | 
| 
      
 32 
     | 
    
         
            +
                      c[:inputs].together do |first, second|
         
     | 
| 
      
 33 
     | 
    
         
            +
                        actual << "#{first}:#{second}"
         
     | 
| 
      
 34 
     | 
    
         
            +
                      end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                      expect(actual).to eq(c[:expected])
         
     | 
| 
      
 37 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 38 
     | 
    
         
            +
                      case_after c
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def case_before(c)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    # implement each case before
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  def case_after(c)
         
     | 
| 
      
 47 
     | 
    
         
            +
                    # implement each case after
         
     | 
| 
      
 48 
     | 
    
         
            +
                  end
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              context :together_with_index do
         
     | 
| 
      
 53 
     | 
    
         
            +
                cases = [
         
     | 
| 
      
 54 
     | 
    
         
            +
                  {
         
     | 
| 
      
 55 
     | 
    
         
            +
                    case_no: 1,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    case_title: 'valid case',
         
     | 
| 
      
 57 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 58 
     | 
    
         
            +
                    expected: ['0:1:one', '1:2:two', '2:3:three'],
         
     | 
| 
      
 59 
     | 
    
         
            +
                  },
         
     | 
| 
      
 60 
     | 
    
         
            +
                  {
         
     | 
| 
      
 61 
     | 
    
         
            +
                    case_no: 2,
         
     | 
| 
      
 62 
     | 
    
         
            +
                    case_title: 'contain nil case',
         
     | 
| 
      
 63 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
      
 64 
     | 
    
         
            +
                    expected: ['0:1:one', '1:2:two', '2:3:'],
         
     | 
| 
      
 65 
     | 
    
         
            +
                  },
         
     | 
| 
      
 66 
     | 
    
         
            +
                ]
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                cases.each do |c|
         
     | 
| 
      
 69 
     | 
    
         
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
      
 70 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 71 
     | 
    
         
            +
                      case_before c
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                      # -- given --
         
     | 
| 
      
 74 
     | 
    
         
            +
                      # nothing
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                      # -- when/then --
         
     | 
| 
      
 77 
     | 
    
         
            +
                      actual = []
         
     | 
| 
      
 78 
     | 
    
         
            +
                      c[:inputs].together_with_index do |first, second, index|
         
     | 
| 
      
 79 
     | 
    
         
            +
                        actual << "#{index.to_s}:#{first}:#{second}"
         
     | 
| 
      
 80 
     | 
    
         
            +
                      end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                      expect(actual).to eq(c[:expected])
         
     | 
| 
      
 83 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 84 
     | 
    
         
            +
                      case_after c
         
     | 
| 
      
 85 
     | 
    
         
            +
                    end
         
     | 
| 
      
 86 
     | 
    
         
            +
                  end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                  def case_before(c)
         
     | 
| 
      
 89 
     | 
    
         
            +
                    # implement each case before
         
     | 
| 
      
 90 
     | 
    
         
            +
                  end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                  def case_after(c)
         
     | 
| 
      
 93 
     | 
    
         
            +
                    # implement each case after
         
     | 
| 
      
 94 
     | 
    
         
            +
                  end
         
     | 
| 
      
 95 
     | 
    
         
            +
                end
         
     | 
| 
      
 96 
     | 
    
         
            +
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
              context :together_map do
         
     | 
| 
      
 99 
     | 
    
         
            +
                cases = [
         
     | 
| 
      
 100 
     | 
    
         
            +
                  {
         
     | 
| 
      
 101 
     | 
    
         
            +
                    case_no: 1,
         
     | 
| 
      
 102 
     | 
    
         
            +
                    case_title: 'valid case',
         
     | 
| 
      
 103 
     | 
    
         
            +
                    method_name: :together_map,
         
     | 
| 
      
 104 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 105 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
      
 106 
     | 
    
         
            +
                  },
         
     | 
| 
      
 107 
     | 
    
         
            +
                  {
         
     | 
| 
      
 108 
     | 
    
         
            +
                    case_no: 2,
         
     | 
| 
      
 109 
     | 
    
         
            +
                    case_title: 'contain nil case',
         
     | 
| 
      
 110 
     | 
    
         
            +
                    method_name: :together_map,
         
     | 
| 
      
 111 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two}],
         
     | 
| 
      
 112 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:'],
         
     | 
| 
      
 113 
     | 
    
         
            +
                  },
         
     | 
| 
      
 114 
     | 
    
         
            +
                  {
         
     | 
| 
      
 115 
     | 
    
         
            +
                    case_no: 3,
         
     | 
| 
      
 116 
     | 
    
         
            +
                    case_title: 'valid case',
         
     | 
| 
      
 117 
     | 
    
         
            +
                    method_name: :together_map,
         
     | 
| 
      
 118 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 119 
     | 
    
         
            +
                    expected: [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']],
         
     | 
| 
      
 120 
     | 
    
         
            +
                    is_multi: true,
         
     | 
| 
      
 121 
     | 
    
         
            +
                  },
         
     | 
| 
      
 122 
     | 
    
         
            +
                  {
         
     | 
| 
      
 123 
     | 
    
         
            +
                    case_no: 4,
         
     | 
| 
      
 124 
     | 
    
         
            +
                    case_title: 'valid case(alias together_collect)',
         
     | 
| 
      
 125 
     | 
    
         
            +
                    method_name: :together_collect,
         
     | 
| 
      
 126 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 127 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
      
 128 
     | 
    
         
            +
                  },
         
     | 
| 
      
 129 
     | 
    
         
            +
                  {
         
     | 
| 
      
 130 
     | 
    
         
            +
                    case_no: 5,
         
     | 
| 
      
 131 
     | 
    
         
            +
                    case_title: 'valid case(alias tmap)',
         
     | 
| 
      
 132 
     | 
    
         
            +
                    method_name: :tmap,
         
     | 
| 
      
 133 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 134 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
      
 135 
     | 
    
         
            +
                  },
         
     | 
| 
      
 136 
     | 
    
         
            +
                  {
         
     | 
| 
      
 137 
     | 
    
         
            +
                    case_no: 6,
         
     | 
| 
      
 138 
     | 
    
         
            +
                    case_title: 'valid case(alias tcollect)',
         
     | 
| 
      
 139 
     | 
    
         
            +
                    method_name: :tcollect,
         
     | 
| 
      
 140 
     | 
    
         
            +
                    inputs: [[1, 2, 3], %w{one two three}],
         
     | 
| 
      
 141 
     | 
    
         
            +
                    expected: ['1:one', '2:two', '3:three'],
         
     | 
| 
      
 142 
     | 
    
         
            +
                  },
         
     | 
| 
      
 143 
     | 
    
         
            +
                ]
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
                cases.each do |c|
         
     | 
| 
      
 146 
     | 
    
         
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
      
 147 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 148 
     | 
    
         
            +
                      case_before c
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
                      # -- given --
         
     | 
| 
      
 151 
     | 
    
         
            +
                      # nothing
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                      # -- when/then --
         
     | 
| 
      
 154 
     | 
    
         
            +
                      if c[:is_multi]
         
     | 
| 
      
 155 
     | 
    
         
            +
                        actual = c[:inputs].method(c[:method_name]).call { |first, second|["#{first}:#{second}", "#{second}:#{first}"] }
         
     | 
| 
      
 156 
     | 
    
         
            +
                      else
         
     | 
| 
      
 157 
     | 
    
         
            +
                        actual = c[:inputs].method(c[:method_name]).call { |first, second|"#{first}:#{second}" }
         
     | 
| 
      
 158 
     | 
    
         
            +
                      end
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                      expect(actual).to eq(c[:expected])
         
     | 
| 
      
 161 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 162 
     | 
    
         
            +
                      case_after c
         
     | 
| 
      
 163 
     | 
    
         
            +
                    end
         
     | 
| 
      
 164 
     | 
    
         
            +
                  end
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
                  def case_before(c)
         
     | 
| 
      
 167 
     | 
    
         
            +
                    # implement each case before
         
     | 
| 
      
 168 
     | 
    
         
            +
                  end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                  def case_after(c)
         
     | 
| 
      
 171 
     | 
    
         
            +
                    # implement each case after
         
     | 
| 
      
 172 
     | 
    
         
            +
                  end
         
     | 
| 
      
 173 
     | 
    
         
            +
                end
         
     | 
| 
      
 174 
     | 
    
         
            +
              end
         
     | 
| 
      
 175 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,71 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'open_classes/module'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Module do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context :alias_methods do
         
     | 
| 
      
 7 
     | 
    
         
            +
                class Hoge
         
     | 
| 
      
 8 
     | 
    
         
            +
                  def hoge
         
     | 
| 
      
 9 
     | 
    
         
            +
                    'hoge'
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  alias_methods [:hige, :hege, :huge], :hoge
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
                cases = [
         
     | 
| 
      
 15 
     | 
    
         
            +
                  {
         
     | 
| 
      
 16 
     | 
    
         
            +
                    case_no: 1,
         
     | 
| 
      
 17 
     | 
    
         
            +
                    case_title: 'valid case',
         
     | 
| 
      
 18 
     | 
    
         
            +
                    klass: Hoge,
         
     | 
| 
      
 19 
     | 
    
         
            +
                    target: :hoge,
         
     | 
| 
      
 20 
     | 
    
         
            +
                    inputs: [:hige, :hege, :huge],
         
     | 
| 
      
 21 
     | 
    
         
            +
                    expected: 'hoge',
         
     | 
| 
      
 22 
     | 
    
         
            +
                  },
         
     | 
| 
      
 23 
     | 
    
         
            +
                  {
         
     | 
| 
      
 24 
     | 
    
         
            +
                    case_no: 2,
         
     | 
| 
      
 25 
     | 
    
         
            +
                    case_title: 'not Array error case',
         
     | 
| 
      
 26 
     | 
    
         
            +
                    klass: Hoge,
         
     | 
| 
      
 27 
     | 
    
         
            +
                    expect_error: true,
         
     | 
| 
      
 28 
     | 
    
         
            +
                  },
         
     | 
| 
      
 29 
     | 
    
         
            +
                ]
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                cases.each do |c|
         
     | 
| 
      
 32 
     | 
    
         
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 34 
     | 
    
         
            +
                      case_before c
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                      # -- given --
         
     | 
| 
      
 37 
     | 
    
         
            +
                      hoge = c[:klass].new
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                      # -- when --
         
     | 
| 
      
 40 
     | 
    
         
            +
                      if c[:expect_error]
         
     | 
| 
      
 41 
     | 
    
         
            +
                        lambda do
         
     | 
| 
      
 42 
     | 
    
         
            +
                          class Hige
         
     | 
| 
      
 43 
     | 
    
         
            +
                            def hige
         
     | 
| 
      
 44 
     | 
    
         
            +
                              'hige'
         
     | 
| 
      
 45 
     | 
    
         
            +
                            end
         
     | 
| 
      
 46 
     | 
    
         
            +
                            alias_methods 'invalid type', :hige
         
     | 
| 
      
 47 
     | 
    
         
            +
                          end
         
     | 
| 
      
 48 
     | 
    
         
            +
                        end.should raise_error(TypeError)
         
     | 
| 
      
 49 
     | 
    
         
            +
                        next
         
     | 
| 
      
 50 
     | 
    
         
            +
                      end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                      c[:inputs].each do |m|
         
     | 
| 
      
 53 
     | 
    
         
            +
                        actual = hoge.send m
         
     | 
| 
      
 54 
     | 
    
         
            +
                        # -- then --
         
     | 
| 
      
 55 
     | 
    
         
            +
                        expect(actual).to eq(c[:expected])
         
     | 
| 
      
 56 
     | 
    
         
            +
                      end
         
     | 
| 
      
 57 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 58 
     | 
    
         
            +
                      case_after c
         
     | 
| 
      
 59 
     | 
    
         
            +
                    end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  def case_before(c)
         
     | 
| 
      
 63 
     | 
    
         
            +
                    # implement each case before
         
     | 
| 
      
 64 
     | 
    
         
            +
                  end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                  def case_after(c)
         
     | 
| 
      
 67 
     | 
    
         
            +
                    # implement each case after
         
     | 
| 
      
 68 
     | 
    
         
            +
                  end
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tbpgr_utils
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.15
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2014-01- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2014-01-22 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: activesupport
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &21078144 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: 4.0.1
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *21078144
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: bundler
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &21077832 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: '1.3'
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *21077832
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: rake
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &21077604 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -43,10 +43,10 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :development
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *21077604
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: rspec
         
     | 
| 
       49 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &21077256 !ruby/object:Gem::Requirement
         
     | 
| 
       50 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -54,7 +54,7 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    version: 2.14.1
         
     | 
| 
       55 
55 
     | 
    
         
             
              type: :development
         
     | 
| 
       56 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       57 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *21077256
         
     | 
| 
       58 
58 
     | 
    
         
             
            description: Utilities
         
     | 
| 
       59 
59 
     | 
    
         
             
            email:
         
     | 
| 
       60 
60 
     | 
    
         
             
            - tbpgr@tbpgr.jp
         
     | 
| 
         @@ -72,6 +72,7 @@ files: 
     | 
|
| 
       72 
72 
     | 
    
         
             
            - lib/ghostable.rb
         
     | 
| 
       73 
73 
     | 
    
         
             
            - lib/open_classes/array.rb
         
     | 
| 
       74 
74 
     | 
    
         
             
            - lib/open_classes/kernel.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
            - lib/open_classes/module.rb
         
     | 
| 
       75 
76 
     | 
    
         
             
            - lib/open_classes/object.rb
         
     | 
| 
       76 
77 
     | 
    
         
             
            - lib/open_classes/string.rb
         
     | 
| 
       77 
78 
     | 
    
         
             
            - lib/tbpgr_utils.rb
         
     | 
| 
         @@ -84,6 +85,7 @@ files: 
     | 
|
| 
       84 
85 
     | 
    
         
             
            - spec/ghostable_spec.rb
         
     | 
| 
       85 
86 
     | 
    
         
             
            - spec/open_classes/array_spec.rb
         
     | 
| 
       86 
87 
     | 
    
         
             
            - spec/open_classes/kernel_spec.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - spec/open_classes/module_spec.rb
         
     | 
| 
       87 
89 
     | 
    
         
             
            - spec/open_classes/object_spec.rb
         
     | 
| 
       88 
90 
     | 
    
         
             
            - spec/open_classes/string_spec.rb
         
     | 
| 
       89 
91 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
         @@ -121,6 +123,7 @@ test_files: 
     | 
|
| 
       121 
123 
     | 
    
         
             
            - spec/ghostable_spec.rb
         
     | 
| 
       122 
124 
     | 
    
         
             
            - spec/open_classes/array_spec.rb
         
     | 
| 
       123 
125 
     | 
    
         
             
            - spec/open_classes/kernel_spec.rb
         
     | 
| 
      
 126 
     | 
    
         
            +
            - spec/open_classes/module_spec.rb
         
     | 
| 
       124 
127 
     | 
    
         
             
            - spec/open_classes/object_spec.rb
         
     | 
| 
       125 
128 
     | 
    
         
             
            - spec/open_classes/string_spec.rb
         
     | 
| 
       126 
129 
     | 
    
         
             
            - spec/spec_helper.rb
         
     |