request-log-analyzer 1.2.1 → 1.2.3

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.
Files changed (35) hide show
  1. data/Rakefile +1 -1
  2. data/lib/request_log_analyzer/aggregator/database.rb +59 -35
  3. data/lib/request_log_analyzer/controller.rb +12 -7
  4. data/lib/request_log_analyzer/line_definition.rb +9 -0
  5. data/lib/request_log_analyzer/source/log_parser.rb +4 -0
  6. data/spec/fixtures/header_and_footer.log +6 -0
  7. data/spec/integration/command_line_usage_spec.rb +0 -2
  8. data/spec/lib/{helper.rb → helpers.rb} +1 -3
  9. data/spec/lib/macros.rb +2 -0
  10. data/spec/lib/matchers.rb +63 -0
  11. data/spec/lib/testing_format.rb +6 -0
  12. data/spec/spec.opts +3 -0
  13. data/spec/spec_helper.rb +13 -4
  14. data/spec/unit/aggregator/database_spec.rb +208 -0
  15. data/spec/unit/aggregator/summarizer_spec.rb +0 -2
  16. data/spec/unit/controller/controller_spec.rb +0 -2
  17. data/spec/unit/controller/log_processor_spec.rb +0 -2
  18. data/spec/unit/file_format/file_format_api_spec.rb +50 -71
  19. data/spec/unit/file_format/line_definition_spec.rb +49 -45
  20. data/spec/unit/file_format/merb_format_spec.rb +0 -1
  21. data/spec/unit/file_format/rails_format_spec.rb +0 -2
  22. data/spec/unit/filter/anonymize_filter_spec.rb +0 -1
  23. data/spec/unit/filter/field_filter_spec.rb +0 -3
  24. data/spec/unit/filter/filter_spec.rb +17 -0
  25. data/spec/unit/filter/timespan_filter_spec.rb +0 -3
  26. data/spec/unit/source/log_parser_spec.rb +5 -4
  27. data/spec/unit/source/request_spec.rb +17 -4
  28. data/spec/unit/tracker/duration_tracker_spec.rb +0 -6
  29. data/spec/unit/tracker/frequency_tracker_spec.rb +0 -6
  30. data/spec/unit/tracker/hourly_spread_spec.rb +0 -4
  31. data/spec/unit/tracker/timespan_tracker_spec.rb +0 -4
  32. data/spec/unit/tracker/tracker_api_spec.rb +0 -2
  33. data/tasks/rspec.rake +8 -1
  34. metadata +12 -6
  35. data/spec/unit/aggregator/database_inserter_spec.rb +0 -106
@@ -2,8 +2,6 @@ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe RequestLogAnalyzer::Tracker::Duration, 'static category' do
4
4
 
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
5
  before(:each) do
8
6
  @tracker = RequestLogAnalyzer::Tracker::Duration.new(:duration => :duration, :category => :category)
9
7
  @tracker.prepare
@@ -54,8 +52,6 @@ end
54
52
 
55
53
  describe RequestLogAnalyzer::Tracker::Duration, 'dynamic category' do
56
54
 
57
- include RequestLogAnalyzer::Spec::Helper
58
-
59
55
  before(:each) do
60
56
  @categorizer = Proc.new { |request| request[:duration] > 0.2 ? 'slow' : 'fast' }
61
57
  @tracker = RequestLogAnalyzer::Tracker::Duration.new(:duration => :duration, :category => @categorizer)
@@ -75,8 +71,6 @@ end
75
71
 
76
72
  describe RequestLogAnalyzer::Tracker::Duration, 'reporting' do
77
73
 
78
- include RequestLogAnalyzer::Spec::Helper
79
-
80
74
  before(:each) do
81
75
  @tracker = RequestLogAnalyzer::Tracker::Duration.new(:category => :category, :duration => :duration)
82
76
  @tracker.prepare
@@ -2,8 +2,6 @@ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe RequestLogAnalyzer::Tracker::Frequency, 'static category' do
4
4
 
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
5
  before(:each) do
8
6
  @tracker = RequestLogAnalyzer::Tracker::Frequency.new(:category => :category)
9
7
  @tracker.prepare
@@ -36,8 +34,6 @@ end
36
34
 
37
35
  describe RequestLogAnalyzer::Tracker::Frequency, 'dynamic category' do
38
36
 
39
- include RequestLogAnalyzer::Spec::Helper
40
-
41
37
  before(:each) do
42
38
  @categorizer = Proc.new { |request| request[:duration] > 0.2 ? 'slow' : 'fast' }
43
39
  @tracker = RequestLogAnalyzer::Tracker::Frequency.new(:category => @categorizer)
@@ -59,8 +55,6 @@ end
59
55
 
60
56
  describe RequestLogAnalyzer::Tracker::Frequency, 'reporting' do
61
57
 
62
- include RequestLogAnalyzer::Spec::Helper
63
-
64
58
  before(:each) do
65
59
  @tracker = RequestLogAnalyzer::Tracker::Frequency.new(:category => :category)
66
60
  @tracker.prepare
@@ -2,8 +2,6 @@ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe RequestLogAnalyzer::Tracker::HourlySpread do
4
4
 
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
5
  before(:each) do
8
6
  @tracker = RequestLogAnalyzer::Tracker::HourlySpread.new
9
7
  @tracker.prepare
@@ -54,8 +52,6 @@ end
54
52
 
55
53
  describe RequestLogAnalyzer::Tracker::HourlySpread, 'reporting' do
56
54
 
57
- include RequestLogAnalyzer::Spec::Helper
58
-
59
55
  before(:each) do
60
56
  @tracker = RequestLogAnalyzer::Tracker::HourlySpread.new
61
57
  @tracker.prepare
@@ -2,8 +2,6 @@ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe RequestLogAnalyzer::Tracker::Timespan do
4
4
 
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
5
  before(:each) do
8
6
  @tracker = RequestLogAnalyzer::Tracker::Timespan.new
9
7
  @tracker.prepare
@@ -45,8 +43,6 @@ end
45
43
 
46
44
  describe RequestLogAnalyzer::Tracker::Timespan, 'reporting' do
47
45
 
48
- include RequestLogAnalyzer::Spec::Helper
49
-
50
46
  before(:each) do
51
47
  @tracker = RequestLogAnalyzer::Tracker::Timespan.new
52
48
  @tracker.prepare
@@ -2,8 +2,6 @@ require File.dirname(__FILE__) + '/../../spec_helper'
2
2
 
3
3
  describe RequestLogAnalyzer::Tracker::Base, "API test" do
4
4
 
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
5
  before(:each) do
8
6
  @tracker = Class.new(RequestLogAnalyzer::Tracker::Base).new
9
7
 
@@ -9,4 +9,11 @@ namespace :spec do
9
9
  t.rcov = true
10
10
  t.rcov_opts = ['--exclude', '"spec/*,gems/*"', '--rails']
11
11
  end
12
- end
12
+
13
+ desc "Run all specs in spec directory (excluding plugin specs)"
14
+ Spec::Rake::SpecTask.new(:fancy) do |t|
15
+ t.spec_opts = ['--options', "\"spec/spec.opts\""]
16
+ t.spec_files = FileList['spec/**/*_spec.rb']
17
+ end
18
+ end
19
+
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.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-07-15 00:00:00 +02:00
13
+ date: 2009-08-19 00:00:00 +02:00
14
14
  default_executable: request-log-analyzer
15
15
  dependencies: []
16
16
 
@@ -66,6 +66,7 @@ files:
66
66
  - spec/fixtures/decompression.log.zip
67
67
  - spec/fixtures/decompression.tar.gz
68
68
  - spec/fixtures/decompression.tgz
69
+ - spec/fixtures/header_and_footer.log
69
70
  - spec/fixtures/merb.log
70
71
  - spec/fixtures/multiple_files_1.log
71
72
  - spec/fixtures/multiple_files_2.log
@@ -78,11 +79,14 @@ files:
78
79
  - spec/fixtures/test_language_combined.log
79
80
  - spec/fixtures/test_order.log
80
81
  - spec/integration/command_line_usage_spec.rb
81
- - spec/lib/helper.rb
82
+ - spec/lib/helpers.rb
83
+ - spec/lib/macros.rb
84
+ - spec/lib/matchers.rb
82
85
  - spec/lib/mocks.rb
83
86
  - spec/lib/testing_format.rb
87
+ - spec/spec.opts
84
88
  - spec/spec_helper.rb
85
- - spec/unit/aggregator/database_inserter_spec.rb
89
+ - spec/unit/aggregator/database_spec.rb
86
90
  - spec/unit/aggregator/summarizer_spec.rb
87
91
  - spec/unit/controller/controller_spec.rb
88
92
  - spec/unit/controller/log_processor_spec.rb
@@ -92,6 +96,7 @@ files:
92
96
  - spec/unit/file_format/rails_format_spec.rb
93
97
  - spec/unit/filter/anonymize_filter_spec.rb
94
98
  - spec/unit/filter/field_filter_spec.rb
99
+ - spec/unit/filter/filter_spec.rb
95
100
  - spec/unit/filter/timespan_filter_spec.rb
96
101
  - spec/unit/source/log_parser_spec.rb
97
102
  - spec/unit/source/request_spec.rb
@@ -132,13 +137,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
137
  requirements: []
133
138
 
134
139
  rubyforge_project: r-l-a
135
- rubygems_version: 1.3.2
140
+ rubygems_version: 1.3.4
136
141
  signing_key:
137
142
  specification_version: 3
138
143
  summary: A command line tool to analyze Rails logs
139
144
  test_files:
140
145
  - spec/integration/command_line_usage_spec.rb
141
- - spec/unit/aggregator/database_inserter_spec.rb
146
+ - spec/unit/aggregator/database_spec.rb
142
147
  - spec/unit/aggregator/summarizer_spec.rb
143
148
  - spec/unit/controller/controller_spec.rb
144
149
  - spec/unit/controller/log_processor_spec.rb
@@ -148,6 +153,7 @@ test_files:
148
153
  - spec/unit/file_format/rails_format_spec.rb
149
154
  - spec/unit/filter/anonymize_filter_spec.rb
150
155
  - spec/unit/filter/field_filter_spec.rb
156
+ - spec/unit/filter/filter_spec.rb
151
157
  - spec/unit/filter/timespan_filter_spec.rb
152
158
  - spec/unit/source/log_parser_spec.rb
153
159
  - spec/unit/source/request_spec.rb
@@ -1,106 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- describe RequestLogAnalyzer::Aggregator::Database, "schema creation" do
4
-
5
- include RequestLogAnalyzer::Spec::Helper
6
-
7
- before(:each) do
8
- log_parser = RequestLogAnalyzer::Source::LogParser.new(testing_format)
9
- @database_inserter = RequestLogAnalyzer::Aggregator::Database.new(log_parser, :database => ':memory:')
10
- end
11
-
12
-
13
- it "should create the correct tables" do
14
- ActiveRecord::Migration.should_receive(:create_table).with("warnings")
15
- ActiveRecord::Migration.should_receive(:create_table).with("requests")
16
- ActiveRecord::Migration.should_receive(:create_table).with("first_lines")
17
- ActiveRecord::Migration.should_receive(:create_table).with("test_lines")
18
- ActiveRecord::Migration.should_receive(:create_table).with("eval_lines")
19
- ActiveRecord::Migration.should_receive(:create_table).with("last_lines")
20
-
21
- ActiveRecord::Migration.should_receive(:add_index).with("eval_lines", [:request_id])
22
- ActiveRecord::Migration.should_receive(:add_index).with("first_lines", [:request_id])
23
- ActiveRecord::Migration.should_receive(:add_index).with("test_lines", [:request_id])
24
- ActiveRecord::Migration.should_receive(:add_index).with("last_lines", [:request_id])
25
-
26
- @database_inserter.prepare
27
- end
28
-
29
- it "should create a default Request class" do
30
- @database_inserter.prepare
31
- TestingFormat::Database::Request.ancestors.should include(ActiveRecord::Base)
32
- TestingFormat::Database::Request.column_names.should include('first_lineno')
33
- TestingFormat::Database::Request.column_names.should include('last_lineno')
34
- end
35
-
36
- it "should create associations for the default Request class" do
37
- @database_inserter.prepare
38
- @request = TestingFormat::Database::Request.new
39
- @request.should respond_to(:test_lines)
40
- @request.test_lines.should
41
- end
42
-
43
- it "should create the default table names" do
44
- @database_inserter.prepare
45
- @database_inserter.file_format.line_definitions.each do |name, definition|
46
- klass = TestingFormat::Database.const_get("#{name}_line".camelize)
47
- klass.column_names.should include('id')
48
- klass.column_names.should include('lineno')
49
- klass.column_names.should include('request_id')
50
- end
51
- end
52
-
53
- it "should create the correct fields in the table" do
54
- @database_inserter.prepare
55
-
56
- TestingFormat::Database::FirstLine.column_names.should include('request_no')
57
- TestingFormat::Database::LastLine.column_names.should include('request_no')
58
- TestingFormat::Database::TestLine.column_names.should include('test_capture')
59
- end
60
-
61
- it "should create fields for provides" do
62
- @database_inserter.prepare
63
- TestingFormat::Database::EvalLine.column_names.should include('evaluated')
64
- TestingFormat::Database::EvalLine.column_names.should include('greating')
65
- TestingFormat::Database::EvalLine.column_names.should include('what')
66
- end
67
-
68
- end
69
-
70
- describe RequestLogAnalyzer::Aggregator::Database, "record insertion" do
71
- include RequestLogAnalyzer::Spec::Helper
72
-
73
- before(:each) do
74
- log_parser = RequestLogAnalyzer::Source::LogParser.new(testing_format)
75
- @database_inserter = RequestLogAnalyzer::Aggregator::Database.new(log_parser, :database => ':memory:')
76
- @database_inserter.prepare
77
-
78
- @incomplete_request = testing_format.request( {:line_type => :first, :request_no => 564})
79
- @completed_request = testing_format.request( {:line_type => :first, :request_no => 564},
80
- {:line_type => :test, :test_capture => "awesome"},
81
- {:line_type => :test, :test_capture => "indeed"},
82
- {:line_type => :eval, :evaluated => { :greating => 'howdy'}, :greating => 'howdy' },
83
- {:line_type => :last, :request_no => 564})
84
- end
85
-
86
- it "should insert a record in the request table" do
87
- TestingFormat::Database::Request.count.should == 0
88
- @database_inserter.aggregate(@incomplete_request)
89
- TestingFormat::Database::Request.count.should == 1
90
- end
91
-
92
- it "should insert records in all relevant line tables" do
93
- @database_inserter.aggregate(@completed_request)
94
- request = TestingFormat::Database::Request.first
95
- request.should have(2).test_lines
96
- request.should have(1).first_lines
97
- request.should have(1).eval_lines
98
- request.should have(1).last_lines
99
- end
100
-
101
- it "should log a warning in the warnings table" do
102
- TestingFormat::Database::Warning.should_receive(:create!).with(hash_including(:warning_type => 'test_warning'))
103
- @database_inserter.warning(:test_warning, "Testing the warning system", 12)
104
- end
105
-
106
- end