pork 1.4.4 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +9 -5
- data/CHANGES.md +10 -0
- data/README.md +22 -9
- data/Rakefile +3 -1
- data/lib/pork.rb +6 -1
- data/lib/pork/auto.rb +1 -0
- data/lib/pork/executor.rb +2 -1
- data/lib/pork/extra/rainbows.rb +10 -0
- data/lib/pork/imp.rb +1 -3
- data/lib/pork/inspect.rb +8 -8
- data/lib/pork/isolate.rb +0 -4
- data/lib/pork/mode/parallel.rb +1 -0
- data/lib/pork/mode/sequential.rb +3 -28
- data/lib/pork/mode/shuffled.rb +1 -2
- data/lib/pork/more/color.rb +26 -10
- data/lib/pork/report.rb +34 -6
- data/lib/pork/report/description.rb +4 -4
- data/lib/pork/report/progressbar.rb +96 -0
- data/lib/pork/stat.rb +9 -1
- data/lib/pork/test.rb +0 -1
- data/lib/pork/version.rb +1 -1
- data/pork.gemspec +73 -69
- metadata +18 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cc7cc07abd9d5e467ea5e229953b9bfd4ecc0978
         | 
| 4 | 
            +
              data.tar.gz: adec072a9ef317b4f6baad7e38d14b96ee33aea2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9c181fef0d0491353d1034fb852f434c148eaaf6142f4d536320ee2c1f74a23e59a019340c8202399984ee75cebdee71bb545914558c895fd45dfbc675a0f7c6
         | 
| 7 | 
            +
              data.tar.gz: c5e3d773b083eb21700a089a122cc577143a42e26c98c37ed8ed901b73d171b5b7717d8dd67a5fbecbdd67c030fe64057299698b212ece295421907f9e30f3b1
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -1,11 +1,15 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            sudo: false
         | 
| 2 2 | 
             
            language: ruby
         | 
| 3 3 | 
             
            rvm:
         | 
| 4 | 
            -
              - 2.0
         | 
| 5 4 | 
             
              - 2.1
         | 
| 6 5 | 
             
              - 2.2
         | 
| 7 | 
            -
              -  | 
| 8 | 
            -
              -  | 
| 6 | 
            +
              - 2.3.0
         | 
| 7 | 
            +
              - rbx
         | 
| 8 | 
            +
              - jruby-9
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 10 | 
            +
            before_install:
         | 
| 11 | 
            +
              - rvm get head
         | 
| 12 | 
            +
              - rvm reload
         | 
| 13 | 
            +
              - rvm use --install $TRAVIS_RUBY_VERSION --binary --latest
         | 
| 14 | 
            +
            install: 'gem install bundler; bundle install --retry=3'
         | 
| 11 15 | 
             
            script: 'ruby -r bundler/setup -S rake test'
         | 
    
        data/CHANGES.md
    CHANGED
    
    | @@ -1,5 +1,15 @@ | |
| 1 1 | 
             
            # CHANGES
         | 
| 2 2 |  | 
| 3 | 
            +
            ## Pork 1.5.0 -- 2016-03-10
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ### Enhancement
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Now it would show loading time between pork was loaded and test started.
         | 
| 8 | 
            +
              You could tweak the time by using `Pork.loaded`.
         | 
| 9 | 
            +
            * Pork in sequential mode would just use Isolate internally. This would
         | 
| 10 | 
            +
              reduce the internal complexity.
         | 
| 11 | 
            +
            * Added `PORK_REPORT=progressbar`, using `ruby-progressbar` underneath.
         | 
| 12 | 
            +
             | 
| 3 13 | 
             
            ## Pork 1.4.4 -- 2015-11-10
         | 
| 4 14 |  | 
| 5 15 | 
             
            ### Bugs fixed
         | 
    
        data/README.md
    CHANGED
    
    | @@ -150,8 +150,11 @@ end | |
| 150 150 | 
             
            * Tested with MRI (official CRuby), Rubinius and JRuby.
         | 
| 151 151 | 
             
            * (Optional) [method_source][] if you would like to print the source for the
         | 
| 152 152 | 
             
              failing tests.
         | 
| 153 | 
            +
            * (Optional) [ruby-progressbar][] if you like porgressbar for showing
         | 
| 154 | 
            +
              progress. Checkout [Pork.report_mode](#porkreport_mode) for using it.
         | 
| 153 155 |  | 
| 154 156 | 
             
            [method_source]: https://github.com/banister/method_source
         | 
| 157 | 
            +
            [ruby-progressbar]: https://github.com/jfelchner/ruby-progressbar
         | 
| 155 158 |  | 
| 156 159 | 
             
            ## INSTALLATION:
         | 
| 157 160 |  | 
| @@ -928,6 +931,7 @@ of test cases. All the options are: | |
| 928 931 |  | 
| 929 932 | 
             
            * `:dot` (default)
         | 
| 930 933 | 
             
            * `:description`
         | 
| 934 | 
            +
            * `:progressbar` (needs [ruby-progressbar][])
         | 
| 931 935 |  | 
| 932 936 | 
             
            Pass the symbol to it to use the mode:
         | 
| 933 937 |  | 
| @@ -935,24 +939,33 @@ Pass the symbol to it to use the mode: | |
| 935 939 | 
             
            Pork.report_mode :description
         | 
| 936 940 | 
             
            ```
         | 
| 937 941 |  | 
| 942 | 
            +
            Or if you want to use a progressbar:
         | 
| 943 | 
            +
             | 
| 944 | 
            +
            ``` ruby
         | 
| 945 | 
            +
            Pork.report_mode :progressbar
         | 
| 946 | 
            +
            # Show your love for rainbows when you're feeling lucky! Highly recommended!
         | 
| 947 | 
            +
            Pork.Rainbows! if rand(50) == 0
         | 
| 948 | 
            +
            ```
         | 
| 949 | 
            +
             | 
| 938 950 | 
             
            On the other hand, you could also set `ENV['PORK_REPORT']` for picking an
         | 
| 939 951 | 
             
            reporting mode. This would be convenient if you just want to switch to a
         | 
| 940 952 | 
             
            particular mode temporary via command line. For example:
         | 
| 941 953 |  | 
| 942 954 | 
             
            ``` shell
         | 
| 943 | 
            -
            env PORK_REPORT= | 
| 955 | 
            +
            env PORK_REPORT=progressbar rake test
         | 
| 944 956 | 
             
            ```
         | 
| 945 957 |  | 
| 946 958 | 
             
            Or:
         | 
| 947 959 |  | 
| 948 960 | 
             
            ``` shell
         | 
| 949 | 
            -
            env PORK_REPORT= | 
| 961 | 
            +
            env PORK_REPORT=progressbar ruby -Ilib test/test_pork.rb
         | 
| 950 962 | 
             
            ```
         | 
| 951 963 |  | 
| 952 | 
            -
            Caveat: You might see interleaving description output if you're running | 
| 953 | 
            -
            `Pork.execute_mode :shuffled` because... | 
| 954 | 
            -
             | 
| 955 | 
            -
            if you don't want to see interleaving | 
| 964 | 
            +
            Caveat: You might see interleaving description output if you're running
         | 
| 965 | 
            +
            `Pork.report_mode :description` with `Pork.execute_mode :shuffled` because...
         | 
| 966 | 
            +
            it's shuffled. You might want to run in `Pork.execute_mode :sequential`
         | 
| 967 | 
            +
            when using description report if you don't want to see interleaving
         | 
| 968 | 
            +
            descriptions.
         | 
| 956 969 |  | 
| 957 970 | 
             
            ### Pork.inspect_failure_mode
         | 
| 958 971 |  | 
| @@ -1039,12 +1052,12 @@ would print the source | |
| 1039 1052 | 
             
            Pork::Error: Flunked
         | 
| 1040 1053 | 
             
            ```
         | 
| 1041 1054 |  | 
| 1042 | 
            -
            [method_source]: https://github.com/banister/method_source
         | 
| 1043 | 
            -
             | 
| 1044 1055 | 
             
            ### Pork.Rainbows!
         | 
| 1045 1056 |  | 
| 1046 1057 | 
             
            Have you seen Rainbows!?
         | 
| 1047 1058 |  | 
| 1059 | 
            +
            
         | 
| 1060 | 
            +
             | 
| 1048 1061 | 
             
            ## CONTRIBUTORS:
         | 
| 1049 1062 |  | 
| 1050 1063 | 
             
            * Chun-Yi Liu (@trantorliu)
         | 
| @@ -1056,7 +1069,7 @@ Have you seen Rainbows!? | |
| 1056 1069 |  | 
| 1057 1070 | 
             
            Apache License 2.0
         | 
| 1058 1071 |  | 
| 1059 | 
            -
            Copyright (c) 2014- | 
| 1072 | 
            +
            Copyright (c) 2014-2016, Lin Jen-Shin (godfat)
         | 
| 1060 1073 |  | 
| 1061 1074 | 
             
            Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 1062 1075 | 
             
            you may not use this file except in compliance with the License.
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -10,5 +10,7 @@ Gemgem.init(dir) do |s| | |
| 10 10 | 
             
              require 'pork/version'
         | 
| 11 11 | 
             
              s.name    = 'pork'
         | 
| 12 12 | 
             
              s.version = Pork::VERSION
         | 
| 13 | 
            -
              %w[method_source]. | 
| 13 | 
            +
              %w[method_source ruby-progressbar].
         | 
| 14 | 
            +
                each(&s.method(:add_development_dependency))
         | 
| 15 | 
            +
              s.files.delete('screenshot.png')
         | 
| 14 16 | 
             
            end
         | 
    
        data/lib/pork.rb
    CHANGED
    
    | @@ -86,7 +86,6 @@ module Pork | |
| 86 86 |  | 
| 87 87 | 
             
              def self.execute
         | 
| 88 88 | 
             
                if ENV['PORK_TEST']
         | 
| 89 | 
            -
                  require 'pork/isolate'
         | 
| 90 89 | 
             
                  if tests = Executor[ENV['PORK_TEST']]
         | 
| 91 90 | 
             
                    @stat = Executor.execute(execute_mode, stat, tests)
         | 
| 92 91 | 
             
                  else
         | 
| @@ -103,10 +102,16 @@ module Pork | |
| 103 102 | 
             
                execute_mode(ENV['PORK_MODE'])
         | 
| 104 103 | 
             
                report_mode(ENV['PORK_REPORT'])
         | 
| 105 104 | 
             
                trap
         | 
| 105 | 
            +
                stat.loaded(@at, @files)
         | 
| 106 106 | 
             
                execute
         | 
| 107 107 | 
             
                stat.report
         | 
| 108 108 | 
             
              end
         | 
| 109 109 |  | 
| 110 | 
            +
              def self.loaded at=Time.now
         | 
| 111 | 
            +
                @at = at
         | 
| 112 | 
            +
                @files = $LOADED_FEATURES.size
         | 
| 113 | 
            +
              end
         | 
| 114 | 
            +
             | 
| 110 115 | 
             
              def self.autorun auto=true
         | 
| 111 116 | 
             
                @auto = auto
         | 
| 112 117 | 
             
                @autorun ||= at_exit do
         | 
    
        data/lib/pork/auto.rb
    CHANGED
    
    
    
        data/lib/pork/executor.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require 'pork/imp'
         | 
| 3 | 
            +
            require 'pork/isolate'
         | 
| 3 4 | 
             
            require 'pork/context'
         | 
| 4 5 |  | 
| 5 6 | 
             
            module Pork
         | 
| @@ -8,7 +9,7 @@ module Pork | |
| 8 9 | 
             
                # pork/isolate was not loaded. (i.e. isolate would override it anyway)
         | 
| 9 10 | 
             
                singleton_class.superclass.send(:remove_method, :[])
         | 
| 10 11 |  | 
| 11 | 
            -
                extend Imp
         | 
| 12 | 
            +
                extend Isolate, Imp
         | 
| 12 13 | 
             
                include Context
         | 
| 13 14 | 
             
                init
         | 
| 14 15 | 
             
              end
         | 
    
        data/lib/pork/extra/rainbows.rb
    CHANGED
    
    | @@ -7,6 +7,16 @@ module Pork | |
| 7 7 | 
             
                  color256(rainbows(@rainbows), strip_color(super))
         | 
| 8 8 | 
             
                end
         | 
| 9 9 |  | 
| 10 | 
            +
                def paint text
         | 
| 11 | 
            +
                  @demping ||= -1
         | 
| 12 | 
            +
                  @demping  += +1
         | 
| 13 | 
            +
                  @rainbows = @demping
         | 
| 14 | 
            +
                  strip_color(text).each_char.map do |c|
         | 
| 15 | 
            +
                    @rainbows += +1
         | 
| 16 | 
            +
                    color256(rainbows(@rainbows), c)
         | 
| 17 | 
            +
                  end.join
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 10 20 | 
             
                private
         | 
| 11 21 | 
             
                def strip_color text
         | 
| 12 22 | 
             
                  text.gsub(/\e\[\d+m/, '')
         | 
    
        data/lib/pork/imp.rb
    CHANGED
    
    | @@ -47,9 +47,7 @@ module Pork | |
| 47 47 | 
             
                  run_protected(stat, desc, test, seed) do
         | 
| 48 48 | 
             
                    env.run_before(context)
         | 
| 49 49 | 
             
                    context.instance_eval(&test)
         | 
| 50 | 
            -
                    if assertions == stat.assertions
         | 
| 51 | 
            -
                      raise Error.new('Missing assertions')
         | 
| 52 | 
            -
                    end
         | 
| 50 | 
            +
                    raise Error.new('Missing assertions') if assertions == stat.assertions
         | 
| 53 51 | 
             
                    stat.reporter.case_pass
         | 
| 54 52 | 
             
                  end
         | 
| 55 53 | 
             
                ensure
         | 
    
        data/lib/pork/inspect.rb
    CHANGED
    
    | @@ -82,10 +82,10 @@ module Pork | |
| 82 82 | 
             
                def diff_hash expect, actual, result={}, prefix=''
         | 
| 83 83 | 
             
                  expect.inject(result) do |r, (key, e)|
         | 
| 84 84 | 
             
                    a = if actual.key?(key)
         | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 85 | 
            +
                          actual[key]
         | 
| 86 | 
            +
                        else
         | 
| 87 | 
            +
                          Undefined
         | 
| 88 | 
            +
                        end
         | 
| 89 89 | 
             
                    diff_object(e, a, r, "#{prefix}#{key.inspect}")
         | 
| 90 90 | 
             
                  end
         | 
| 91 91 | 
             
                end
         | 
| @@ -93,10 +93,10 @@ module Pork | |
| 93 93 | 
             
                def diff_array expect, actual, result={}, prefix=''
         | 
| 94 94 | 
             
                  expect.each.with_index.inject(result) do |r, (e, idx)|
         | 
| 95 95 | 
             
                    a = if idx < actual.size
         | 
| 96 | 
            -
             | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 96 | 
            +
                          actual[idx]
         | 
| 97 | 
            +
                        else
         | 
| 98 | 
            +
                          OutOfBound
         | 
| 99 | 
            +
                        end
         | 
| 100 100 | 
             
                    diff_object(e, a, r, "#{prefix}#{idx}")
         | 
| 101 101 | 
             
                  end
         | 
| 102 102 | 
             
                end
         | 
    
        data/lib/pork/isolate.rb
    CHANGED
    
    
    
        data/lib/pork/mode/parallel.rb
    CHANGED
    
    
    
        data/lib/pork/mode/sequential.rb
    CHANGED
    
    | @@ -1,34 +1,9 @@ | |
| 1 1 |  | 
| 2 | 
            -
            require 'pork'
         | 
| 3 | 
            -
             | 
| 4 2 | 
             
            module Pork
         | 
| 5 3 | 
             
              module Sequential
         | 
| 6 | 
            -
                def sequential stat=Stat.new, paths= | 
| 7 | 
            -
                   | 
| 8 | 
            -
             | 
| 9 | 
            -
                    paths.inject(stat, &method(:isolate))
         | 
| 10 | 
            -
                  else # maybe we could remove this mode if it's not faster and lighter
         | 
| 11 | 
            -
                    sequential_with_env(stat)
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
                end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                protected
         | 
| 16 | 
            -
                def sequential_with_env stat, super_env=nil
         | 
| 17 | 
            -
                  env = Env.new(super_env)
         | 
| 18 | 
            -
                  @tests.each do |(type, arg, test)|
         | 
| 19 | 
            -
                    case type
         | 
| 20 | 
            -
                    when :before
         | 
| 21 | 
            -
                      env.before << arg
         | 
| 22 | 
            -
                    when :after
         | 
| 23 | 
            -
                      env.after  << arg
         | 
| 24 | 
            -
                    when :describe
         | 
| 25 | 
            -
                      arg.sequential_with_env(stat, env)
         | 
| 26 | 
            -
                    when :would
         | 
| 27 | 
            -
                      run(stat, arg, test, env)
         | 
| 28 | 
            -
                    end
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                  stat
         | 
| 4 | 
            +
                def sequential stat=Stat.new, paths=all_paths
         | 
| 5 | 
            +
                  stat.prepare(paths)
         | 
| 6 | 
            +
                  paths.inject(stat, &method(:isolate))
         | 
| 32 7 | 
             
                end
         | 
| 33 8 | 
             
              end
         | 
| 34 9 |  | 
    
        data/lib/pork/mode/shuffled.rb
    CHANGED
    
    
    
        data/lib/pork/more/color.rb
    CHANGED
    
    | @@ -24,12 +24,8 @@ module Pork | |
| 24 24 | 
             
                  "#{color(41, super.chomp)}\n"
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 | 
            -
                def  | 
| 28 | 
            -
                   | 
| 29 | 
            -
                end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                def numbers stat
         | 
| 32 | 
            -
                  stat.numbers.zip(%w[green green magenta red yellow]).map do |(num, col)|
         | 
| 27 | 
            +
                def numbers values
         | 
| 28 | 
            +
                  values.zip(%w[green green magenta red yellow]).map do |(num, col)|
         | 
| 33 29 | 
             
                    if num == 0
         | 
| 34 30 | 
             
                      num
         | 
| 35 31 | 
             
                    else
         | 
| @@ -38,10 +34,24 @@ module Pork | |
| 38 34 | 
             
                  end
         | 
| 39 35 | 
             
                end
         | 
| 40 36 |  | 
| 41 | 
            -
                def  | 
| 42 | 
            -
                   | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 37 | 
            +
                def loadings values
         | 
| 38 | 
            +
                  with_colors(values, %w[green cyan blue])
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def velocity values
         | 
| 42 | 
            +
                  with_colors(values, %w[cyan blue blue])
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                def ok text
         | 
| 46 | 
            +
                  green(text)
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                def bad text
         | 
| 50 | 
            +
                  red(text)
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                def time text
         | 
| 54 | 
            +
                  cyan(text)
         | 
| 45 55 | 
             
                end
         | 
| 46 56 |  | 
| 47 57 | 
             
                def backtrace *_
         | 
| @@ -54,6 +64,12 @@ module Pork | |
| 54 64 | 
             
                  end
         | 
| 55 65 | 
             
                end
         | 
| 56 66 |  | 
| 67 | 
            +
                def with_colors values, colors
         | 
| 68 | 
            +
                  values.zip(colors).map do |(str, col)|
         | 
| 69 | 
            +
                    send(col, str)
         | 
| 70 | 
            +
                  end
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
             | 
| 57 73 | 
             
                def    gray text; color('1;30', text); end
         | 
| 58 74 | 
             
                def   black text; color(   30 , text); end
         | 
| 59 75 | 
             
                def     red text; color(   31 , text); end
         | 
    
        data/lib/pork/report.rb
    CHANGED
    
    | @@ -15,22 +15,50 @@ module Pork | |
| 15 15 | 
             
                def case_failed ; io.print msg_failed ; end
         | 
| 16 16 | 
             
                def case_errored; io.print msg_errored; end
         | 
| 17 17 |  | 
| 18 | 
            +
                def loaded at, files
         | 
| 19 | 
            +
                  elapsed = Time.now - at
         | 
| 20 | 
            +
                  delta = $LOADED_FEATURES.size - files
         | 
| 21 | 
            +
                  io.printf("Loaded %s files in %s seconds, %s files/s\n",
         | 
| 22 | 
            +
                            *loadings([delta, elapsed.round(6),
         | 
| 23 | 
            +
                                       (delta / elapsed).round(4)]))
         | 
| 24 | 
            +
                  io.puts
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                def prepare paths
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 18 30 | 
             
                def report stat
         | 
| 19 31 | 
             
                  io.puts
         | 
| 20 32 | 
             
                  io.puts messages(stat)
         | 
| 21 33 | 
             
                  io.printf("\nFinished in %s seconds, %s tests/s, %s assertions/s \n",
         | 
| 22 | 
            -
                            *velocity(stat))
         | 
| 34 | 
            +
                            *velocity(stat.velocity))
         | 
| 23 35 | 
             
                  io.printf("%s tests, %s assertions, %s failures, %s errors, %s skips\n",
         | 
| 24 | 
            -
                            *numbers(stat))
         | 
| 36 | 
            +
                            *numbers(stat.numbers))
         | 
| 25 37 | 
             
                end
         | 
| 26 38 |  | 
| 27 39 | 
             
                private
         | 
| 28 | 
            -
                def  | 
| 29 | 
            -
                   | 
| 40 | 
            +
                def loadings values
         | 
| 41 | 
            +
                  values
         | 
| 42 | 
            +
                end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                def velocity values
         | 
| 45 | 
            +
                  values
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def numbers values
         | 
| 49 | 
            +
                  values
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                def ok text
         | 
| 53 | 
            +
                  text
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                def bad text
         | 
| 57 | 
            +
                  text
         | 
| 30 58 | 
             
                end
         | 
| 31 59 |  | 
| 32 | 
            -
                def  | 
| 33 | 
            -
                   | 
| 60 | 
            +
                def time text
         | 
| 61 | 
            +
                  text
         | 
| 34 62 | 
             
                end
         | 
| 35 63 |  | 
| 36 64 | 
             
                def messages stat
         | 
| @@ -6,7 +6,7 @@ module Pork | |
| 6 6 | 
             
                attr_accessor :last_executor
         | 
| 7 7 |  | 
| 8 8 | 
             
                def msg_pass
         | 
| 9 | 
            -
                  msg = "\ | 
| 9 | 
            +
                  msg = "\ro"
         | 
| 10 10 | 
             
                  if respond_to?(:green, true)
         | 
| 11 11 | 
             
                    green(msg)
         | 
| 12 12 | 
             
                  else
         | 
| @@ -14,9 +14,9 @@ module Pork | |
| 14 14 | 
             
                  end
         | 
| 15 15 | 
             
                end
         | 
| 16 16 |  | 
| 17 | 
            -
                def msg_skip   ; "\ | 
| 18 | 
            -
                def msg_failed ; "\ | 
| 19 | 
            -
                def msg_errored; "\ | 
| 17 | 
            +
                def msg_skip   ; "\r#{super}"; end
         | 
| 18 | 
            +
                def msg_failed ; "\r#{super}"; end
         | 
| 19 | 
            +
                def msg_errored; "\r#{super}"; end
         | 
| 20 20 |  | 
| 21 21 | 
             
                def case_start context
         | 
| 22 22 | 
             
                  self.last_executor ||= Executor
         | 
| @@ -0,0 +1,96 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            require 'ruby-progressbar'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require 'pork/report'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Pork
         | 
| 7 | 
            +
              class Progressbar < Report
         | 
| 8 | 
            +
                attr_accessor :bar, :failed
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                module CarriageReturn
         | 
| 11 | 
            +
                  def eol; "\r"; end
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                module Painter
         | 
| 15 | 
            +
                  attr_accessor :reporter
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def lookup_value *args
         | 
| 18 | 
            +
                    case key
         | 
| 19 | 
            +
                    when 'b'
         | 
| 20 | 
            +
                      reporter.paint(super)
         | 
| 21 | 
            +
                    when 'C'
         | 
| 22 | 
            +
                      reporter.send(:ok, super)
         | 
| 23 | 
            +
                    when 'c'
         | 
| 24 | 
            +
                      if reporter.failed
         | 
| 25 | 
            +
                        reporter.send(:bad, super)
         | 
| 26 | 
            +
                      else
         | 
| 27 | 
            +
                        reporter.send(:ok, super)
         | 
| 28 | 
            +
                      end
         | 
| 29 | 
            +
                    else
         | 
| 30 | 
            +
                      super
         | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                class Bar < ::ProgressBar::Base
         | 
| 36 | 
            +
                  attr_accessor :thread
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  def initialize reporter, *args
         | 
| 39 | 
            +
                    super(*args)
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    # don't print extra newline
         | 
| 42 | 
            +
                    output.extend(CarriageReturn)
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                    # colourize the bar
         | 
| 45 | 
            +
                    @format.molecules.each do |m|
         | 
| 46 | 
            +
                      m.extend(Painter)
         | 
| 47 | 
            +
                      m.reporter = reporter
         | 
| 48 | 
            +
                    end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                    # set FPS to 30
         | 
| 51 | 
            +
                    self.thread = Thread.new do
         | 
| 52 | 
            +
                      until finished?
         | 
| 53 | 
            +
                        sleep(0.033)
         | 
| 54 | 
            +
                        update_progress(:itself)
         | 
| 55 | 
            +
                      end
         | 
| 56 | 
            +
                    end
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  def tick
         | 
| 60 | 
            +
                    progressable.increment
         | 
| 61 | 
            +
                    thread.join if finished?
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  def raise size
         | 
| 65 | 
            +
                    progressable.total += size
         | 
| 66 | 
            +
                  end
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                def prepare paths
         | 
| 70 | 
            +
                  if bar
         | 
| 71 | 
            +
                    bar.raise(paths.size)
         | 
| 72 | 
            +
                  else
         | 
| 73 | 
            +
                    self.bar = Bar.new(self, :output => io, :total => paths.size,
         | 
| 74 | 
            +
                                             :format => format)
         | 
| 75 | 
            +
                  end
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                def case_pass   ; end
         | 
| 79 | 
            +
                def case_skip   ; end
         | 
| 80 | 
            +
                def case_failed ; self.failed = true; end
         | 
| 81 | 
            +
                def case_errored; self.failed = true; end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                def case_end
         | 
| 84 | 
            +
                  bar.tick
         | 
| 85 | 
            +
                end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                def paint text
         | 
| 88 | 
            +
                  text
         | 
| 89 | 
            +
                end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                private
         | 
| 92 | 
            +
                def format
         | 
| 93 | 
            +
                  "   %c/%C (#{time('%P%')}) |%b>%i| #{time('%e')} "
         | 
| 94 | 
            +
                end
         | 
| 95 | 
            +
              end
         | 
| 96 | 
            +
            end
         | 
    
        data/lib/pork/stat.rb
    CHANGED
    
    | @@ -34,7 +34,7 @@ module Pork | |
| 34 34 | 
             
                  end
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 | 
            -
                def passed?; exceptions. | 
| 37 | 
            +
                def passed?; exceptions.empty?                           ; end
         | 
| 38 38 | 
             
                def numbers; [tests, assertions, failures, errors, skips]; end
         | 
| 39 39 |  | 
| 40 40 | 
             
                def velocity
         | 
| @@ -44,6 +44,14 @@ module Pork | |
| 44 44 | 
             
                   (assertions / time_spent).round(4)]
         | 
| 45 45 | 
             
                end
         | 
| 46 46 |  | 
| 47 | 
            +
                def loaded at, files
         | 
| 48 | 
            +
                  reporter.loaded(at, files)
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                def prepare paths
         | 
| 52 | 
            +
                  reporter.prepare(paths)
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 47 55 | 
             
                def report
         | 
| 48 56 | 
             
                  self.stop = Time.now
         | 
| 49 57 | 
             
                  reporter.report(self)
         | 
    
        data/lib/pork/test.rb
    CHANGED
    
    
    
        data/lib/pork/version.rb
    CHANGED
    
    
    
        data/pork.gemspec
    CHANGED
    
    | @@ -1,85 +1,89 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            -
            # stub: pork 1. | 
| 2 | 
            +
            # stub: pork 1.5.0 ruby lib
         | 
| 3 3 |  | 
| 4 4 | 
             
            Gem::Specification.new do |s|
         | 
| 5 | 
            -
              s.name = "pork"
         | 
| 6 | 
            -
              s.version = "1. | 
| 5 | 
            +
              s.name = "pork".freeze
         | 
| 6 | 
            +
              s.version = "1.5.0"
         | 
| 7 7 |  | 
| 8 | 
            -
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 9 | 
            -
              s.require_paths = ["lib"]
         | 
| 10 | 
            -
              s.authors = ["Lin Jen-Shin (godfat)"]
         | 
| 11 | 
            -
              s.date = " | 
| 12 | 
            -
              s.description = "Pork -- Simple and clean and modular testing library.\n\nInspired by [Bacon][].\n\n[Bacon]: https://github.com/chneukirchen/bacon"
         | 
| 13 | 
            -
              s.email = ["godfat (XD) godfat.org"]
         | 
| 8 | 
            +
              s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
         | 
| 9 | 
            +
              s.require_paths = ["lib".freeze]
         | 
| 10 | 
            +
              s.authors = ["Lin Jen-Shin (godfat)".freeze]
         | 
| 11 | 
            +
              s.date = "2016-03-10"
         | 
| 12 | 
            +
              s.description = "Pork -- Simple and clean and modular testing library.\n\nInspired by [Bacon][].\n\n[Bacon]: https://github.com/chneukirchen/bacon".freeze
         | 
| 13 | 
            +
              s.email = ["godfat (XD) godfat.org".freeze]
         | 
| 14 14 | 
             
              s.files = [
         | 
| 15 | 
            -
              ".gitignore",
         | 
| 16 | 
            -
              ".gitmodules",
         | 
| 17 | 
            -
              ".travis.yml",
         | 
| 18 | 
            -
              "CHANGES.md",
         | 
| 19 | 
            -
              "Gemfile",
         | 
| 20 | 
            -
              "LICENSE",
         | 
| 21 | 
            -
              "README.md",
         | 
| 22 | 
            -
              "Rakefile",
         | 
| 23 | 
            -
              "TODO.md",
         | 
| 24 | 
            -
              "lib/pork.rb",
         | 
| 25 | 
            -
              "lib/pork/auto.rb",
         | 
| 26 | 
            -
              "lib/pork/context.rb",
         | 
| 27 | 
            -
              "lib/pork/env.rb",
         | 
| 28 | 
            -
              "lib/pork/error.rb",
         | 
| 29 | 
            -
              "lib/pork/executor.rb",
         | 
| 30 | 
            -
              "lib/pork/expect.rb",
         | 
| 31 | 
            -
              "lib/pork/extra/rainbows.rb",
         | 
| 32 | 
            -
              "lib/pork/extra/show_source.rb",
         | 
| 33 | 
            -
              "lib/pork/imp.rb",
         | 
| 34 | 
            -
              "lib/pork/inspect.rb",
         | 
| 35 | 
            -
              "lib/pork/isolate.rb",
         | 
| 36 | 
            -
              "lib/pork/mode/parallel.rb",
         | 
| 37 | 
            -
              "lib/pork/mode/sequential.rb",
         | 
| 38 | 
            -
              "lib/pork/mode/shuffled.rb",
         | 
| 39 | 
            -
              "lib/pork/more.rb",
         | 
| 40 | 
            -
              "lib/pork/more/bottomup_backtrace.rb",
         | 
| 41 | 
            -
              "lib/pork/more/color.rb",
         | 
| 42 | 
            -
              "lib/pork/more/should.rb",
         | 
| 43 | 
            -
              "lib/pork/report.rb",
         | 
| 44 | 
            -
              "lib/pork/report/description.rb",
         | 
| 45 | 
            -
              "lib/pork/report/dot.rb",
         | 
| 46 | 
            -
              "lib/pork/ | 
| 47 | 
            -
              "lib/pork/ | 
| 48 | 
            -
              "lib/pork/ | 
| 49 | 
            -
              "pork. | 
| 50 | 
            -
              " | 
| 51 | 
            -
              "task/ | 
| 52 | 
            -
              " | 
| 53 | 
            -
              "test/ | 
| 54 | 
            -
              "test/ | 
| 55 | 
            -
              "test/ | 
| 56 | 
            -
              "test/ | 
| 57 | 
            -
              "test/ | 
| 58 | 
            -
              "test/ | 
| 59 | 
            -
              "test/ | 
| 60 | 
            -
               | 
| 61 | 
            -
              s. | 
| 62 | 
            -
              s. | 
| 63 | 
            -
              s. | 
| 15 | 
            +
              ".gitignore".freeze,
         | 
| 16 | 
            +
              ".gitmodules".freeze,
         | 
| 17 | 
            +
              ".travis.yml".freeze,
         | 
| 18 | 
            +
              "CHANGES.md".freeze,
         | 
| 19 | 
            +
              "Gemfile".freeze,
         | 
| 20 | 
            +
              "LICENSE".freeze,
         | 
| 21 | 
            +
              "README.md".freeze,
         | 
| 22 | 
            +
              "Rakefile".freeze,
         | 
| 23 | 
            +
              "TODO.md".freeze,
         | 
| 24 | 
            +
              "lib/pork.rb".freeze,
         | 
| 25 | 
            +
              "lib/pork/auto.rb".freeze,
         | 
| 26 | 
            +
              "lib/pork/context.rb".freeze,
         | 
| 27 | 
            +
              "lib/pork/env.rb".freeze,
         | 
| 28 | 
            +
              "lib/pork/error.rb".freeze,
         | 
| 29 | 
            +
              "lib/pork/executor.rb".freeze,
         | 
| 30 | 
            +
              "lib/pork/expect.rb".freeze,
         | 
| 31 | 
            +
              "lib/pork/extra/rainbows.rb".freeze,
         | 
| 32 | 
            +
              "lib/pork/extra/show_source.rb".freeze,
         | 
| 33 | 
            +
              "lib/pork/imp.rb".freeze,
         | 
| 34 | 
            +
              "lib/pork/inspect.rb".freeze,
         | 
| 35 | 
            +
              "lib/pork/isolate.rb".freeze,
         | 
| 36 | 
            +
              "lib/pork/mode/parallel.rb".freeze,
         | 
| 37 | 
            +
              "lib/pork/mode/sequential.rb".freeze,
         | 
| 38 | 
            +
              "lib/pork/mode/shuffled.rb".freeze,
         | 
| 39 | 
            +
              "lib/pork/more.rb".freeze,
         | 
| 40 | 
            +
              "lib/pork/more/bottomup_backtrace.rb".freeze,
         | 
| 41 | 
            +
              "lib/pork/more/color.rb".freeze,
         | 
| 42 | 
            +
              "lib/pork/more/should.rb".freeze,
         | 
| 43 | 
            +
              "lib/pork/report.rb".freeze,
         | 
| 44 | 
            +
              "lib/pork/report/description.rb".freeze,
         | 
| 45 | 
            +
              "lib/pork/report/dot.rb".freeze,
         | 
| 46 | 
            +
              "lib/pork/report/progressbar.rb".freeze,
         | 
| 47 | 
            +
              "lib/pork/stat.rb".freeze,
         | 
| 48 | 
            +
              "lib/pork/test.rb".freeze,
         | 
| 49 | 
            +
              "lib/pork/version.rb".freeze,
         | 
| 50 | 
            +
              "pork.gemspec".freeze,
         | 
| 51 | 
            +
              "task/README.md".freeze,
         | 
| 52 | 
            +
              "task/gemgem.rb".freeze,
         | 
| 53 | 
            +
              "test/test_bacon.rb".freeze,
         | 
| 54 | 
            +
              "test/test_expect.rb".freeze,
         | 
| 55 | 
            +
              "test/test_inspect.rb".freeze,
         | 
| 56 | 
            +
              "test/test_nested.rb".freeze,
         | 
| 57 | 
            +
              "test/test_pork_test.rb".freeze,
         | 
| 58 | 
            +
              "test/test_readme.rb".freeze,
         | 
| 59 | 
            +
              "test/test_should.rb".freeze,
         | 
| 60 | 
            +
              "test/test_stat.rb".freeze]
         | 
| 61 | 
            +
              s.homepage = "https://github.com/godfat/pork".freeze
         | 
| 62 | 
            +
              s.licenses = ["Apache License 2.0".freeze]
         | 
| 63 | 
            +
              s.rubygems_version = "2.6.1".freeze
         | 
| 64 | 
            +
              s.summary = "Pork -- Simple and clean and modular testing library.".freeze
         | 
| 64 65 | 
             
              s.test_files = [
         | 
| 65 | 
            -
              "test/test_bacon.rb",
         | 
| 66 | 
            -
              "test/test_expect.rb",
         | 
| 67 | 
            -
              "test/test_inspect.rb",
         | 
| 68 | 
            -
              "test/test_nested.rb",
         | 
| 69 | 
            -
              "test/test_pork_test.rb",
         | 
| 70 | 
            -
              "test/test_readme.rb",
         | 
| 71 | 
            -
              "test/test_should.rb",
         | 
| 72 | 
            -
              "test/test_stat.rb"]
         | 
| 66 | 
            +
              "test/test_bacon.rb".freeze,
         | 
| 67 | 
            +
              "test/test_expect.rb".freeze,
         | 
| 68 | 
            +
              "test/test_inspect.rb".freeze,
         | 
| 69 | 
            +
              "test/test_nested.rb".freeze,
         | 
| 70 | 
            +
              "test/test_pork_test.rb".freeze,
         | 
| 71 | 
            +
              "test/test_readme.rb".freeze,
         | 
| 72 | 
            +
              "test/test_should.rb".freeze,
         | 
| 73 | 
            +
              "test/test_stat.rb".freeze]
         | 
| 73 74 |  | 
| 74 75 | 
             
              if s.respond_to? :specification_version then
         | 
| 75 76 | 
             
                s.specification_version = 4
         | 
| 76 77 |  | 
| 77 78 | 
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 78 | 
            -
                  s.add_development_dependency(%q<method_source | 
| 79 | 
            +
                  s.add_development_dependency(%q<method_source>.freeze, [">= 0"])
         | 
| 80 | 
            +
                  s.add_development_dependency(%q<ruby-progressbar>.freeze, [">= 0"])
         | 
| 79 81 | 
             
                else
         | 
| 80 | 
            -
                  s.add_dependency(%q<method_source | 
| 82 | 
            +
                  s.add_dependency(%q<method_source>.freeze, [">= 0"])
         | 
| 83 | 
            +
                  s.add_dependency(%q<ruby-progressbar>.freeze, [">= 0"])
         | 
| 81 84 | 
             
                end
         | 
| 82 85 | 
             
              else
         | 
| 83 | 
            -
                s.add_dependency(%q<method_source | 
| 86 | 
            +
                s.add_dependency(%q<method_source>.freeze, [">= 0"])
         | 
| 87 | 
            +
                s.add_dependency(%q<ruby-progressbar>.freeze, [">= 0"])
         | 
| 84 88 | 
             
              end
         | 
| 85 89 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: pork
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Lin Jen-Shin (godfat)
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2016-03-10 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: method_source
         | 
| @@ -24,6 +24,20 @@ dependencies: | |
| 24 24 | 
             
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: ruby-progressbar
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 27 41 | 
             
            description: |-
         | 
| 28 42 | 
             
              Pork -- Simple and clean and modular testing library.
         | 
| 29 43 |  | 
| @@ -67,6 +81,7 @@ files: | |
| 67 81 | 
             
            - lib/pork/report.rb
         | 
| 68 82 | 
             
            - lib/pork/report/description.rb
         | 
| 69 83 | 
             
            - lib/pork/report/dot.rb
         | 
| 84 | 
            +
            - lib/pork/report/progressbar.rb
         | 
| 70 85 | 
             
            - lib/pork/stat.rb
         | 
| 71 86 | 
             
            - lib/pork/test.rb
         | 
| 72 87 | 
             
            - lib/pork/version.rb
         | 
| @@ -101,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 101 116 | 
             
                  version: '0'
         | 
| 102 117 | 
             
            requirements: []
         | 
| 103 118 | 
             
            rubyforge_project: 
         | 
| 104 | 
            -
            rubygems_version: 2. | 
| 119 | 
            +
            rubygems_version: 2.6.1
         | 
| 105 120 | 
             
            signing_key: 
         | 
| 106 121 | 
             
            specification_version: 4
         | 
| 107 122 | 
             
            summary: Pork -- Simple and clean and modular testing library.
         |