quicky 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
 - data/README.md +51 -0
 - data/lib/quicky/timer.rb +14 -0
 - data/lib/quicky/version.rb +1 -1
 - data/test/test_basics.rb +8 -4
 - metadata +2 -2
 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Quicky if for easily timing chunks of code.
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            ## Getting Started
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                gem install quicky
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ## Timing
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ### Time anything
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 12 
     | 
    
         
            +
            quicky = Quicky::Timer.new
         
     | 
| 
      
 13 
     | 
    
         
            +
            quicky.time(:test1) do
         
     | 
| 
      
 14 
     | 
    
         
            +
              sleep 2
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
      
 16 
     | 
    
         
            +
            # Print average duration for all :test1 timings
         
     | 
| 
      
 17 
     | 
    
         
            +
            p quicky.results(:test1).duration
         
     | 
| 
      
 18 
     | 
    
         
            +
            # Print total duration for all :test1 timings
         
     | 
| 
      
 19 
     | 
    
         
            +
            p quicky.results(:test1).total_duration
         
     | 
| 
      
 20 
     | 
    
         
            +
            # Print longest duration for all :test1 timings
         
     | 
| 
      
 21 
     | 
    
         
            +
            p quicky.results(:test1).max_duration
         
     | 
| 
      
 22 
     | 
    
         
            +
            # Print shortest duration for all :test1 timings
         
     | 
| 
      
 23 
     | 
    
         
            +
            p quicky.results(:test1).min_duration
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            ### Time in a loop
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            Good for performance testing.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 30 
     | 
    
         
            +
            quicky = Quicky::Timer.new
         
     | 
| 
      
 31 
     | 
    
         
            +
            # This will loop 10 times
         
     | 
| 
      
 32 
     | 
    
         
            +
            quicky.loop(:test2, 10) do |i|
         
     | 
| 
      
 33 
     | 
    
         
            +
              puts 'sleeping'
         
     | 
| 
      
 34 
     | 
    
         
            +
              sleep 1
         
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
      
 36 
     | 
    
         
            +
            ```
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            Or loop for X seconds:
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 41 
     | 
    
         
            +
            # This will loop for 10 seconds
         
     | 
| 
      
 42 
     | 
    
         
            +
            quicky.loop_for(:test3, 10) do |i|
         
     | 
| 
      
 43 
     | 
    
         
            +
              puts 'sleeping'
         
     | 
| 
      
 44 
     | 
    
         
            +
              sleep 0.5
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
            ```
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            #### Looping Options
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            - warmup: X -- will throw out the first X results.
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
    
        data/lib/quicky/timer.rb
    CHANGED
    
    | 
         @@ -52,16 +52,22 @@ module Quicky 
     | 
|
| 
       52 
52 
     | 
    
         
             
              end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
       54 
54 
     | 
    
         
             
              class TimeCollector
         
     | 
| 
      
 55 
     | 
    
         
            +
                INT_MAX = ( (2 ** (32 - 2)) - 1 )
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
       55 
57 
     | 
    
         
             
                attr_accessor :name
         
     | 
| 
       56 
58 
     | 
    
         
             
                def initialize(name)
         
     | 
| 
       57 
59 
     | 
    
         
             
                  @name = name
         
     | 
| 
       58 
60 
     | 
    
         
             
                  @collector = []
         
     | 
| 
       59 
61 
     | 
    
         
             
                  @total_duration = 0.0
         
     | 
| 
      
 62 
     | 
    
         
            +
                  @max_duration = 0.0
         
     | 
| 
      
 63 
     | 
    
         
            +
                  @min_duration = INT_MAX
         
     | 
| 
       60 
64 
     | 
    
         
             
                end
         
     | 
| 
       61 
65 
     | 
    
         | 
| 
       62 
66 
     | 
    
         
             
                def <<(val)
         
     | 
| 
       63 
67 
     | 
    
         
             
                  # pull out duration for totals
         
     | 
| 
       64 
68 
     | 
    
         
             
                  @total_duration += val.duration
         
     | 
| 
      
 69 
     | 
    
         
            +
                  @max_duration = val.duration if val.duration > @max_duration
         
     | 
| 
      
 70 
     | 
    
         
            +
                  @min_duration = val.duration if val.duration < @min_duration
         
     | 
| 
       65 
71 
     | 
    
         
             
                  @collector << val
         
     | 
| 
       66 
72 
     | 
    
         
             
                end
         
     | 
| 
       67 
73 
     | 
    
         | 
| 
         @@ -73,6 +79,14 @@ module Quicky 
     | 
|
| 
       73 
79 
     | 
    
         
             
                  @total_duration
         
     | 
| 
       74 
80 
     | 
    
         
             
                end
         
     | 
| 
       75 
81 
     | 
    
         | 
| 
      
 82 
     | 
    
         
            +
                def max_duration
         
     | 
| 
      
 83 
     | 
    
         
            +
                  @max_duration
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                def min_duration
         
     | 
| 
      
 87 
     | 
    
         
            +
                  @min_duration
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
       76 
90 
     | 
    
         
             
                def count
         
     | 
| 
       77 
91 
     | 
    
         
             
                  @collector.size
         
     | 
| 
       78 
92 
     | 
    
         
             
                end
         
     | 
    
        data/lib/quicky/version.rb
    CHANGED
    
    
    
        data/test/test_basics.rb
    CHANGED
    
    | 
         @@ -33,11 +33,15 @@ class TestBasics < TestBase 
     | 
|
| 
       33 
33 
     | 
    
         
             
                  puts 'sleeping'
         
     | 
| 
       34 
34 
     | 
    
         
             
                  sleep 0.5
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
       37 
     | 
    
         
            -
                p  
     | 
| 
      
 36 
     | 
    
         
            +
                result = quicky.results(:test3)
         
     | 
| 
      
 37 
     | 
    
         
            +
                p result.inspect
         
     | 
| 
      
 38 
     | 
    
         
            +
                p result.duration
         
     | 
| 
       38 
39 
     | 
    
         
             
                p quicky.results.count
         
     | 
| 
       39 
     | 
    
         
            -
                assert  
     | 
| 
       40 
     | 
    
         
            -
                assert  
     | 
| 
      
 40 
     | 
    
         
            +
                assert result.duration >= 0.5 && result.duration < 1
         
     | 
| 
      
 41 
     | 
    
         
            +
                assert result.total_duration >= 5
         
     | 
| 
      
 42 
     | 
    
         
            +
                assert result.min_duration < 0.55 && result.min_duration > 0.1
         
     | 
| 
      
 43 
     | 
    
         
            +
                assert result.max_duration > 0.5 && result.max_duration < 0.7
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       41 
45 
     | 
    
         | 
| 
       42 
46 
     | 
    
         
             
              end
         
     | 
| 
       43 
47 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: quicky
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-08-09 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: test-unit
         
     |