tbpgr_utils 0.0.12 → 0.0.13
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 +50 -17
- data/lib/open_classes/array.rb +28 -2
- data/lib/open_classes/kernel.rb +114 -98
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/open_classes/array_spec.rb +46 -1
- data/spec/open_classes/kernel_spec.rb +238 -173
- metadata +10 -10
    
        data/README.md
    CHANGED
    
    | @@ -18,23 +18,27 @@ Or install it yourself as: | |
| 18 18 |  | 
| 19 19 | 
             
            ## Usage
         | 
| 20 20 | 
             
            ### List
         | 
| 21 | 
            -
            | class/module/method| mean|
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            |TbpgrUtils Array#together|loop all arrays by block|
         | 
| 24 | 
            -
            | | 
| 25 | 
            -
            | | 
| 26 | 
            -
            | | 
| 27 | 
            -
            | | 
| 28 | 
            -
            | | 
| 29 | 
            -
            |TbpgrUtils Kernel# | 
| 30 | 
            -
            | | 
| 31 | 
            -
            | | 
| 32 | 
            -
            |TbpgrUtils  | 
| 33 | 
            -
            |TbpgrUtils  | 
| 34 | 
            -
            |TbpgrUtils  | 
| 35 | 
            -
            |TbpgrUtils  | 
| 36 | 
            -
            | | 
| 37 | 
            -
            | | 
| 21 | 
            +
            | class/module/method                                    | mean                                                                                            |
         | 
| 22 | 
            +
            |:-----------                                            |:------------                                                                                    |
         | 
| 23 | 
            +
            |TbpgrUtils Array#together                               |loop all arrays by block                                                                         |
         | 
| 24 | 
            +
            |TbpgrUtils Array#together_with_index                    |loop all arrays by block with index                                                              |
         | 
| 25 | 
            +
            |AttributesInitializable::ClassMethods.attr_accessor_init|generate attr_accessor + initializer                                                             |
         | 
| 26 | 
            +
            |AttributesInitializable::ClassMethods.attr_reader_init  |generate attr_reader + initializer                                                               |
         | 
| 27 | 
            +
            |AttributesInitializable::ClassMethods.attr_writer init  |generate attr_writer + initializer                                                               |
         | 
| 28 | 
            +
            |Ghostable module                                        |help to create ghost method(dynamic method define by ussing method_missing + pattern-method-name)|
         | 
| 29 | 
            +
            |TbpgrUtils Kernel#bulk_define_methods                   |define methods to classes. methods have simple return value.                                     |
         | 
| 30 | 
            +
            |TestToolbox Kernel#capture_stdout                       |capture STDOUT                                                                                   |
         | 
| 31 | 
            +
            |TestToolbox Kernel#dp_line                              |debug print line for print-debugging                                                             |
         | 
| 32 | 
            +
            |TbpgrUtils Kernel#print_eval                            |Print code + eval result                                                                         |
         | 
| 33 | 
            +
            |TbpgrUtils Kernel#puts_eval                             |Puts code + eval result                                                                          |
         | 
| 34 | 
            +
            |TbpgrUtils Kernel#bulk_puts_eval                        |Puts each-line-code + eval result                                                                |
         | 
| 35 | 
            +
            |TbpgrUtils Object#any_of?                               |if self match any one of items, return true                                                      |
         | 
| 36 | 
            +
            |TbpgrUtils Object#boolean?                              |data type check for boolean                                                                      |
         | 
| 37 | 
            +
            |TbpgrUtils Object#my_methods                            |return public/protected/private self define methods                                              |
         | 
| 38 | 
            +
            |TbpgrUtils Object#to_bool                               |syntax sugar of !!. convert [false, nil] => fasel, other => true.                                |
         | 
| 39 | 
            +
            |TbpgrUtils String#justify_table                         |justify pipe format table string                                                                 |
         | 
| 40 | 
            +
            |Templatable module                                      |get result from template + placeholder                                                           |
         | 
| 41 | 
            +
            |TemplateMethodable module                               |for Template Method Pattern                                                                      |
         | 
| 38 42 |  | 
| 39 43 | 
             
            ### Array#together
         | 
| 40 44 | 
             
            ~~~ruby
         | 
| @@ -47,6 +51,17 @@ numbers = %w{1 2 3} | |
| 47 51 | 
             
            end
         | 
| 48 52 | 
             
            ~~~
         | 
| 49 53 |  | 
| 54 | 
            +
            ### Array#together_with_index
         | 
| 55 | 
            +
            ~~~ruby
         | 
| 56 | 
            +
            require 'tbpgr_utils'
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            alpha = %w{one two three}
         | 
| 59 | 
            +
            numbers = %w{1 2 3}
         | 
| 60 | 
            +
            [alpha, numbers].together_with_index do |first, second, index|
         | 
| 61 | 
            +
              print "#{index.to_s}:#{first}:#{second}\n"  # => output 0:one:1, 1:two:2, 2:three:3
         | 
| 62 | 
            +
            end
         | 
| 63 | 
            +
            ~~~
         | 
| 64 | 
            +
             | 
| 50 65 | 
             
            ### AttributesInitializable::ClassMethods.attr_accessor_init
         | 
| 51 66 | 
             
            ~~~ruby
         | 
| 52 67 | 
             
            require 'attributes_initializable'
         | 
| @@ -354,6 +369,23 @@ output | |
| 354 369 | 
             
            "hoge-#{message}" # => "hoge-msg"
         | 
| 355 370 | 
             
            ~~~
         | 
| 356 371 |  | 
| 372 | 
            +
            ### Kernel#bulk_puts_eval
         | 
| 373 | 
            +
            multi line version of puts_eval.
         | 
| 374 | 
            +
             | 
| 375 | 
            +
            ~~~ruby
         | 
| 376 | 
            +
            message = "msg"
         | 
| 377 | 
            +
            bulk_puts_eval binding, <<-EOS
         | 
| 378 | 
            +
            "hoge-hige1" + "add" + message
         | 
| 379 | 
            +
            "hoge-hige2" + "add" + message
         | 
| 380 | 
            +
            EOS
         | 
| 381 | 
            +
            ~~~
         | 
| 382 | 
            +
             | 
| 383 | 
            +
            output
         | 
| 384 | 
            +
            ~~~
         | 
| 385 | 
            +
            "hoge-hige1" + "add" + message # => "hoge-hige1addmsg"
         | 
| 386 | 
            +
            "hoge-hige2" + "add" + message # => "hoge-hige2addmsg"
         | 
| 387 | 
            +
            ~~~
         | 
| 388 | 
            +
             | 
| 357 389 | 
             
            ### Object#any_of?
         | 
| 358 390 | 
             
            ~~~ruby
         | 
| 359 391 | 
             
            require 'tbpgr_utils'
         | 
| @@ -527,6 +559,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils. | |
| 527 559 | 
             
            https://github.com/tbpgr/tbpgr_utils_snippets
         | 
| 528 560 |  | 
| 529 561 | 
             
            ## History
         | 
| 562 | 
            +
            * version 0.0.13 : add Array#together_with_index, Kernel#bulk_puts_eval
         | 
| 530 563 | 
             
            * version 0.0.12 : AttributesInitializable::ClassMethods.attr_reader_init,attr_writer_init
         | 
| 531 564 | 
             
            * version 0.0.11 : add Object#to_bool.
         | 
| 532 565 | 
             
            * version 0.0.10 : add TemplateMethodable module.
         | 
    
        data/lib/open_classes/array.rb
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            # Array
         | 
| 4 4 | 
             
            class Array
         | 
| 5 | 
            -
              # Arrays loop together
         | 
| 5 | 
            +
              # Arrays loop together.
         | 
| 6 6 | 
             
              #
         | 
| 7 7 | 
             
              #   alpha = %w{one two three}
         | 
| 8 8 | 
             
              #   numbers = %w{1 2 3}
         | 
| @@ -10,7 +10,7 @@ class Array | |
| 10 10 | 
             
              #     print "#{first}:#{second}\n"  # => output one:1, two:2, three:3
         | 
| 11 11 | 
             
              #   end
         | 
| 12 12 | 
             
              def together
         | 
| 13 | 
            -
                 | 
| 13 | 
            +
                if_not_contain_array_rails_type_error
         | 
| 14 14 | 
             
                first.each_with_index do |i_v, i|
         | 
| 15 15 | 
             
                  eval_each = []
         | 
| 16 16 | 
             
                  each_with_index do |j_v, j|
         | 
| @@ -20,4 +20,30 @@ class Array | |
| 20 20 | 
             
                  instance_eval "yield(#{eval_each_str})"
         | 
| 21 21 | 
             
                end
         | 
| 22 22 | 
             
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              # Arrays loop together with index.
         | 
| 25 | 
            +
              #
         | 
| 26 | 
            +
              #   alpha = %w{one two three}
         | 
| 27 | 
            +
              #   numbers = %w{1 2 3}
         | 
| 28 | 
            +
              #   [alpha, numbers].together_with_index do |first, second, index|
         | 
| 29 | 
            +
              #     print "#{index.to_s}:#{first}:#{second}\n"  # => output 0:one:1, 1:two:2, 2:three:3
         | 
| 30 | 
            +
              #   end
         | 
| 31 | 
            +
              def together_with_index
         | 
| 32 | 
            +
                if_not_contain_array_rails_type_error
         | 
| 33 | 
            +
                first.each_with_index do |i_v, i|
         | 
| 34 | 
            +
                  eval_each = []
         | 
| 35 | 
            +
                  each_with_index do |j_v, j|
         | 
| 36 | 
            +
                    eval_each << "self[#{j}][#{i}]"
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                  eval_each << i
         | 
| 39 | 
            +
                  eval_each_str = eval_each.join(',')
         | 
| 40 | 
            +
                  instance_eval "yield(#{eval_each_str})"
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              private
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              def if_not_contain_array_rails_type_error
         | 
| 47 | 
            +
                each { |f|fail TypeError, "you have to use [Array1, Array2, ...] | #{f.class} is invalid" unless f.class == Array }
         | 
| 48 | 
            +
              end
         | 
| 23 49 | 
             
            end
         | 
    
        data/lib/open_classes/kernel.rb
    CHANGED
    
    | @@ -1,98 +1,114 @@ | |
| 1 | 
            -
            # encoding: utf-8
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # Kernel
         | 
| 4 | 
            -
            module Kernel
         | 
| 5 | 
            -
              # Print code + eval result
         | 
| 6 | 
            -
              #
         | 
| 7 | 
            -
              # | 
| 8 | 
            -
              # | 
| 9 | 
            -
              def print_eval(code, binding)
         | 
| 10 | 
            -
                print exec_eval code, binding
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              # Puts code + eval result
         | 
| 14 | 
            -
              #
         | 
| 15 | 
            -
              # | 
| 16 | 
            -
              # | 
| 17 | 
            -
              def puts_eval(code, binding)
         | 
| 18 | 
            -
                puts exec_eval code, binding
         | 
| 19 | 
            -
              end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
              #  | 
| 22 | 
            -
              #
         | 
| 23 | 
            -
              # | 
| 24 | 
            -
              #    | 
| 25 | 
            -
              #
         | 
| 26 | 
            -
              #    | 
| 27 | 
            -
              #    | 
| 28 | 
            -
              #    | 
| 29 | 
            -
              # | 
| 30 | 
            -
              #
         | 
| 31 | 
            -
              #    | 
| 32 | 
            -
              #    | 
| 33 | 
            -
               | 
| 34 | 
            -
             | 
| 35 | 
            -
               | 
| 36 | 
            -
             | 
| 37 | 
            -
              # | 
| 38 | 
            -
              # | 
| 39 | 
            -
              #    | 
| 40 | 
            -
              #    | 
| 41 | 
            -
              # | 
| 42 | 
            -
              #
         | 
| 43 | 
            -
              #  | 
| 44 | 
            -
              #
         | 
| 45 | 
            -
              #    | 
| 46 | 
            -
              # | 
| 47 | 
            -
              # | 
| 48 | 
            -
              # | 
| 49 | 
            -
              # | 
| 50 | 
            -
               | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
                 | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
               | 
| 61 | 
            -
             | 
| 62 | 
            -
               | 
| 63 | 
            -
               | 
| 64 | 
            -
             | 
| 65 | 
            -
              end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
                 | 
| 69 | 
            -
                 | 
| 70 | 
            -
                 | 
| 71 | 
            -
                 | 
| 72 | 
            -
             | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 75 | 
            -
                 | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
              def  | 
| 80 | 
            -
                 | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
                 | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
                 | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
             | 
| 96 | 
            -
                 | 
| 97 | 
            -
             | 
| 98 | 
            -
            end
         | 
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Kernel
         | 
| 4 | 
            +
            module Kernel
         | 
| 5 | 
            +
              # Print code + eval result
         | 
| 6 | 
            +
              #
         | 
| 7 | 
            +
              #   print_eval 8/4, binding  # => 8/4 # => 2
         | 
| 8 | 
            +
              #   message = 'msg';print_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg"
         | 
| 9 | 
            +
              def print_eval(code, binding)
         | 
| 10 | 
            +
                print exec_eval code, binding
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              # Puts code + eval result
         | 
| 14 | 
            +
              #
         | 
| 15 | 
            +
              #   puts_eval 8/4, binding  # => 8/4 # => 2\n
         | 
| 16 | 
            +
              #   message = 'msg';puts_eval "hoge-#{message}", binding # => "hoge-#{message}" # => "hoge-msg"\n
         | 
| 17 | 
            +
              def puts_eval(code, binding)
         | 
| 18 | 
            +
                puts exec_eval code, binding
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              # Puts each-line-code + eval result
         | 
| 22 | 
            +
              #
         | 
| 23 | 
            +
              # code
         | 
| 24 | 
            +
              #   message = 'msg'
         | 
| 25 | 
            +
              #   puts_eval binding, <<-EOS
         | 
| 26 | 
            +
              #   "hoge-#{message}1"
         | 
| 27 | 
            +
              #   "hoge-#{message}2"
         | 
| 28 | 
            +
              #   EOS
         | 
| 29 | 
            +
              #
         | 
| 30 | 
            +
              # result
         | 
| 31 | 
            +
              #   "hoge-#{message}1" # => "hoge-msg1"\n
         | 
| 32 | 
            +
              #   "hoge-#{message}2" # => "hoge-msg2"\n
         | 
| 33 | 
            +
              def bulk_puts_eval(binding, codes)
         | 
| 34 | 
            +
                codes.each_line { |code|puts_eval(code.chop, binding) }
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              # define methods to classes. methods have simple return value.
         | 
| 38 | 
            +
              #
         | 
| 39 | 
            +
              #   bulk_define_methods [NilClass, FalseClass], :blank?, true
         | 
| 40 | 
            +
              #   bulk_define_methods [TrueClass, Numeric], "blank?", false
         | 
| 41 | 
            +
              #
         | 
| 42 | 
            +
              #   puts nil.blank?   # => true
         | 
| 43 | 
            +
              #   puts false.blank? # => true
         | 
| 44 | 
            +
              #   puts true.blank?  # => false
         | 
| 45 | 
            +
              #   puts 1.blank?     # => false
         | 
| 46 | 
            +
              #
         | 
| 47 | 
            +
              #   bulk_define_methods [NilClass, FalseClass], [:blank?, :present?], [true, false]
         | 
| 48 | 
            +
              #   bulk_define_methods [TrueClass, Numeric], [:blank?, :present?], [false, true]
         | 
| 49 | 
            +
              #
         | 
| 50 | 
            +
              #   puts nil.blank?     # => true
         | 
| 51 | 
            +
              #   puts nil.present?   # => false
         | 
| 52 | 
            +
              #   puts false.blank?   # => true
         | 
| 53 | 
            +
              #   puts false.present? # => false
         | 
| 54 | 
            +
              #   puts true.blank?    # => false
         | 
| 55 | 
            +
              #   puts true.present?  # => true
         | 
| 56 | 
            +
              #   puts 1.blank?       # => false
         | 
| 57 | 
            +
              #   puts 1.present?     # => true
         | 
| 58 | 
            +
              #
         | 
| 59 | 
            +
              # bulk_define_methods NilClass, :blank?, true is same as following code
         | 
| 60 | 
            +
              #
         | 
| 61 | 
            +
              #   class NilClass
         | 
| 62 | 
            +
              #     def blank?
         | 
| 63 | 
            +
              #       true
         | 
| 64 | 
            +
              #     end
         | 
| 65 | 
            +
              #   end
         | 
| 66 | 
            +
              def bulk_define_methods(classes, methods, constants)
         | 
| 67 | 
            +
                validate_bulk_define_classes!(classes)
         | 
| 68 | 
            +
                validate_bulk_define_methods!(methods)
         | 
| 69 | 
            +
                size = get_classes_size(classes)
         | 
| 70 | 
            +
                tmp_classes = fill_same_values(classes, size)
         | 
| 71 | 
            +
                tmp_methods = fill_same_values(methods, size)
         | 
| 72 | 
            +
                tmp_constants = fill_same_values(constants, size)
         | 
| 73 | 
            +
                tmp_classes.each do |klass|
         | 
| 74 | 
            +
                  define_method_constants(klass, tmp_methods, tmp_constants)
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
              end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
              private
         | 
| 79 | 
            +
              def get_classes_size(classes)
         | 
| 80 | 
            +
                size = classes.is_a?(Array) ? classes.size : 1
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
              def fill_same_values(ary, size)
         | 
| 84 | 
            +
                return ary if ary.is_a?(Array)
         | 
| 85 | 
            +
                tmp = []
         | 
| 86 | 
            +
                size.times { tmp << ary }
         | 
| 87 | 
            +
                tmp
         | 
| 88 | 
            +
              end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
              def validate_bulk_define_classes!(classes)
         | 
| 91 | 
            +
                return if classes.class.any_of?(Array, Class)
         | 
| 92 | 
            +
                fail TypeError, "invalid type #{a.class}. you have to use Array or Class or String or Symbol"
         | 
| 93 | 
            +
              end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
              def validate_bulk_define_methods!(methods)
         | 
| 96 | 
            +
                return if methods.class.any_of?(Array, String, Symbol)
         | 
| 97 | 
            +
                fail TypeError, "invalid type #{a.class}. you have to use Array or Class or String or Symbol"
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              def define_method_constants(klass, methods, constants)
         | 
| 101 | 
            +
                methods.each_with_index do |m, i|
         | 
| 102 | 
            +
                  klass.class_eval do
         | 
| 103 | 
            +
                    define_method m do |*args|
         | 
| 104 | 
            +
                      constants[i]
         | 
| 105 | 
            +
                    end
         | 
| 106 | 
            +
                  end
         | 
| 107 | 
            +
                end
         | 
| 108 | 
            +
              end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
              def exec_eval(code, binding)
         | 
| 111 | 
            +
                ret = eval code, binding
         | 
| 112 | 
            +
                "#{code} # => #{ret.inspect}"
         | 
| 113 | 
            +
              end
         | 
| 114 | 
            +
            end
         | 
    
        data/lib/tbpgr_utils/version.rb
    CHANGED
    
    
| @@ -3,7 +3,6 @@ require 'spec_helper' | |
| 3 3 | 
             
            require 'tbpgr_utils'
         | 
| 4 4 |  | 
| 5 5 | 
             
            describe Array do
         | 
| 6 | 
            -
             | 
| 7 6 | 
             
              context :together do
         | 
| 8 7 | 
             
                cases = [
         | 
| 9 8 | 
             
                  {
         | 
| @@ -49,4 +48,50 @@ describe Array do | |
| 49 48 | 
             
                  end
         | 
| 50 49 | 
             
                end
         | 
| 51 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
         | 
| 52 97 | 
             
            end
         | 
| @@ -1,173 +1,238 @@ | |
| 1 | 
            -
            # encoding: utf-8
         | 
| 2 | 
            -
            require 'spec_helper'
         | 
| 3 | 
            -
            require 'open_classes/kernel'
         | 
| 4 | 
            -
            require 'test_toolbox'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            describe Kernel do
         | 
| 7 | 
            -
              context :print_eval do
         | 
| 8 | 
            -
                cases = [
         | 
| 9 | 
            -
                  {
         | 
| 10 | 
            -
                    case_no: 1,
         | 
| 11 | 
            -
                    case_title: 'no bind case',
         | 
| 12 | 
            -
                    code: '8/4',
         | 
| 13 | 
            -
                    expected: '8/4 # => 2',
         | 
| 14 | 
            -
                  },
         | 
| 15 | 
            -
                  {
         | 
| 16 | 
            -
                    case_no: 2,
         | 
| 17 | 
            -
                    case_title: 'with bind case',
         | 
| 18 | 
            -
                    code: "\"hoge-\#{message}\"",
         | 
| 19 | 
            -
                    bind: 'msg',
         | 
| 20 | 
            -
                    expected: "\"hoge-\#{message}\" # => \"hoge-msg\"",
         | 
| 21 | 
            -
                  },
         | 
| 22 | 
            -
                ]
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                cases.each do |c|
         | 
| 25 | 
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 26 | 
            -
                    begin
         | 
| 27 | 
            -
                      case_before c
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                      # -- given --
         | 
| 30 | 
            -
                      message = c[:bind] if c[:bind]
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                      # -- when --
         | 
| 33 | 
            -
                      actual = capture_stdout { print_eval c[:code], binding }
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                      # -- then --
         | 
| 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 :puts_eval do
         | 
| 53 | 
            -
                cases = [
         | 
| 54 | 
            -
                  {
         | 
| 55 | 
            -
                    case_no: 1,
         | 
| 56 | 
            -
                    case_title: 'no bind case',
         | 
| 57 | 
            -
                    code: '8/4',
         | 
| 58 | 
            -
                    expected: "8/4 # => 2\n",
         | 
| 59 | 
            -
                  },
         | 
| 60 | 
            -
                  {
         | 
| 61 | 
            -
                    case_no: 2,
         | 
| 62 | 
            -
                    case_title: 'with bind case',
         | 
| 63 | 
            -
                    code: '"hoge-#{message}"',
         | 
| 64 | 
            -
                    bind: 'msg',
         | 
| 65 | 
            -
                    expected: '"hoge-#{message}" # => "hoge-msg"' + "\n",
         | 
| 66 | 
            -
                  },
         | 
| 67 | 
            -
                ]
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                cases.each do |c|
         | 
| 70 | 
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 71 | 
            -
                    begin
         | 
| 72 | 
            -
                      case_before c
         | 
| 73 | 
            -
             | 
| 74 | 
            -
                      # -- given --
         | 
| 75 | 
            -
                      message = c[:bind] if c[:bind]
         | 
| 76 | 
            -
             | 
| 77 | 
            -
                      # -- when --
         | 
| 78 | 
            -
                      actual = capture_stdout { puts_eval c[:code], binding }
         | 
| 79 | 
            -
             | 
| 80 | 
            -
                      # -- then --
         | 
| 81 | 
            -
                      expect(actual).to eq(c[:expected])
         | 
| 82 | 
            -
                    ensure
         | 
| 83 | 
            -
                      case_after c
         | 
| 84 | 
            -
                    end
         | 
| 85 | 
            -
                  end
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                  def case_before(c)
         | 
| 88 | 
            -
                    # implement each case before
         | 
| 89 | 
            -
                  end
         | 
| 90 | 
            -
             | 
| 91 | 
            -
                  def case_after(c)
         | 
| 92 | 
            -
                    # implement each case after
         | 
| 93 | 
            -
                  end
         | 
| 94 | 
            -
                end
         | 
| 95 | 
            -
              end
         | 
| 96 | 
            -
             | 
| 97 | 
            -
              context :bulk_define_methods do
         | 
| 98 | 
            -
                cases = [
         | 
| 99 | 
            -
                  {
         | 
| 100 | 
            -
                    case_no: 1,
         | 
| 101 | 
            -
                    case_title: 'all Array case',
         | 
| 102 | 
            -
                    classes: [NilClass, FalseClass],
         | 
| 103 | 
            -
                    methods: [:blank?, :present?],
         | 
| 104 | 
            -
                    contents: [true, false],
         | 
| 105 | 
            -
                    instances: [nil, false],
         | 
| 106 | 
            -
                    expecteds: [true, false, true, false],
         | 
| 107 | 
            -
                  },
         | 
| 108 | 
            -
                  {
         | 
| 109 | 
            -
                    case_no: 2,
         | 
| 110 | 
            -
                    case_title: 'Class, String, String case',
         | 
| 111 | 
            -
                    classes: NilClass,
         | 
| 112 | 
            -
                    methods: 'hoge',
         | 
| 113 | 
            -
                    contents: 'ret hoge',
         | 
| 114 | 
            -
                    instances: [nil],
         | 
| 115 | 
            -
                    expecteds: ['ret hoge'],
         | 
| 116 | 
            -
                  },
         | 
| 117 | 
            -
                  {
         | 
| 118 | 
            -
                    case_no: 3,
         | 
| 119 | 
            -
                    case_title: 'invalid classes type case',
         | 
| 120 | 
            -
                    classes: :NilClass,
         | 
| 121 | 
            -
                    methods: 'hoge',
         | 
| 122 | 
            -
                    contents: 'ret hoge',
         | 
| 123 | 
            -
                    expect_error: true,
         | 
| 124 | 
            -
                  },
         | 
| 125 | 
            -
                  {
         | 
| 126 | 
            -
                    case_no: 4,
         | 
| 127 | 
            -
                    case_title: 'invalid methods type case',
         | 
| 128 | 
            -
                    classes: NilClass,
         | 
| 129 | 
            -
                    methods: 1,
         | 
| 130 | 
            -
                    contents: 'ret hoge',
         | 
| 131 | 
            -
                    expect_error: true,
         | 
| 132 | 
            -
                  },
         | 
| 133 | 
            -
                ]
         | 
| 134 | 
            -
             | 
| 135 | 
            -
                cases.each do |c|
         | 
| 136 | 
            -
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 137 | 
            -
                    begin
         | 
| 138 | 
            -
                      case_before c
         | 
| 139 | 
            -
             | 
| 140 | 
            -
                      # -- given --
         | 
| 141 | 
            -
                      # nothing
         | 
| 142 | 
            -
             | 
| 143 | 
            -
                      # -- when --
         | 
| 144 | 
            -
                      if c[:expect_error]
         | 
| 145 | 
            -
                        lambda { bulk_define_methods c[:classes], c[:methods], c[:contents] }.should raise_error(StandardError)
         | 
| 146 | 
            -
                        next
         | 
| 147 | 
            -
                      end
         | 
| 148 | 
            -
                      bulk_define_methods c[:classes], c[:methods], c[:contents]
         | 
| 149 | 
            -
             | 
| 150 | 
            -
                      # -- then --
         | 
| 151 | 
            -
                      method_list = c[:methods].is_a?(Array) ? c[:methods] : [c[:methods]]
         | 
| 152 | 
            -
                      cnt = 0
         | 
| 153 | 
            -
                      c[:instances].each do |instance|
         | 
| 154 | 
            -
                        method_list.each do |method_name|
         | 
| 155 | 
            -
                          expect(instance.method(method_name).call).to eq(c[:expecteds][cnt])
         | 
| 156 | 
            -
                          cnt += 1
         | 
| 157 | 
            -
                        end
         | 
| 158 | 
            -
                      end
         | 
| 159 | 
            -
                    ensure
         | 
| 160 | 
            -
                      case_after c
         | 
| 161 | 
            -
                    end
         | 
| 162 | 
            -
                  end
         | 
| 163 | 
            -
             | 
| 164 | 
            -
                  def case_before(c)
         | 
| 165 | 
            -
                    # implement each case before
         | 
| 166 | 
            -
                  end
         | 
| 167 | 
            -
             | 
| 168 | 
            -
                  def case_after(c)
         | 
| 169 | 
            -
                    # implement each case after
         | 
| 170 | 
            -
                  end
         | 
| 171 | 
            -
                end
         | 
| 172 | 
            -
              end
         | 
| 173 | 
            -
             | 
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
            require 'spec_helper'
         | 
| 3 | 
            +
            require 'open_classes/kernel'
         | 
| 4 | 
            +
            require 'test_toolbox'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            describe Kernel do
         | 
| 7 | 
            +
              context :print_eval do
         | 
| 8 | 
            +
                cases = [
         | 
| 9 | 
            +
                  {
         | 
| 10 | 
            +
                    case_no: 1,
         | 
| 11 | 
            +
                    case_title: 'no bind case',
         | 
| 12 | 
            +
                    code: '8/4',
         | 
| 13 | 
            +
                    expected: '8/4 # => 2',
         | 
| 14 | 
            +
                  },
         | 
| 15 | 
            +
                  {
         | 
| 16 | 
            +
                    case_no: 2,
         | 
| 17 | 
            +
                    case_title: 'with bind case',
         | 
| 18 | 
            +
                    code: "\"hoge-\#{message}\"",
         | 
| 19 | 
            +
                    bind: 'msg',
         | 
| 20 | 
            +
                    expected: "\"hoge-\#{message}\" # => \"hoge-msg\"",
         | 
| 21 | 
            +
                  },
         | 
| 22 | 
            +
                ]
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                cases.each do |c|
         | 
| 25 | 
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 26 | 
            +
                    begin
         | 
| 27 | 
            +
                      case_before c
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                      # -- given --
         | 
| 30 | 
            +
                      message = c[:bind] if c[:bind]
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                      # -- when --
         | 
| 33 | 
            +
                      actual = capture_stdout { print_eval c[:code], binding }
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                      # -- then --
         | 
| 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 :puts_eval do
         | 
| 53 | 
            +
                cases = [
         | 
| 54 | 
            +
                  {
         | 
| 55 | 
            +
                    case_no: 1,
         | 
| 56 | 
            +
                    case_title: 'no bind case',
         | 
| 57 | 
            +
                    code: '8/4',
         | 
| 58 | 
            +
                    expected: "8/4 # => 2\n",
         | 
| 59 | 
            +
                  },
         | 
| 60 | 
            +
                  {
         | 
| 61 | 
            +
                    case_no: 2,
         | 
| 62 | 
            +
                    case_title: 'with bind case',
         | 
| 63 | 
            +
                    code: '"hoge-#{message}"',
         | 
| 64 | 
            +
                    bind: 'msg',
         | 
| 65 | 
            +
                    expected: '"hoge-#{message}" # => "hoge-msg"' + "\n",
         | 
| 66 | 
            +
                  },
         | 
| 67 | 
            +
                ]
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                cases.each do |c|
         | 
| 70 | 
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 71 | 
            +
                    begin
         | 
| 72 | 
            +
                      case_before c
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                      # -- given --
         | 
| 75 | 
            +
                      message = c[:bind] if c[:bind]
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                      # -- when --
         | 
| 78 | 
            +
                      actual = capture_stdout { puts_eval c[:code], binding }
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                      # -- then --
         | 
| 81 | 
            +
                      expect(actual).to eq(c[:expected])
         | 
| 82 | 
            +
                    ensure
         | 
| 83 | 
            +
                      case_after c
         | 
| 84 | 
            +
                    end
         | 
| 85 | 
            +
                  end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                  def case_before(c)
         | 
| 88 | 
            +
                    # implement each case before
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                  def case_after(c)
         | 
| 92 | 
            +
                    # implement each case after
         | 
| 93 | 
            +
                  end
         | 
| 94 | 
            +
                end
         | 
| 95 | 
            +
              end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
              context :bulk_define_methods do
         | 
| 98 | 
            +
                cases = [
         | 
| 99 | 
            +
                  {
         | 
| 100 | 
            +
                    case_no: 1,
         | 
| 101 | 
            +
                    case_title: 'all Array case',
         | 
| 102 | 
            +
                    classes: [NilClass, FalseClass],
         | 
| 103 | 
            +
                    methods: [:blank?, :present?],
         | 
| 104 | 
            +
                    contents: [true, false],
         | 
| 105 | 
            +
                    instances: [nil, false],
         | 
| 106 | 
            +
                    expecteds: [true, false, true, false],
         | 
| 107 | 
            +
                  },
         | 
| 108 | 
            +
                  {
         | 
| 109 | 
            +
                    case_no: 2,
         | 
| 110 | 
            +
                    case_title: 'Class, String, String case',
         | 
| 111 | 
            +
                    classes: NilClass,
         | 
| 112 | 
            +
                    methods: 'hoge',
         | 
| 113 | 
            +
                    contents: 'ret hoge',
         | 
| 114 | 
            +
                    instances: [nil],
         | 
| 115 | 
            +
                    expecteds: ['ret hoge'],
         | 
| 116 | 
            +
                  },
         | 
| 117 | 
            +
                  {
         | 
| 118 | 
            +
                    case_no: 3,
         | 
| 119 | 
            +
                    case_title: 'invalid classes type case',
         | 
| 120 | 
            +
                    classes: :NilClass,
         | 
| 121 | 
            +
                    methods: 'hoge',
         | 
| 122 | 
            +
                    contents: 'ret hoge',
         | 
| 123 | 
            +
                    expect_error: true,
         | 
| 124 | 
            +
                  },
         | 
| 125 | 
            +
                  {
         | 
| 126 | 
            +
                    case_no: 4,
         | 
| 127 | 
            +
                    case_title: 'invalid methods type case',
         | 
| 128 | 
            +
                    classes: NilClass,
         | 
| 129 | 
            +
                    methods: 1,
         | 
| 130 | 
            +
                    contents: 'ret hoge',
         | 
| 131 | 
            +
                    expect_error: true,
         | 
| 132 | 
            +
                  },
         | 
| 133 | 
            +
                ]
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                cases.each do |c|
         | 
| 136 | 
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 137 | 
            +
                    begin
         | 
| 138 | 
            +
                      case_before c
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                      # -- given --
         | 
| 141 | 
            +
                      # nothing
         | 
| 142 | 
            +
             | 
| 143 | 
            +
                      # -- when --
         | 
| 144 | 
            +
                      if c[:expect_error]
         | 
| 145 | 
            +
                        lambda { bulk_define_methods c[:classes], c[:methods], c[:contents] }.should raise_error(StandardError)
         | 
| 146 | 
            +
                        next
         | 
| 147 | 
            +
                      end
         | 
| 148 | 
            +
                      bulk_define_methods c[:classes], c[:methods], c[:contents]
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                      # -- then --
         | 
| 151 | 
            +
                      method_list = c[:methods].is_a?(Array) ? c[:methods] : [c[:methods]]
         | 
| 152 | 
            +
                      cnt = 0
         | 
| 153 | 
            +
                      c[:instances].each do |instance|
         | 
| 154 | 
            +
                        method_list.each do |method_name|
         | 
| 155 | 
            +
                          expect(instance.method(method_name).call).to eq(c[:expecteds][cnt])
         | 
| 156 | 
            +
                          cnt += 1
         | 
| 157 | 
            +
                        end
         | 
| 158 | 
            +
                      end
         | 
| 159 | 
            +
                    ensure
         | 
| 160 | 
            +
                      case_after c
         | 
| 161 | 
            +
                    end
         | 
| 162 | 
            +
                  end
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                  def case_before(c)
         | 
| 165 | 
            +
                    # implement each case before
         | 
| 166 | 
            +
                  end
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                  def case_after(c)
         | 
| 169 | 
            +
                    # implement each case after
         | 
| 170 | 
            +
                  end
         | 
| 171 | 
            +
                end
         | 
| 172 | 
            +
              end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
              context :bluk_puts_eval do
         | 
| 175 | 
            +
                BULK_CODE1 =<<-EOS
         | 
| 176 | 
            +
            "hoge-hige1" + "add"
         | 
| 177 | 
            +
            "hoge-hige2" + "add"
         | 
| 178 | 
            +
                EOS
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                BULK_EXPECTED1 =<<-EOS
         | 
| 181 | 
            +
            "hoge-hige1" + "add" # => "hoge-hige1add"
         | 
| 182 | 
            +
            "hoge-hige2" + "add" # => "hoge-hige2add"
         | 
| 183 | 
            +
                EOS
         | 
| 184 | 
            +
             | 
| 185 | 
            +
                BULK_CODE2 =<<-EOS
         | 
| 186 | 
            +
            "hoge-hige1" + "add" + message
         | 
| 187 | 
            +
            "hoge-hige2" + "add" + message
         | 
| 188 | 
            +
                EOS
         | 
| 189 | 
            +
             | 
| 190 | 
            +
                BULK_EXPECTED2 =<<-EOS
         | 
| 191 | 
            +
            "hoge-hige1" + "add" + message # => "hoge-hige1addmsg"
         | 
| 192 | 
            +
            "hoge-hige2" + "add" + message # => "hoge-hige2addmsg"
         | 
| 193 | 
            +
                EOS
         | 
| 194 | 
            +
             | 
| 195 | 
            +
                cases = [
         | 
| 196 | 
            +
                  {
         | 
| 197 | 
            +
                    case_no: 1,
         | 
| 198 | 
            +
                    case_title: 'no bind case',
         | 
| 199 | 
            +
                    code: BULK_CODE1,
         | 
| 200 | 
            +
                    expected: BULK_EXPECTED1
         | 
| 201 | 
            +
                  },
         | 
| 202 | 
            +
                  {
         | 
| 203 | 
            +
                    case_no: 2,
         | 
| 204 | 
            +
                    case_title: 'with bind case',
         | 
| 205 | 
            +
                    code: BULK_CODE1,
         | 
| 206 | 
            +
                    bind: 'msg',
         | 
| 207 | 
            +
                    expected: BULK_EXPECTED1
         | 
| 208 | 
            +
                  },
         | 
| 209 | 
            +
                ]
         | 
| 210 | 
            +
             | 
| 211 | 
            +
                cases.each do |c|
         | 
| 212 | 
            +
                  it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
         | 
| 213 | 
            +
                    begin
         | 
| 214 | 
            +
                      case_before c
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                      # -- given --
         | 
| 217 | 
            +
                      message = c[:bind] if c[:bind]
         | 
| 218 | 
            +
             | 
| 219 | 
            +
                      # -- when --
         | 
| 220 | 
            +
                      actual = capture_stdout { bulk_puts_eval binding, c[:code] }
         | 
| 221 | 
            +
             | 
| 222 | 
            +
                      # -- then --
         | 
| 223 | 
            +
                      expect(actual).to eq(c[:expected])
         | 
| 224 | 
            +
                    ensure
         | 
| 225 | 
            +
                      case_after c
         | 
| 226 | 
            +
                    end
         | 
| 227 | 
            +
                  end
         | 
| 228 | 
            +
             | 
| 229 | 
            +
                  def case_before(c)
         | 
| 230 | 
            +
                    # implement each case before
         | 
| 231 | 
            +
                  end
         | 
| 232 | 
            +
             | 
| 233 | 
            +
                  def case_after(c)
         | 
| 234 | 
            +
                    # implement each case after
         | 
| 235 | 
            +
                  end
         | 
| 236 | 
            +
                end
         | 
| 237 | 
            +
              end
         | 
| 238 | 
            +
            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.13
         | 
| 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-20 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &28466484 !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: *28466484
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: bundler
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &28465548 !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: *28465548
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: rake
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &28464576 !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: *28464576
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: rspec
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &28464000 !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: *28464000
         | 
| 58 58 | 
             
            description: Utilities
         | 
| 59 59 | 
             
            email:
         | 
| 60 60 | 
             
            - tbpgr@tbpgr.jp
         |