tailstrom 0.0.8 → 0.0.9
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/.rspec +2 -0
- data/lib/tailstrom/command/stat.rb +17 -6
- data/lib/tailstrom/counter_collection.rb +4 -0
- data/lib/tailstrom/tail_reader.rb +3 -1
- data/lib/tailstrom/version.rb +1 -1
- data/spec/fixtures/log-01.txt +300 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/stat_command_spec.rb +65 -0
- data/tailstrom.gemspec +2 -0
- metadata +25 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f024c5b10c7a71e02ca1c1555ab122af54b7b5c3
         | 
| 4 | 
            +
              data.tar.gz: 0cfe7ba4da0855fa6bffe474c26d7fd37084da0b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2e6c8d72a007efb913f5202331eb0550970ae96ae227a053cd67853b4b4f5bccbd2164b007f82ab95442029397f87c2a311bd2846aeed4ba20ba7f4ab2b46e15
         | 
| 7 | 
            +
              data.tar.gz: 7e29a3cd6d1de6c322394043d033f9616cde73f292e8e2ccab756febb556f6b7036773e40ea0173e5eaee2bc26ca3eff7e23fb5ebf0b65cb7d81546c7d960a10
         | 
    
        data/.rspec
    ADDED
    
    
| @@ -30,19 +30,30 @@ module Tailstrom | |
| 30 30 | 
             
                    end
         | 
| 31 31 |  | 
| 32 32 | 
             
                    height = terminal_height
         | 
| 33 | 
            -
                     | 
| 33 | 
            +
                    printed_lines_sum = printed_lines = 0
         | 
| 34 34 | 
             
                    begin
         | 
| 35 35 | 
             
                      sleep @options[:interval]
         | 
| 36 36 |  | 
| 37 | 
            -
                       | 
| 37 | 
            +
                      # TODO refactoring
         | 
| 38 | 
            +
                      if printed_lines > 0 && (@counters.size > 1 || @counters.keys != [:nil] && !@counters.empty?)
         | 
| 39 | 
            +
                        @table.puts
         | 
| 40 | 
            +
                        printed_lines += 1
         | 
| 41 | 
            +
                      end
         | 
| 42 | 
            +
                      printed_lines = 0
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                      if (printed_lines_sum %= height) == 0
         | 
| 38 45 | 
             
                        @table.print_header
         | 
| 39 46 | 
             
                      end
         | 
| 40 47 |  | 
| 41 | 
            -
                       | 
| 48 | 
            +
                      if @counters.size == 0
         | 
| 49 | 
            +
                        @counters[:nil].count
         | 
| 50 | 
            +
                      end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                      printed_lines = print_counters
         | 
| 53 | 
            +
                      printed_lines_sum += printed_lines
         | 
| 42 54 |  | 
| 43 55 | 
             
                      @counters.clear
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                    end while !reader.eof?
         | 
| 56 | 
            +
                    end until reader.eof?
         | 
| 46 57 | 
             
                  rescue Interrupt
         | 
| 47 58 | 
             
                    exit 0
         | 
| 48 59 | 
             
                  end
         | 
| @@ -70,7 +81,7 @@ module Tailstrom | |
| 70 81 | 
             
                        end
         | 
| 71 82 | 
             
                        printed_lines += 1
         | 
| 72 83 | 
             
                      end
         | 
| 73 | 
            -
                       | 
| 84 | 
            +
                      printed_lines
         | 
| 74 85 | 
             
                    end
         | 
| 75 86 |  | 
| 76 87 | 
             
                    def sorted_counters
         | 
| @@ -14,16 +14,18 @@ module Tailstrom | |
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| 16 16 | 
             
                def _each_line
         | 
| 17 | 
            +
                  @eof = false
         | 
| 17 18 | 
             
                  @infile.each_line do |line|
         | 
| 18 19 | 
             
                    line.chomp!
         | 
| 19 20 | 
             
                    result = parse_line(line)
         | 
| 20 21 | 
             
                    yield result if result
         | 
| 21 22 | 
             
                  end
         | 
| 23 | 
            +
                  @eof = true
         | 
| 22 24 | 
             
                end
         | 
| 23 25 | 
             
                private :_each_line
         | 
| 24 26 |  | 
| 25 27 | 
             
                def eof?
         | 
| 26 | 
            -
                  @ | 
| 28 | 
            +
                  @eof
         | 
| 27 29 | 
             
                end
         | 
| 28 30 |  | 
| 29 31 | 
             
                def parse_line(line)
         | 
    
        data/lib/tailstrom/version.rb
    CHANGED
    
    
| @@ -0,0 +1,300 @@ | |
| 1 | 
            +
            200	2013-10-08T23:47:47+09:00	367965	/users/884
         | 
| 2 | 
            +
            200	2013-10-08T23:47:47+09:00	145514	/products/568
         | 
| 3 | 
            +
            302	2013-10-08T23:47:47+09:00	922567	/photos/533
         | 
| 4 | 
            +
            302	2013-10-08T23:47:47+09:00	109578	/users/619
         | 
| 5 | 
            +
            200	2013-10-08T23:47:47+09:00	775727	/users/135
         | 
| 6 | 
            +
            200	2013-10-08T23:47:47+09:00	105368	/photos/345
         | 
| 7 | 
            +
            302	2013-10-08T23:47:47+09:00	371481	/photos/634
         | 
| 8 | 
            +
            200	2013-10-08T23:47:47+09:00	849342	/users/475
         | 
| 9 | 
            +
            302	2013-10-08T23:47:47+09:00	814541	/users/817
         | 
| 10 | 
            +
            200	2013-10-08T23:47:47+09:00	651148	/products/967
         | 
| 11 | 
            +
            302	2013-10-08T23:47:48+09:00	971226	/users/282
         | 
| 12 | 
            +
            302	2013-10-08T23:47:48+09:00	142822	/users/353
         | 
| 13 | 
            +
            200	2013-10-08T23:47:48+09:00	473557	/photos/918
         | 
| 14 | 
            +
            200	2013-10-08T23:47:48+09:00	170779	/users/241
         | 
| 15 | 
            +
            200	2013-10-08T23:47:48+09:00	687576	/users/479
         | 
| 16 | 
            +
            302	2013-10-08T23:47:48+09:00	87590	/photos/22
         | 
| 17 | 
            +
            200	2013-10-08T23:47:48+09:00	23315	/photos/17
         | 
| 18 | 
            +
            302	2013-10-08T23:47:48+09:00	246019	/photos/253
         | 
| 19 | 
            +
            302	2013-10-08T23:47:48+09:00	408725	/products/2
         | 
| 20 | 
            +
            302	2013-10-08T23:47:48+09:00	568982	/photos/4
         | 
| 21 | 
            +
            200	2013-10-08T23:47:48+09:00	31984	/photos/954
         | 
| 22 | 
            +
            302	2013-10-08T23:47:48+09:00	800767	/photos/279
         | 
| 23 | 
            +
            200	2013-10-08T23:47:48+09:00	572925	/products/880
         | 
| 24 | 
            +
            200	2013-10-08T23:47:48+09:00	114661	/photos/368
         | 
| 25 | 
            +
            302	2013-10-08T23:47:48+09:00	677477	/products/93
         | 
| 26 | 
            +
            302	2013-10-08T23:47:48+09:00	668407	/users/65
         | 
| 27 | 
            +
            200	2013-10-08T23:47:48+09:00	234679	/products/524
         | 
| 28 | 
            +
            200	2013-10-08T23:47:48+09:00	185193	/products/829
         | 
| 29 | 
            +
            302	2013-10-08T23:47:48+09:00	44334	/users/917
         | 
| 30 | 
            +
            302	2013-10-08T23:47:48+09:00	373057	/users/714
         | 
| 31 | 
            +
            302	2013-10-08T23:47:48+09:00	252605	/photos/514
         | 
| 32 | 
            +
            302	2013-10-08T23:47:49+09:00	27667	/photos/901
         | 
| 33 | 
            +
            302	2013-10-08T23:47:49+09:00	745515	/users/197
         | 
| 34 | 
            +
            302	2013-10-08T23:47:49+09:00	248377	/products/759
         | 
| 35 | 
            +
            302	2013-10-08T23:47:49+09:00	596064	/products/72
         | 
| 36 | 
            +
            302	2013-10-08T23:47:49+09:00	302140	/products/125
         | 
| 37 | 
            +
            302	2013-10-08T23:47:49+09:00	520667	/users/566
         | 
| 38 | 
            +
            200	2013-10-08T23:47:49+09:00	595704	/products/763
         | 
| 39 | 
            +
            302	2013-10-08T23:47:49+09:00	120805	/products/997
         | 
| 40 | 
            +
            200	2013-10-08T23:47:49+09:00	8895	/products/948
         | 
| 41 | 
            +
            302	2013-10-08T23:47:49+09:00	696948	/products/768
         | 
| 42 | 
            +
            302	2013-10-08T23:47:49+09:00	49074	/photos/433
         | 
| 43 | 
            +
            200	2013-10-08T23:47:49+09:00	458330	/users/517
         | 
| 44 | 
            +
            200	2013-10-08T23:47:49+09:00	722002	/photos/630
         | 
| 45 | 
            +
            302	2013-10-08T23:47:49+09:00	644297	/photos/16
         | 
| 46 | 
            +
            302	2013-10-08T23:47:49+09:00	201362	/photos/1
         | 
| 47 | 
            +
            302	2013-10-08T23:47:49+09:00	907402	/users/836
         | 
| 48 | 
            +
            200	2013-10-08T23:47:49+09:00	846845	/photos/267
         | 
| 49 | 
            +
            200	2013-10-08T23:47:49+09:00	13281	/users/107
         | 
| 50 | 
            +
            302	2013-10-08T23:47:50+09:00	929340	/users/644
         | 
| 51 | 
            +
            302	2013-10-08T23:47:50+09:00	109123	/users/829
         | 
| 52 | 
            +
            302	2013-10-08T23:47:50+09:00	54655	/photos/993
         | 
| 53 | 
            +
            302	2013-10-08T23:47:50+09:00	377426	/users/909
         | 
| 54 | 
            +
            200	2013-10-08T23:47:50+09:00	479605	/products/967
         | 
| 55 | 
            +
            302	2013-10-08T23:47:50+09:00	279364	/products/615
         | 
| 56 | 
            +
            200	2013-10-08T23:47:50+09:00	184794	/users/294
         | 
| 57 | 
            +
            200	2013-10-08T23:47:50+09:00	765083	/photos/284
         | 
| 58 | 
            +
            200	2013-10-08T23:47:50+09:00	39573	/products/764
         | 
| 59 | 
            +
            200	2013-10-08T23:47:50+09:00	687502	/users/222
         | 
| 60 | 
            +
            302	2013-10-08T23:47:50+09:00	507056	/photos/606
         | 
| 61 | 
            +
            302	2013-10-08T23:47:50+09:00	239180	/photos/526
         | 
| 62 | 
            +
            200	2013-10-08T23:47:50+09:00	21709	/products/532
         | 
| 63 | 
            +
            200	2013-10-08T23:47:50+09:00	847956	/products/818
         | 
| 64 | 
            +
            302	2013-10-08T23:47:50+09:00	989278	/photos/32
         | 
| 65 | 
            +
            200	2013-10-08T23:47:50+09:00	386431	/users/705
         | 
| 66 | 
            +
            302	2013-10-08T23:47:50+09:00	916618	/users/502
         | 
| 67 | 
            +
            200	2013-10-08T23:47:50+09:00	444928	/photos/804
         | 
| 68 | 
            +
            302	2013-10-08T23:47:51+09:00	172894	/photos/755
         | 
| 69 | 
            +
            200	2013-10-08T23:47:51+09:00	941253	/users/839
         | 
| 70 | 
            +
            200	2013-10-08T23:47:51+09:00	466532	/photos/818
         | 
| 71 | 
            +
            302	2013-10-08T23:47:51+09:00	408522	/photos/306
         | 
| 72 | 
            +
            200	2013-10-08T23:47:51+09:00	171342	/users/858
         | 
| 73 | 
            +
            200	2013-10-08T23:47:51+09:00	712925	/photos/274
         | 
| 74 | 
            +
            200	2013-10-08T23:47:51+09:00	450530	/products/133
         | 
| 75 | 
            +
            302	2013-10-08T23:47:51+09:00	961551	/products/408
         | 
| 76 | 
            +
            200	2013-10-08T23:47:51+09:00	536973	/photos/1
         | 
| 77 | 
            +
            302	2013-10-08T23:47:51+09:00	782408	/products/66
         | 
| 78 | 
            +
            302	2013-10-08T23:47:51+09:00	154003	/users/194
         | 
| 79 | 
            +
            200	2013-10-08T23:47:51+09:00	531490	/products/90
         | 
| 80 | 
            +
            200	2013-10-08T23:47:51+09:00	834083	/users/754
         | 
| 81 | 
            +
            302	2013-10-08T23:47:51+09:00	145754	/users/832
         | 
| 82 | 
            +
            302	2013-10-08T23:47:51+09:00	544932	/users/519
         | 
| 83 | 
            +
            302	2013-10-08T23:47:51+09:00	536619	/users/585
         | 
| 84 | 
            +
            200	2013-10-08T23:47:51+09:00	533501	/products/629
         | 
| 85 | 
            +
            302	2013-10-08T23:47:51+09:00	637705	/photos/982
         | 
| 86 | 
            +
            302	2013-10-08T23:47:51+09:00	915486	/products/274
         | 
| 87 | 
            +
            302	2013-10-08T23:47:52+09:00	547782	/products/350
         | 
| 88 | 
            +
            302	2013-10-08T23:47:52+09:00	195191	/users/467
         | 
| 89 | 
            +
            302	2013-10-08T23:47:52+09:00	5584	/users/435
         | 
| 90 | 
            +
            200	2013-10-08T23:47:52+09:00	729121	/products/446
         | 
| 91 | 
            +
            302	2013-10-08T23:47:52+09:00	369061	/photos/407
         | 
| 92 | 
            +
            302	2013-10-08T23:47:52+09:00	871881	/products/363
         | 
| 93 | 
            +
            200	2013-10-08T23:47:52+09:00	314768	/products/180
         | 
| 94 | 
            +
            302	2013-10-08T23:47:52+09:00	698247	/products/138
         | 
| 95 | 
            +
            302	2013-10-08T23:47:52+09:00	989277	/photos/865
         | 
| 96 | 
            +
            200	2013-10-08T23:47:52+09:00	858482	/products/508
         | 
| 97 | 
            +
            200	2013-10-08T23:47:52+09:00	122179	/products/61
         | 
| 98 | 
            +
            302	2013-10-08T23:47:52+09:00	747057	/photos/398
         | 
| 99 | 
            +
            200	2013-10-08T23:47:52+09:00	171678	/products/701
         | 
| 100 | 
            +
            200	2013-10-08T23:47:52+09:00	310409	/users/580
         | 
| 101 | 
            +
            302	2013-10-08T23:47:52+09:00	935101	/photos/793
         | 
| 102 | 
            +
            200	2013-10-08T23:47:52+09:00	113624	/users/594
         | 
| 103 | 
            +
            200	2013-10-08T23:47:52+09:00	887122	/products/389
         | 
| 104 | 
            +
            302	2013-10-08T23:47:52+09:00	372208	/photos/123
         | 
| 105 | 
            +
            302	2013-10-08T23:47:52+09:00	198323	/photos/944
         | 
| 106 | 
            +
            302	2013-10-08T23:47:52+09:00	344514	/users/232
         | 
| 107 | 
            +
            200	2013-10-08T23:47:52+09:00	23278	/photos/919
         | 
| 108 | 
            +
            200	2013-10-08T23:47:52+09:00	905270	/users/509
         | 
| 109 | 
            +
            302	2013-10-08T23:47:53+09:00	695389	/products/885
         | 
| 110 | 
            +
            302	2013-10-08T23:47:53+09:00	471294	/users/758
         | 
| 111 | 
            +
            200	2013-10-08T23:47:53+09:00	774444	/users/329
         | 
| 112 | 
            +
            200	2013-10-08T23:47:53+09:00	472161	/products/379
         | 
| 113 | 
            +
            200	2013-10-08T23:47:53+09:00	923709	/photos/870
         | 
| 114 | 
            +
            200	2013-10-08T23:47:53+09:00	486107	/users/130
         | 
| 115 | 
            +
            200	2013-10-08T23:47:53+09:00	102953	/products/417
         | 
| 116 | 
            +
            200	2013-10-08T23:47:53+09:00	380058	/users/914
         | 
| 117 | 
            +
            200	2013-10-08T23:47:53+09:00	115048	/photos/744
         | 
| 118 | 
            +
            200	2013-10-08T23:47:53+09:00	488691	/users/378
         | 
| 119 | 
            +
            302	2013-10-08T23:47:53+09:00	675705	/products/359
         | 
| 120 | 
            +
            200	2013-10-08T23:47:53+09:00	54007	/products/957
         | 
| 121 | 
            +
            302	2013-10-08T23:47:53+09:00	106162	/users/692
         | 
| 122 | 
            +
            200	2013-10-08T23:47:53+09:00	117931	/products/687
         | 
| 123 | 
            +
            302	2013-10-08T23:47:53+09:00	21940	/photos/258
         | 
| 124 | 
            +
            200	2013-10-08T23:47:53+09:00	160661	/photos/857
         | 
| 125 | 
            +
            200	2013-10-08T23:47:53+09:00	399325	/products/343
         | 
| 126 | 
            +
            302	2013-10-08T23:47:53+09:00	139548	/products/641
         | 
| 127 | 
            +
            200	2013-10-08T23:47:53+09:00	513296	/users/910
         | 
| 128 | 
            +
            302	2013-10-08T23:47:53+09:00	723173	/photos/166
         | 
| 129 | 
            +
            200	2013-10-08T23:47:53+09:00	163780	/users/174
         | 
| 130 | 
            +
            200	2013-10-08T23:47:53+09:00	133739	/users/628
         | 
| 131 | 
            +
            302	2013-10-08T23:47:53+09:00	849971	/photos/951
         | 
| 132 | 
            +
            302	2013-10-08T23:47:54+09:00	422353	/products/531
         | 
| 133 | 
            +
            200	2013-10-08T23:47:54+09:00	892732	/products/265
         | 
| 134 | 
            +
            200	2013-10-08T23:47:54+09:00	491973	/users/690
         | 
| 135 | 
            +
            200	2013-10-08T23:47:54+09:00	1521	/photos/422
         | 
| 136 | 
            +
            200	2013-10-08T23:47:54+09:00	838679	/users/926
         | 
| 137 | 
            +
            302	2013-10-08T23:47:54+09:00	505926	/photos/690
         | 
| 138 | 
            +
            200	2013-10-08T23:47:54+09:00	143386	/photos/52
         | 
| 139 | 
            +
            200	2013-10-08T23:47:54+09:00	540623	/products/187
         | 
| 140 | 
            +
            302	2013-10-08T23:47:54+09:00	640534	/users/651
         | 
| 141 | 
            +
            302	2013-10-08T23:47:54+09:00	512786	/products/634
         | 
| 142 | 
            +
            302	2013-10-08T23:47:54+09:00	69525	/photos/790
         | 
| 143 | 
            +
            302	2013-10-08T23:47:54+09:00	497028	/photos/907
         | 
| 144 | 
            +
            200	2013-10-08T23:47:54+09:00	344782	/products/2
         | 
| 145 | 
            +
            200	2013-10-08T23:47:54+09:00	531112	/products/416
         | 
| 146 | 
            +
            302	2013-10-08T23:47:54+09:00	801842	/users/164
         | 
| 147 | 
            +
            302	2013-10-08T23:47:54+09:00	403019	/products/454
         | 
| 148 | 
            +
            200	2013-10-08T23:47:54+09:00	517548	/products/746
         | 
| 149 | 
            +
            302	2013-10-08T23:47:54+09:00	567503	/photos/299
         | 
| 150 | 
            +
            200	2013-10-08T23:47:54+09:00	51700	/users/640
         | 
| 151 | 
            +
            302	2013-10-08T23:47:54+09:00	348898	/products/163
         | 
| 152 | 
            +
            302	2013-10-08T23:47:54+09:00	659461	/users/26
         | 
| 153 | 
            +
            302	2013-10-08T23:47:54+09:00	522102	/photos/475
         | 
| 154 | 
            +
            200	2013-10-08T23:47:55+09:00	158444	/photos/749
         | 
| 155 | 
            +
            200	2013-10-08T23:47:55+09:00	881425	/products/22
         | 
| 156 | 
            +
            302	2013-10-08T23:47:55+09:00	729954	/products/584
         | 
| 157 | 
            +
            200	2013-10-08T23:47:55+09:00	282045	/products/613
         | 
| 158 | 
            +
            200	2013-10-08T23:47:55+09:00	604750	/products/703
         | 
| 159 | 
            +
            200	2013-10-08T23:47:55+09:00	240106	/products/258
         | 
| 160 | 
            +
            200	2013-10-08T23:47:55+09:00	509673	/users/116
         | 
| 161 | 
            +
            302	2013-10-08T23:47:55+09:00	995595	/products/894
         | 
| 162 | 
            +
            200	2013-10-08T23:47:55+09:00	793247	/users/45
         | 
| 163 | 
            +
            200	2013-10-08T23:47:55+09:00	169298	/products/500
         | 
| 164 | 
            +
            302	2013-10-08T23:47:55+09:00	501141	/photos/604
         | 
| 165 | 
            +
            200	2013-10-08T23:47:55+09:00	794169	/photos/344
         | 
| 166 | 
            +
            302	2013-10-08T23:47:55+09:00	140207	/photos/657
         | 
| 167 | 
            +
            302	2013-10-08T23:47:55+09:00	67060	/photos/896
         | 
| 168 | 
            +
            302	2013-10-08T23:47:55+09:00	759797	/products/950
         | 
| 169 | 
            +
            200	2013-10-08T23:47:55+09:00	158753	/users/62
         | 
| 170 | 
            +
            200	2013-10-08T23:47:55+09:00	209524	/users/849
         | 
| 171 | 
            +
            302	2013-10-08T23:47:55+09:00	354059	/users/334
         | 
| 172 | 
            +
            302	2013-10-08T23:47:55+09:00	93982	/photos/138
         | 
| 173 | 
            +
            302	2013-10-08T23:47:55+09:00	640449	/products/688
         | 
| 174 | 
            +
            302	2013-10-08T23:47:55+09:00	539761	/photos/338
         | 
| 175 | 
            +
            302	2013-10-08T23:47:55+09:00	139960	/photos/930
         | 
| 176 | 
            +
            302	2013-10-08T23:47:56+09:00	634116	/photos/555
         | 
| 177 | 
            +
            302	2013-10-08T23:47:56+09:00	335772	/photos/29
         | 
| 178 | 
            +
            302	2013-10-08T23:47:56+09:00	528427	/users/182
         | 
| 179 | 
            +
            302	2013-10-08T23:47:56+09:00	444395	/products/61
         | 
| 180 | 
            +
            302	2013-10-08T23:47:56+09:00	778869	/products/871
         | 
| 181 | 
            +
            200	2013-10-08T23:47:56+09:00	888564	/products/497
         | 
| 182 | 
            +
            200	2013-10-08T23:47:56+09:00	902631	/users/971
         | 
| 183 | 
            +
            302	2013-10-08T23:47:56+09:00	388330	/products/120
         | 
| 184 | 
            +
            302	2013-10-08T23:47:56+09:00	484587	/photos/921
         | 
| 185 | 
            +
            302	2013-10-08T23:47:56+09:00	540335	/photos/124
         | 
| 186 | 
            +
            302	2013-10-08T23:47:56+09:00	812264	/products/810
         | 
| 187 | 
            +
            302	2013-10-08T23:47:56+09:00	108142	/users/24
         | 
| 188 | 
            +
            200	2013-10-08T23:47:56+09:00	958131	/products/779
         | 
| 189 | 
            +
            302	2013-10-08T23:47:56+09:00	427081	/users/235
         | 
| 190 | 
            +
            200	2013-10-08T23:47:56+09:00	393762	/products/553
         | 
| 191 | 
            +
            200	2013-10-08T23:47:56+09:00	287979	/products/429
         | 
| 192 | 
            +
            200	2013-10-08T23:47:56+09:00	658855	/photos/450
         | 
| 193 | 
            +
            200	2013-10-08T23:47:56+09:00	766949	/users/209
         | 
| 194 | 
            +
            302	2013-10-08T23:47:56+09:00	918697	/products/242
         | 
| 195 | 
            +
            200	2013-10-08T23:47:56+09:00	619620	/products/478
         | 
| 196 | 
            +
            200	2013-10-08T23:47:57+09:00	891609	/products/885
         | 
| 197 | 
            +
            302	2013-10-08T23:47:57+09:00	814297	/users/131
         | 
| 198 | 
            +
            302	2013-10-08T23:47:57+09:00	386535	/photos/960
         | 
| 199 | 
            +
            302	2013-10-08T23:47:57+09:00	429773	/users/409
         | 
| 200 | 
            +
            200	2013-10-08T23:47:57+09:00	231723	/products/65
         | 
| 201 | 
            +
            200	2013-10-08T23:47:57+09:00	757016	/users/415
         | 
| 202 | 
            +
            302	2013-10-08T23:47:57+09:00	786988	/photos/208
         | 
| 203 | 
            +
            200	2013-10-08T23:47:57+09:00	642106	/users/525
         | 
| 204 | 
            +
            200	2013-10-08T23:47:57+09:00	447364	/photos/708
         | 
| 205 | 
            +
            302	2013-10-08T23:47:57+09:00	98258	/users/397
         | 
| 206 | 
            +
            302	2013-10-08T23:47:57+09:00	2524	/products/501
         | 
| 207 | 
            +
            302	2013-10-08T23:47:57+09:00	531634	/users/798
         | 
| 208 | 
            +
            200	2013-10-08T23:47:57+09:00	927668	/products/54
         | 
| 209 | 
            +
            200	2013-10-08T23:47:57+09:00	600614	/users/891
         | 
| 210 | 
            +
            302	2013-10-08T23:47:57+09:00	322459	/products/114
         | 
| 211 | 
            +
            302	2013-10-08T23:47:57+09:00	744892	/products/683
         | 
| 212 | 
            +
            302	2013-10-08T23:47:57+09:00	142443	/products/17
         | 
| 213 | 
            +
            302	2013-10-08T23:47:57+09:00	954268	/photos/65
         | 
| 214 | 
            +
            302	2013-10-08T23:47:57+09:00	66996	/photos/243
         | 
| 215 | 
            +
            200	2013-10-08T23:47:57+09:00	547941	/photos/873
         | 
| 216 | 
            +
            302	2013-10-08T23:47:57+09:00	96702	/products/441
         | 
| 217 | 
            +
            302	2013-10-08T23:47:57+09:00	776566	/products/191
         | 
| 218 | 
            +
            200	2013-10-08T23:47:57+09:00	770681	/products/526
         | 
| 219 | 
            +
            302	2013-10-08T23:47:58+09:00	645689	/products/642
         | 
| 220 | 
            +
            200	2013-10-08T23:47:58+09:00	552888	/products/612
         | 
| 221 | 
            +
            302	2013-10-08T23:47:58+09:00	410965	/products/67
         | 
| 222 | 
            +
            302	2013-10-08T23:47:58+09:00	175747	/products/875
         | 
| 223 | 
            +
            200	2013-10-08T23:47:58+09:00	32266	/products/349
         | 
| 224 | 
            +
            302	2013-10-08T23:47:58+09:00	841370	/users/805
         | 
| 225 | 
            +
            302	2013-10-08T23:47:58+09:00	165884	/products/69
         | 
| 226 | 
            +
            200	2013-10-08T23:47:58+09:00	698479	/products/842
         | 
| 227 | 
            +
            200	2013-10-08T23:47:58+09:00	767333	/products/482
         | 
| 228 | 
            +
            302	2013-10-08T23:47:58+09:00	67037	/photos/178
         | 
| 229 | 
            +
            200	2013-10-08T23:47:58+09:00	675087	/users/513
         | 
| 230 | 
            +
            302	2013-10-08T23:47:58+09:00	422981	/users/230
         | 
| 231 | 
            +
            302	2013-10-08T23:47:58+09:00	359058	/users/687
         | 
| 232 | 
            +
            200	2013-10-08T23:47:58+09:00	910472	/users/53
         | 
| 233 | 
            +
            302	2013-10-08T23:47:58+09:00	204312	/products/826
         | 
| 234 | 
            +
            200	2013-10-08T23:47:58+09:00	921677	/products/266
         | 
| 235 | 
            +
            302	2013-10-08T23:47:58+09:00	716206	/photos/639
         | 
| 236 | 
            +
            200	2013-10-08T23:47:58+09:00	595879	/users/720
         | 
| 237 | 
            +
            302	2013-10-08T23:47:58+09:00	97610	/users/595
         | 
| 238 | 
            +
            302	2013-10-08T23:47:58+09:00	483691	/products/608
         | 
| 239 | 
            +
            302	2013-10-08T23:47:58+09:00	51706	/photos/86
         | 
| 240 | 
            +
            200	2013-10-08T23:47:58+09:00	937835	/users/510
         | 
| 241 | 
            +
            302	2013-10-08T23:47:59+09:00	615969	/photos/783
         | 
| 242 | 
            +
            200	2013-10-08T23:47:59+09:00	213364	/users/285
         | 
| 243 | 
            +
            200	2013-10-08T23:47:59+09:00	19813	/photos/30
         | 
| 244 | 
            +
            200	2013-10-08T23:47:59+09:00	224856	/products/406
         | 
| 245 | 
            +
            200	2013-10-08T23:47:59+09:00	539478	/photos/950
         | 
| 246 | 
            +
            302	2013-10-08T23:47:59+09:00	799167	/products/479
         | 
| 247 | 
            +
            302	2013-10-08T23:47:59+09:00	299662	/photos/788
         | 
| 248 | 
            +
            302	2013-10-08T23:47:59+09:00	905674	/products/284
         | 
| 249 | 
            +
            302	2013-10-08T23:47:59+09:00	75398	/products/907
         | 
| 250 | 
            +
            200	2013-10-08T23:47:59+09:00	12371	/photos/907
         | 
| 251 | 
            +
            200	2013-10-08T23:47:59+09:00	784379	/photos/842
         | 
| 252 | 
            +
            200	2013-10-08T23:47:59+09:00	677654	/products/209
         | 
| 253 | 
            +
            302	2013-10-08T23:47:59+09:00	587495	/photos/10
         | 
| 254 | 
            +
            302	2013-10-08T23:47:59+09:00	683331	/photos/874
         | 
| 255 | 
            +
            302	2013-10-08T23:47:59+09:00	734775	/users/438
         | 
| 256 | 
            +
            302	2013-10-08T23:47:59+09:00	152981	/photos/748
         | 
| 257 | 
            +
            200	2013-10-08T23:47:59+09:00	264507	/photos/51
         | 
| 258 | 
            +
            302	2013-10-08T23:47:59+09:00	260608	/users/491
         | 
| 259 | 
            +
            200	2013-10-08T23:47:59+09:00	452379	/users/886
         | 
| 260 | 
            +
            302	2013-10-08T23:47:59+09:00	195431	/products/570
         | 
| 261 | 
            +
            302	2013-10-08T23:47:59+09:00	38139	/users/899
         | 
| 262 | 
            +
            302	2013-10-08T23:47:59+09:00	467231	/photos/953
         | 
| 263 | 
            +
            302	2013-10-08T23:47:59+09:00	413143	/photos/583
         | 
| 264 | 
            +
            302	2013-10-08T23:47:59+09:00	414625	/users/265
         | 
| 265 | 
            +
            200	2013-10-08T23:47:59+09:00	897162	/products/249
         | 
| 266 | 
            +
            302	2013-10-08T23:47:59+09:00	497282	/products/99
         | 
| 267 | 
            +
            200	2013-10-08T23:47:59+09:00	214617	/photos/219
         | 
| 268 | 
            +
            200	2013-10-08T23:48:00+09:00	28563	/users/298
         | 
| 269 | 
            +
            302	2013-10-08T23:48:00+09:00	578771	/products/501
         | 
| 270 | 
            +
            200	2013-10-08T23:48:00+09:00	231471	/photos/200
         | 
| 271 | 
            +
            200	2013-10-08T23:48:00+09:00	332243	/users/467
         | 
| 272 | 
            +
            302	2013-10-08T23:48:00+09:00	57673	/photos/732
         | 
| 273 | 
            +
            200	2013-10-08T23:48:00+09:00	491276	/photos/552
         | 
| 274 | 
            +
            302	2013-10-08T23:48:00+09:00	175372	/photos/89
         | 
| 275 | 
            +
            200	2013-10-08T23:48:00+09:00	648595	/users/554
         | 
| 276 | 
            +
            302	2013-10-08T23:48:00+09:00	200284	/photos/462
         | 
| 277 | 
            +
            302	2013-10-08T23:48:00+09:00	542167	/photos/489
         | 
| 278 | 
            +
            302	2013-10-08T23:48:00+09:00	184510	/products/863
         | 
| 279 | 
            +
            302	2013-10-08T23:48:00+09:00	883594	/users/868
         | 
| 280 | 
            +
            200	2013-10-08T23:48:00+09:00	446742	/photos/861
         | 
| 281 | 
            +
            200	2013-10-08T23:48:00+09:00	867804	/photos/305
         | 
| 282 | 
            +
            200	2013-10-08T23:48:00+09:00	102010	/photos/624
         | 
| 283 | 
            +
            302	2013-10-08T23:48:00+09:00	918130	/photos/560
         | 
| 284 | 
            +
            200	2013-10-08T23:48:00+09:00	632170	/users/485
         | 
| 285 | 
            +
            302	2013-10-08T23:48:00+09:00	724024	/users/285
         | 
| 286 | 
            +
            200	2013-10-08T23:48:00+09:00	684498	/photos/571
         | 
| 287 | 
            +
            302	2013-10-08T23:48:00+09:00	62036	/photos/396
         | 
| 288 | 
            +
            200	2013-10-08T23:48:00+09:00	957177	/users/9
         | 
| 289 | 
            +
            302	2013-10-08T23:48:00+09:00	539157	/photos/725
         | 
| 290 | 
            +
            200	2013-10-08T23:48:01+09:00	821039	/products/493
         | 
| 291 | 
            +
            302	2013-10-08T23:48:01+09:00	50567	/photos/661
         | 
| 292 | 
            +
            302	2013-10-08T23:48:01+09:00	441058	/products/94
         | 
| 293 | 
            +
            200	2013-10-08T23:48:01+09:00	47379	/users/792
         | 
| 294 | 
            +
            302	2013-10-08T23:48:01+09:00	382028	/photos/116
         | 
| 295 | 
            +
            200	2013-10-08T23:48:01+09:00	185526	/photos/591
         | 
| 296 | 
            +
            200	2013-10-08T23:48:01+09:00	655455	/photos/64
         | 
| 297 | 
            +
            200	2013-10-08T23:48:01+09:00	702888	/users/435
         | 
| 298 | 
            +
            302	2013-10-08T23:48:01+09:00	888430	/products/217
         | 
| 299 | 
            +
            200	2013-10-08T23:48:01+09:00	764924	/photos/963
         | 
| 300 | 
            +
            302	2013-10-08T23:48:01+09:00	196476	/users/966
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # This file was generated by the `rspec --init` command. Conventionally, all
         | 
| 2 | 
            +
            # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
         | 
| 3 | 
            +
            # Require this file using `require "spec_helper"` to ensure that it is only
         | 
| 4 | 
            +
            # loaded once.
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
         | 
| 7 | 
            +
            RSpec.configure do |config|
         | 
| 8 | 
            +
              config.treat_symbols_as_metadata_keys_with_true_values = true
         | 
| 9 | 
            +
              config.run_all_when_everything_filtered = true
         | 
| 10 | 
            +
              config.filter_run :focus
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              # Run specs in random order to surface order dependencies. If you find an
         | 
| 13 | 
            +
              # order dependency and want to debug it, you can fix the order by providing
         | 
| 14 | 
            +
              # the seed, which is printed after each run.
         | 
| 15 | 
            +
              #     --seed 1234
         | 
| 16 | 
            +
              config.order = 'random'
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,65 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe 'stat' do
         | 
| 4 | 
            +
              def run(options)
         | 
| 5 | 
            +
                `bin/tailstrom #{options} spec/fixtures/log-01.txt`
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              it { expect(run '-f2').to eq <<-END }
         | 
| 9 | 
            +
            ---------------------------------------------------
         | 
| 10 | 
            +
              count        min        max        avg key       
         | 
| 11 | 
            +
            ---------------------------------------------------
         | 
| 12 | 
            +
                300      1,521    995,595    468,164 -         
         | 
| 13 | 
            +
            END
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              it { expect(run '-f2 -k0').to eq <<-END }
         | 
| 16 | 
            +
            ---------------------------------------------------
         | 
| 17 | 
            +
              count        min        max        avg key       
         | 
| 18 | 
            +
            ---------------------------------------------------
         | 
| 19 | 
            +
                161      2,524    995,595    460,966 302       
         | 
| 20 | 
            +
                139      1,521    958,131    476,502 200       
         | 
| 21 | 
            +
            END
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              it { expect(run '-f2 -k3 --map key=key[/[a-z]+/]').to eq <<-END }
         | 
| 24 | 
            +
            ---------------------------------------------------
         | 
| 25 | 
            +
              count        min        max        avg key       
         | 
| 26 | 
            +
            ---------------------------------------------------
         | 
| 27 | 
            +
                104      2,524    995,595    505,832 products  
         | 
| 28 | 
            +
                 93      5,584    971,226    485,544 users     
         | 
| 29 | 
            +
                103      1,521    989,278    414,438 photos    
         | 
| 30 | 
            +
            END
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              it { expect(run '-f2 -k3 --map key=key[/[a-z]+/] --in-filter key=~/products/').to eq <<-END }
         | 
| 33 | 
            +
            ---------------------------------------------------
         | 
| 34 | 
            +
              count        min        max        avg key       
         | 
| 35 | 
            +
            ---------------------------------------------------
         | 
| 36 | 
            +
                104      2,524    995,595    505,832 products  
         | 
| 37 | 
            +
            END
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              it { expect(run '-f2 -k3 --map key=key[/[a-z]+/] --sort count').to eq <<-END }
         | 
| 40 | 
            +
            ---------------------------------------------------
         | 
| 41 | 
            +
              count        min        max        avg key       
         | 
| 42 | 
            +
            ---------------------------------------------------
         | 
| 43 | 
            +
                104      2,524    995,595    505,832 products  
         | 
| 44 | 
            +
                103      1,521    989,278    414,438 photos    
         | 
| 45 | 
            +
                 93      5,584    971,226    485,544 users     
         | 
| 46 | 
            +
            END
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              it { expect(run '-f2 -k3 --map key=key[/[a-z]+/] --sort count --order asc').to eq <<-END }
         | 
| 49 | 
            +
            ---------------------------------------------------
         | 
| 50 | 
            +
              count        min        max        avg key       
         | 
| 51 | 
            +
            ---------------------------------------------------
         | 
| 52 | 
            +
                 93      5,584    971,226    485,544 users     
         | 
| 53 | 
            +
                103      1,521    989,278    414,438 photos    
         | 
| 54 | 
            +
                104      2,524    995,595    505,832 products  
         | 
| 55 | 
            +
            END
         | 
| 56 | 
            +
             | 
| 57 | 
            +
              it { expect(run '-f2 -k3 --map key=key[/[a-z]+/] --out-filter "min>2000"').to eq <<-END }
         | 
| 58 | 
            +
            ---------------------------------------------------
         | 
| 59 | 
            +
              count        min        max        avg key       
         | 
| 60 | 
            +
            ---------------------------------------------------
         | 
| 61 | 
            +
                104      2,524    995,595    505,832 products  
         | 
| 62 | 
            +
                 93      5,584    971,226    485,544 users     
         | 
| 63 | 
            +
            END
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            end
         | 
    
        data/tailstrom.gemspec
    CHANGED
    
    | @@ -17,4 +17,6 @@ Gem::Specification.new do |spec| | |
| 17 17 | 
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              spec.add_development_dependency 'rspec', '~> 2.0'
         | 
| 20 22 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tailstrom
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Issei Naruta
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013-10- | 
| 12 | 
            -
            dependencies: | 
| 11 | 
            +
            date: 2013-10-08 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rspec
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ~>
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '2.0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ~>
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '2.0'
         | 
| 13 27 | 
             
            description: tailstrom is an utility for "tail -f"
         | 
| 14 28 | 
             
            email:
         | 
| 15 29 | 
             
            - naruta@cookpad.com
         | 
| @@ -19,6 +33,7 @@ extensions: [] | |
| 19 33 | 
             
            extra_rdoc_files: []
         | 
| 20 34 | 
             
            files:
         | 
| 21 35 | 
             
            - .gitignore
         | 
| 36 | 
            +
            - .rspec
         | 
| 22 37 | 
             
            - Gemfile
         | 
| 23 38 | 
             
            - LICENSE.txt
         | 
| 24 39 | 
             
            - README.md
         | 
| @@ -35,6 +50,9 @@ files: | |
| 35 50 | 
             
            - lib/tailstrom/table.rb
         | 
| 36 51 | 
             
            - lib/tailstrom/tail_reader.rb
         | 
| 37 52 | 
             
            - lib/tailstrom/version.rb
         | 
| 53 | 
            +
            - spec/fixtures/log-01.txt
         | 
| 54 | 
            +
            - spec/spec_helper.rb
         | 
| 55 | 
            +
            - spec/stat_command_spec.rb
         | 
| 38 56 | 
             
            - tailstrom.gemspec
         | 
| 39 57 | 
             
            homepage: ''
         | 
| 40 58 | 
             
            licenses:
         | 
| @@ -60,4 +78,7 @@ rubygems_version: 2.0.3 | |
| 60 78 | 
             
            signing_key: 
         | 
| 61 79 | 
             
            specification_version: 4
         | 
| 62 80 | 
             
            summary: A utility for "tail -f"
         | 
| 63 | 
            -
            test_files: | 
| 81 | 
            +
            test_files:
         | 
| 82 | 
            +
            - spec/fixtures/log-01.txt
         | 
| 83 | 
            +
            - spec/spec_helper.rb
         | 
| 84 | 
            +
            - spec/stat_command_spec.rb
         |