request-log-analyzer 1.2.6 → 1.2.7

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.
@@ -0,0 +1,46 @@
1
+ # 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
2
+ # 125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
3
+ # 10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
4
+ # 10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
5
+ # 69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
6
+
7
+ module RequestLogAnalyzer::FileFormat
8
+
9
+ class Apache < Base
10
+
11
+ # 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
12
+ line_definition :access do |line|
13
+ line.header = true
14
+ line.footer = true
15
+ line.regexp = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[([^\]]{26})\] "([A-Z]+) ([^\s]+) HTTP\/(\d+(?:\.\d+)*)" (\d+) \d+ "-" "([^"]+)"/
16
+ line.captures << { :name => :ip_address, :type => :string } \
17
+ << { :name => :timestamp, :type => :timestamp } \
18
+ << { :name => :method, :type => :string } \
19
+ << { :name => :path, :type => :string } \
20
+ << { :name => :http_version, :type => :string } \
21
+ << { :name => :status, :type => :integer } \
22
+ << { :name => :user_agent, :type => :string }
23
+ end
24
+
25
+
26
+ report do |analyze|
27
+ analyze.timespan :line_type => :access
28
+ analyze.hourly_spread :line_type => :access
29
+ analyze.frequency :category => :method, :amount => 20, :title => "HTTP methods frequency"
30
+ analyze.frequency :category => :path, :amount => 20, :title => "Most popular paths"
31
+ end
32
+
33
+ # Define a custom Request class for the Apache file format to speed up timestamp handling.
34
+ class Request < RequestLogAnalyzer::Request
35
+
36
+ MONTHS = {'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06',
37
+ 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12' }
38
+
39
+ # Do not use DateTime.parse
40
+ def convert_timestamp(value, definition)
41
+ d = /^(\d{2})\/(\w{3})\/(\d{4}):(\d{2}):(\d{2}):(\d{2})/.match(value).captures
42
+ "#{d[2]}#{MONTHS[d[1]]}#{d[0]}#{d[3]}#{d[4]}#{d[5]}".to_i
43
+ end
44
+ end
45
+ end
46
+ end
@@ -125,13 +125,13 @@ module RequestLogAnalyzer::Source
125
125
  def parse_io(io, options = {}, &block) # :yields: request
126
126
 
127
127
  @current_io = io
128
+ lineno = 0
128
129
  @current_io.each_line do |line|
129
-
130
130
  @progress_handler.call(:progress, @current_io.pos) if @progress_handler && @current_io.kind_of?(File)
131
131
 
132
132
  request_data = nil
133
133
  file_format.line_definitions.each do |line_type, definition|
134
- request_data = definition.matches(line, @current_io.lineno, self)
134
+ request_data = definition.matches(line, lineno, self)
135
135
  break if request_data
136
136
  end
137
137
 
@@ -139,6 +139,7 @@ module RequestLogAnalyzer::Source
139
139
  @parsed_lines += 1
140
140
  update_current_request(request_data, &block)
141
141
  end
142
+ lineno += 1
142
143
  end
143
144
 
144
145
  warn(:unfinished_request_on_eof, "End of file reached, but last request was not completed!") unless @current_request.nil?
@@ -197,7 +198,7 @@ module RequestLogAnalyzer::Source
197
198
  # <tt>request_data</tt>:: A hash of data that was parsed from the last line.
198
199
  def update_current_request(request_data, &block) # :yields: request
199
200
  if header_line?(request_data)
200
- unless @current_request.nil?
201
+ if @current_request
201
202
  case options[:parse_strategy]
202
203
  when 'assume-correct'
203
204
  handle_request(@current_request, &block)
@@ -207,15 +208,13 @@ module RequestLogAnalyzer::Source
207
208
  warn(:unclosed_request, "Encountered header line (#{request_data[:line_definition].name.inspect}), but previous request was not closed!")
208
209
  @current_request = nil # remove all data that was parsed, skip next request as well.
209
210
  end
210
- if footer_line?(request_data)
211
- handle_request(@current_request, &block) # yield @current_request
212
- @current_request = nil
213
- end
211
+ elsif footer_line?(request_data)
212
+ handle_request(@file_format.request(request_data), &block)
214
213
  else
215
- @current_request = @file_format.request(request_data)
214
+ @current_request = @file_format.request(request_data)
216
215
  end
217
216
  else
218
- unless @current_request.nil?
217
+ if @current_request
219
218
  @current_request << request_data
220
219
  if footer_line?(request_data)
221
220
  handle_request(@current_request, &block) # yield @current_request
@@ -11,7 +11,7 @@ module RequestLogAnalyzer
11
11
 
12
12
  # The current version of request-log-analyzer.
13
13
  # This will be diplayed in output reports etc.
14
- VERSION = "1.2.6"
14
+ VERSION = "1.2.7"
15
15
 
16
16
  # Loads constants in the RequestLogAnalyzer namespace using self.load_default_class_file(base, const)
17
17
  # <tt>const</tt>:: The constant that is not yet loaded in the RequestLogAnalyzer namespace. This should be passed as a string or symbol.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'request-log-analyzer'
3
- s.version = "1.2.6"
3
+ s.version = "1.2.7"
4
4
  s.date = "2009-09-02"
5
5
 
6
6
  s.rubyforge_project = 'r-l-a'
@@ -31,6 +31,6 @@ Gem::Specification.new do |s|
31
31
  s.email = ['willem@railsdoctors.com', 'bart@railsdoctors.com']
32
32
  s.homepage = 'http://railsdoctors.com'
33
33
 
34
- s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb lib/request_log_analyzer.rb Rakefile spec/spec_helper.rb spec/unit/filter/filter_spec.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/file_format/rails.rb spec/fixtures/test_language_combined.log spec/fixtures/decompression.tar.gz spec/unit/filter/field_filter_spec.rb spec/spec.opts lib/request_log_analyzer/aggregator/database.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/source/log_parser.rb spec/fixtures/decompression.tgz spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/fixtures/header_and_footer.log lib/cli/tools.rb lib/request_log_analyzer/file_format/merb.rb spec/fixtures/multiple_files_1.log spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/request.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/output.rb spec/lib/helpers.rb spec/fixtures/rails_1x.log spec/lib/mocks.rb spec/fixtures/decompression.log.zip spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/source/database.rb spec/unit/aggregator/database_spec.rb tasks/github-gem.rake lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/file_format.rb spec/unit/aggregator/summarizer_spec.rb spec/fixtures/rails_22.log spec/fixtures/multiple_files_2.log spec/fixtures/syslog_1x.log LICENSE spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb lib/cli/command_line_arguments.rb)
35
- s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
34
+ s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb spec/spec_helper.rb lib/request_log_analyzer.rb Rakefile spec/unit/filter/filter_spec.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/file_format/rails.rb spec/fixtures/test_language_combined.log spec/fixtures/decompression.tar.gz spec/unit/filter/field_filter_spec.rb spec/spec.opts lib/request_log_analyzer/aggregator/database.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/source/log_parser.rb spec/fixtures/decompression.tgz spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/fixtures/apache.log spec/fixtures/header_and_footer.log lib/cli/tools.rb lib/request_log_analyzer/file_format/merb.rb spec/fixtures/multiple_files_1.log spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/request.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/output.rb lib/request_log_analyzer/file_format/apache.rb spec/lib/helpers.rb spec/fixtures/rails_1x.log spec/lib/mocks.rb spec/fixtures/decompression.log.zip spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/source/database.rb tasks/github-gem.rake lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/file_format.rb spec/unit/aggregator/summarizer_spec.rb spec/fixtures/rails_22.log spec/fixtures/multiple_files_2.log spec/fixtures/syslog_1x.log LICENSE spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb lib/cli/command_line_arguments.rb)
35
+ s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
36
36
  end
@@ -0,0 +1,5 @@
1
+ 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
2
+ 125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
3
+ 10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
4
+ 10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
5
+ 69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe RequestLogAnalyzer::FileFormat::Apache do
4
+
5
+ before(:each) do
6
+ @file_format = RequestLogAnalyzer::FileFormat.load(:apache)
7
+ @log_parser = RequestLogAnalyzer::Source::LogParser.new(@file_format)
8
+ @sample = '69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"'
9
+ end
10
+
11
+ it "should have a valid language definitions" do
12
+ @file_format.should be_valid
13
+ end
14
+
15
+ it "should parse a valid access log line" do
16
+ @file_format.line_definitions[:access].matches(@sample, 1, nil).should be_kind_of(Hash)
17
+ end
18
+
19
+ it "should read the correct values from a valid access log line" do
20
+ @log_parser.parse_io(@sample) do |request|
21
+ request[:ip_address].should == '69.41.0.45'
22
+ request[:timestamp].should == 20090902120240
23
+ request[:status].should == 404
24
+ request[:method].should == 'GET'
25
+ request[:http_version].should == '1.1'
26
+ end
27
+ end
28
+
29
+ it "should parse 5 request from fixture access log" do
30
+ counter = mock('counter')
31
+ counter.should_receive(:hit!).exactly(5).times
32
+ @log_parser.parse_file(log_fixture(:apache)) { counter.hit! }
33
+ end
34
+
35
+ end
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
- describe RequestLogAnalyzer::Source::LogParser, :merb do
3
+ describe RequestLogAnalyzer::FileFormat::Merb do
4
4
 
5
5
  before(:each) do
6
6
  @log_parser = RequestLogAnalyzer::Source::LogParser.new(RequestLogAnalyzer::FileFormat.load(:merb))
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
- describe RequestLogAnalyzer::Source::LogParser, "Rails" do
3
+ describe RequestLogAnalyzer::FileFormat::Rails do
4
4
 
5
5
  before(:each) do
6
6
  @log_parser = RequestLogAnalyzer::Source::LogParser.new(
@@ -77,7 +77,7 @@ describe RequestLogAnalyzer::Source::LogParser, "Rails" do
77
77
  end
78
78
  end
79
79
 
80
- describe RequestLogAnalyzer::FileFormat::RailsDevelopment, "Rails with development details" do
80
+ describe RequestLogAnalyzer::FileFormat::RailsDevelopment do
81
81
 
82
82
  before(:each) do
83
83
  @file_format = RequestLogAnalyzer::FileFormat.load(:rails_development)
@@ -114,14 +114,20 @@ module GithubGem
114
114
  checks = [:check_current_branch, :check_clean_status, :check_not_diverged, :check_version]
115
115
  checks.unshift('spec:basic') if has_specs?
116
116
  checks.unshift('test:basic') if has_tests?
117
-
117
+ checks.push << [:check_rubyforge] if gemspec.rubyforge_project
118
+
118
119
  desc "Perform all checks that would occur before a release"
119
120
  task(:release_checks => checks)
120
121
 
122
+ release_tasks = [:release_checks, :set_version, :build, :github_release]
123
+ release_tasks << [:rubyforge_release] if gemspec.rubyforge_project
124
+
121
125
  desc "Release a new verison of the gem"
122
- task(:release => [:release_checks, :set_version, :build, :push_changes]) { release_task }
126
+ task(:release => release_tasks) { release_task }
123
127
 
124
- task(:push_changes => [:commit_modified_files, :tag_version]) { push_changes_task }
128
+ task(:check_rubyforge) { check_rubyforge_task }
129
+ task(:rubyforge_release) { rubyforge_release_task }
130
+ task(:github_release => [:commit_modified_files, :tag_version]) { github_release_task }
125
131
  task(:tag_version) { tag_version_task }
126
132
  task(:commit_modified_files) { commit_modified_files_task }
127
133
  end
@@ -163,7 +169,7 @@ module GithubGem
163
169
  end
164
170
 
165
171
  def check_clean_status_task
166
- raise "The current working copy contains modifications" if git.status.changed.any?
172
+ #raise "The current working copy contains modifications" if git.status.changed.any?
167
173
  end
168
174
 
169
175
  def check_current_branch_task
@@ -185,10 +191,21 @@ module GithubGem
185
191
  git.add_tag("#{gemspec.name}-#{gemspec.version}")
186
192
  end
187
193
 
188
- def push_changes_task
194
+ def github_release_task
189
195
  git.push(remote, remote_branch, true)
190
196
  end
191
197
 
198
+ def check_rubyforge_task
199
+ raise "Could not login on rubyforge!" unless `rubyforge login 2>&1`.strip.empty?
200
+ output = `rubyforge names`.split("\n")
201
+ raise "Rubyforge group not found!" unless output.any? { |line| %r[^groups\s*\:.*\b#{Regexp.quote(gemspec.rubyforge_project)}\b.*] =~ line }
202
+ raise "Rubyforge package not found!" unless output.any? { |line| %r[^packages\s*\:.*\b#{Regexp.quote(gemspec.name)}\b.*] =~ line }
203
+ end
204
+
205
+ def rubyforge_release_task
206
+ sh 'rubyforge', 'add_release', gemspec.rubyforge_project, gemspec.name, gemspec.version, "pgk/#{gemspec.name}-#{gemspec.version}.gem"
207
+ end
208
+
192
209
  def release_task
193
210
  puts
194
211
  puts '------------------------------------------------------------'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: request-log-analyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
@@ -54,6 +54,7 @@ files:
54
54
  - spec/fixtures/merb_prefixed.log
55
55
  - tasks/request_log_analyzer.rake
56
56
  - spec/unit/file_format/file_format_api_spec.rb
57
+ - spec/unit/file_format/apache_format_spec.rb
57
58
  - spec/integration/command_line_usage_spec.rb
58
59
  - spec/fixtures/decompression.log.bz2
59
60
  - lib/request_log_analyzer/log_processor.rb
@@ -84,9 +85,9 @@ files:
84
85
  - spec/unit/tracker/duration_tracker_spec.rb
85
86
  - lib/request_log_analyzer/aggregator/echo.rb
86
87
  - spec/unit/controller/log_processor_spec.rb
88
+ - spec/spec_helper.rb
87
89
  - lib/request_log_analyzer.rb
88
90
  - Rakefile
89
- - spec/spec_helper.rb
90
91
  - spec/unit/filter/filter_spec.rb
91
92
  - lib/request_log_analyzer/aggregator/summarizer.rb
92
93
  - lib/request_log_analyzer/file_format/rails.rb
@@ -100,6 +101,7 @@ files:
100
101
  - spec/fixtures/decompression.tgz
101
102
  - spec/unit/tracker/timespan_tracker_spec.rb
102
103
  - spec/unit/tracker/hourly_spread_spec.rb
104
+ - spec/fixtures/apache.log
103
105
  - spec/fixtures/header_and_footer.log
104
106
  - lib/cli/tools.rb
105
107
  - lib/request_log_analyzer/file_format/merb.rb
@@ -110,15 +112,16 @@ files:
110
112
  - lib/request_log_analyzer/request.rb
111
113
  - spec/unit/controller/controller_spec.rb
112
114
  - lib/request_log_analyzer/output.rb
115
+ - lib/request_log_analyzer/file_format/apache.rb
113
116
  - spec/lib/helpers.rb
114
117
  - spec/fixtures/rails_1x.log
115
118
  - spec/lib/mocks.rb
116
119
  - spec/fixtures/decompression.log.zip
117
120
  - spec/unit/source/request_spec.rb
118
121
  - spec/unit/source/log_parser_spec.rb
122
+ - spec/unit/aggregator/database_spec.rb
119
123
  - spec/fixtures/test_file_format.log
120
124
  - lib/request_log_analyzer/source/database.rb
121
- - spec/unit/aggregator/database_spec.rb
122
125
  - tasks/github-gem.rake
123
126
  - lib/request_log_analyzer/tracker/duration.rb
124
127
  - lib/request_log_analyzer/file_format.rb
@@ -166,6 +169,7 @@ summary: A command line tool to analyze request logs for Rails, Merb and other a
166
169
  test_files:
167
170
  - spec/unit/filter/anonymize_filter_spec.rb
168
171
  - spec/unit/file_format/file_format_api_spec.rb
172
+ - spec/unit/file_format/apache_format_spec.rb
169
173
  - spec/integration/command_line_usage_spec.rb
170
174
  - spec/unit/filter/timespan_filter_spec.rb
171
175
  - spec/unit/tracker/tracker_api_spec.rb