request-log-analyzer 1.13.1 → 1.13.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/bin/console +17 -0
  4. data/lib/cli/command_line_arguments.rb +29 -36
  5. data/lib/cli/database_console.rb +1 -3
  6. data/lib/cli/database_console_init.rb +11 -11
  7. data/lib/cli/progressbar.rb +30 -32
  8. data/lib/cli/tools.rb +20 -23
  9. data/lib/request_log_analyzer.rb +8 -8
  10. data/lib/request_log_analyzer/aggregator.rb +4 -7
  11. data/lib/request_log_analyzer/aggregator/database_inserter.rb +10 -13
  12. data/lib/request_log_analyzer/aggregator/echo.rb +5 -7
  13. data/lib/request_log_analyzer/aggregator/summarizer.rb +15 -18
  14. data/lib/request_log_analyzer/class_level_inheritable_attributes.rb +23 -0
  15. data/lib/request_log_analyzer/controller.rb +36 -42
  16. data/lib/request_log_analyzer/database.rb +4 -6
  17. data/lib/request_log_analyzer/database/base.rb +39 -41
  18. data/lib/request_log_analyzer/database/connection.rb +8 -10
  19. data/lib/request_log_analyzer/database/request.rb +1 -3
  20. data/lib/request_log_analyzer/database/source.rb +0 -2
  21. data/lib/request_log_analyzer/database/warning.rb +4 -6
  22. data/lib/request_log_analyzer/file_format.rb +46 -49
  23. data/lib/request_log_analyzer/file_format/amazon_s3.rb +15 -19
  24. data/lib/request_log_analyzer/file_format/apache.rb +42 -45
  25. data/lib/request_log_analyzer/file_format/delayed_job.rb +13 -15
  26. data/lib/request_log_analyzer/file_format/delayed_job2.rb +9 -11
  27. data/lib/request_log_analyzer/file_format/delayed_job21.rb +9 -11
  28. data/lib/request_log_analyzer/file_format/delayed_job3.rb +5 -8
  29. data/lib/request_log_analyzer/file_format/delayed_job4.rb +5 -8
  30. data/lib/request_log_analyzer/file_format/haproxy.rb +44 -48
  31. data/lib/request_log_analyzer/file_format/merb.rb +13 -17
  32. data/lib/request_log_analyzer/file_format/mysql.rb +21 -25
  33. data/lib/request_log_analyzer/file_format/nginx.rb +0 -2
  34. data/lib/request_log_analyzer/file_format/oink.rb +30 -31
  35. data/lib/request_log_analyzer/file_format/postgresql.rb +11 -15
  36. data/lib/request_log_analyzer/file_format/rack.rb +0 -2
  37. data/lib/request_log_analyzer/file_format/rails.rb +100 -104
  38. data/lib/request_log_analyzer/file_format/rails3.rb +19 -23
  39. data/lib/request_log_analyzer/file_format/rails_development.rb +0 -1
  40. data/lib/request_log_analyzer/file_format/w3c.rb +16 -18
  41. data/lib/request_log_analyzer/filter.rb +0 -2
  42. data/lib/request_log_analyzer/filter/anonymize.rb +4 -7
  43. data/lib/request_log_analyzer/filter/field.rb +3 -6
  44. data/lib/request_log_analyzer/filter/timespan.rb +2 -6
  45. data/lib/request_log_analyzer/line_definition.rb +16 -19
  46. data/lib/request_log_analyzer/log_processor.rb +10 -14
  47. data/lib/request_log_analyzer/mailer.rb +9 -12
  48. data/lib/request_log_analyzer/output.rb +12 -14
  49. data/lib/request_log_analyzer/output/fixed_width.rb +21 -28
  50. data/lib/request_log_analyzer/output/html.rb +11 -14
  51. data/lib/request_log_analyzer/request.rb +53 -33
  52. data/lib/request_log_analyzer/source.rb +2 -5
  53. data/lib/request_log_analyzer/source/log_parser.rb +9 -16
  54. data/lib/request_log_analyzer/tracker.rb +10 -12
  55. data/lib/request_log_analyzer/tracker/duration.rb +4 -6
  56. data/lib/request_log_analyzer/tracker/frequency.rb +9 -11
  57. data/lib/request_log_analyzer/tracker/hourly_spread.rb +8 -11
  58. data/lib/request_log_analyzer/tracker/numeric_value.rb +40 -44
  59. data/lib/request_log_analyzer/tracker/timespan.rb +5 -8
  60. data/lib/request_log_analyzer/tracker/traffic.rb +8 -10
  61. data/lib/request_log_analyzer/version.rb +1 -1
  62. data/request-log-analyzer.gemspec +6 -6
  63. data/spec/integration/command_line_usage_spec.rb +33 -33
  64. data/spec/integration/mailer_spec.rb +181 -185
  65. data/spec/integration/munin_plugins_rails_spec.rb +20 -20
  66. data/spec/integration/scout_spec.rb +40 -41
  67. data/spec/lib/helpers.rb +8 -9
  68. data/spec/lib/macros.rb +2 -4
  69. data/spec/lib/matchers.rb +20 -25
  70. data/spec/lib/mocks.rb +10 -11
  71. data/spec/lib/testing_format.rb +8 -10
  72. data/spec/spec_helper.rb +5 -1
  73. data/spec/unit/aggregator/database_inserter_spec.rb +23 -23
  74. data/spec/unit/aggregator/summarizer_spec.rb +7 -7
  75. data/spec/unit/controller/controller_spec.rb +14 -14
  76. data/spec/unit/controller/log_processor_spec.rb +3 -3
  77. data/spec/unit/database/base_class_spec.rb +36 -37
  78. data/spec/unit/database/connection_spec.rb +10 -10
  79. data/spec/unit/database/database_spec.rb +11 -11
  80. data/spec/unit/file_format/amazon_s3_format_spec.rb +66 -62
  81. data/spec/unit/file_format/apache_format_spec.rb +57 -52
  82. data/spec/unit/file_format/common_regular_expressions_spec.rb +18 -21
  83. data/spec/unit/file_format/delayed_job21_format_spec.rb +22 -16
  84. data/spec/unit/file_format/delayed_job2_format_spec.rb +22 -16
  85. data/spec/unit/file_format/delayed_job3_format_spec.rb +14 -10
  86. data/spec/unit/file_format/delayed_job4_format_spec.rb +14 -10
  87. data/spec/unit/file_format/delayed_job_format_spec.rb +12 -12
  88. data/spec/unit/file_format/file_format_api_spec.rb +19 -19
  89. data/spec/unit/file_format/format_autodetection_spec.rb +7 -7
  90. data/spec/unit/file_format/haproxy_format_spec.rb +53 -49
  91. data/spec/unit/file_format/inheritance_spec.rb +13 -0
  92. data/spec/unit/file_format/line_definition_spec.rb +35 -33
  93. data/spec/unit/file_format/merb_format_spec.rb +13 -11
  94. data/spec/unit/file_format/mysql_format_spec.rb +24 -24
  95. data/spec/unit/file_format/oink_format_spec.rb +29 -29
  96. data/spec/unit/file_format/postgresql_format_spec.rb +9 -9
  97. data/spec/unit/file_format/rack_format_spec.rb +36 -31
  98. data/spec/unit/file_format/rails3_format_spec.rb +46 -46
  99. data/spec/unit/file_format/rails_format_spec.rb +52 -53
  100. data/spec/unit/file_format/w3c_format_spec.rb +27 -24
  101. data/spec/unit/filter/anonymize_filter_spec.rb +7 -7
  102. data/spec/unit/filter/field_filter_spec.rb +26 -26
  103. data/spec/unit/filter/filter_spec.rb +4 -4
  104. data/spec/unit/filter/timespan_filter_spec.rb +22 -22
  105. data/spec/unit/mailer_spec.rb +21 -21
  106. data/spec/unit/request_spec.rb +29 -29
  107. data/spec/unit/source/log_parser_spec.rb +5 -5
  108. data/spec/unit/tracker/duration_tracker_spec.rb +23 -23
  109. data/spec/unit/tracker/frequency_tracker_spec.rb +29 -30
  110. data/spec/unit/tracker/hourly_spread_spec.rb +35 -35
  111. data/spec/unit/tracker/numeric_value_tracker_spec.rb +71 -72
  112. data/spec/unit/tracker/timespan_tracker_spec.rb +31 -31
  113. data/spec/unit/tracker/tracker_api_spec.rb +43 -44
  114. data/spec/unit/tracker/traffic_tracker_spec.rb +7 -7
  115. metadata +38 -35
@@ -7,36 +7,36 @@ describe RequestLogAnalyzer::Tracker::Timespan do
7
7
  @tracker.prepare
8
8
  end
9
9
 
10
- it "should set the first request timestamp correctly" do
11
- @tracker.update(request(:timestamp => 20090102000000))
12
- @tracker.update(request(:timestamp => 20090101000000))
13
- @tracker.update(request(:timestamp => 20090103000000))
10
+ it 'should set the first request timestamp correctly' do
11
+ @tracker.update(request(timestamp: 20_090_102_000_000))
12
+ @tracker.update(request(timestamp: 20_090_101_000_000))
13
+ @tracker.update(request(timestamp: 20_090_103_000_000))
14
14
 
15
15
  @tracker.first_timestamp.should == DateTime.parse('Januari 1, 2009 00:00:00')
16
16
  end
17
17
 
18
- it "should set the last request timestamp correctly" do
19
- @tracker.update(request(:timestamp => 20090102000000))
20
- @tracker.update(request(:timestamp => 20090101000000))
21
- @tracker.update(request(:timestamp => 20090103000000))
18
+ it 'should set the last request timestamp correctly' do
19
+ @tracker.update(request(timestamp: 20_090_102_000_000))
20
+ @tracker.update(request(timestamp: 20_090_101_000_000))
21
+ @tracker.update(request(timestamp: 20_090_103_000_000))
22
22
 
23
23
  @tracker.last_timestamp.should == DateTime.parse('Januari 3, 2009 00:00:00')
24
24
  end
25
25
 
26
- it "should return the correct timespan in days when multiple requests are given" do
27
- @tracker.update(request(:timestamp => 20090102000000))
28
- @tracker.update(request(:timestamp => 20090101000000))
29
- @tracker.update(request(:timestamp => 20090103000000))
26
+ it 'should return the correct timespan in days when multiple requests are given' do
27
+ @tracker.update(request(timestamp: 20_090_102_000_000))
28
+ @tracker.update(request(timestamp: 20_090_101_000_000))
29
+ @tracker.update(request(timestamp: 20_090_103_000_000))
30
30
 
31
31
  @tracker.timespan.should == 2
32
32
  end
33
33
 
34
- it "should return a timespan of 0 days when only one timestamp is set" do
35
- @tracker.update(request(:timestamp => 20090103000000))
34
+ it 'should return a timespan of 0 days when only one timestamp is set' do
35
+ @tracker.update(request(timestamp: 20_090_103_000_000))
36
36
  @tracker.timespan.should == 0
37
37
  end
38
38
 
39
- it "should raise an error when no timestamp is set" do
39
+ it 'should raise an error when no timestamp is set' do
40
40
  lambda { @tracker.timespan }.should raise_error
41
41
  end
42
42
  end
@@ -47,27 +47,27 @@ describe RequestLogAnalyzer::Tracker::Timespan, 'reporting' do
47
47
  @tracker = RequestLogAnalyzer::Tracker::Timespan.new
48
48
  @tracker.prepare
49
49
  end
50
-
51
- it "should have a title" do
52
- @tracker.title.should_not eql("")
50
+
51
+ it 'should have a title' do
52
+ @tracker.title.should_not eql('')
53
53
  end
54
54
 
55
- it "should generate a report without errors when no request was tracked" do
55
+ it 'should generate a report without errors when no request was tracked' do
56
56
  lambda { @tracker.report(mock_output) }.should_not raise_error
57
57
  end
58
58
 
59
- it "should generate a report without errors when multiple requests were tracked" do
60
- @tracker.update(request(:category => 'a', :timestamp => 20090102000000))
61
- @tracker.update(request(:category => 'a', :timestamp => 20090101000000))
62
- @tracker.update(request(:category => 'a', :timestamp => 20090103000000))
59
+ it 'should generate a report without errors when multiple requests were tracked' do
60
+ @tracker.update(request(category: 'a', timestamp: 20_090_102_000_000))
61
+ @tracker.update(request(category: 'a', timestamp: 20_090_101_000_000))
62
+ @tracker.update(request(category: 'a', timestamp: 20_090_103_000_000))
63
63
  lambda { @tracker.report(mock_output) }.should_not raise_error
64
64
  end
65
-
66
- it "should generate a YAML output" do
67
- @tracker.update(request(:category => 'a', :timestamp => 20090102000000))
68
- @tracker.update(request(:category => 'a', :timestamp => 20090101000000))
69
- @tracker.update(request(:category => 'a', :timestamp => 20090103000000))
70
- @tracker.to_yaml_object.should == { :first => DateTime.parse('20090101000000'), :last => DateTime.parse('20090103000000')}
65
+
66
+ it 'should generate a YAML output' do
67
+ @tracker.update(request(category: 'a', timestamp: 20_090_102_000_000))
68
+ @tracker.update(request(category: 'a', timestamp: 20_090_101_000_000))
69
+ @tracker.update(request(category: 'a', timestamp: 20_090_103_000_000))
70
+ @tracker.to_yaml_object.should == { first: DateTime.parse('20090101000000'), last: DateTime.parse('20090103000000') }
71
71
  end
72
-
73
- end
72
+
73
+ end
@@ -11,34 +11,34 @@ describe RequestLogAnalyzer::Tracker::Base do
11
11
  @summarizer.trackers << @tracker
12
12
  end
13
13
 
14
- it "should receive :prepare when the summarizer is preparing" do
14
+ it 'should receive :prepare when the summarizer is preparing' do
15
15
  @tracker.should_receive(:prepare).once
16
16
  @summarizer.prepare
17
17
  end
18
18
 
19
- it "should receive :update for every request for which should_update? returns true" do
19
+ it 'should receive :update for every request for which should_update? returns true' do
20
20
  @tracker.should_receive(:should_update?).twice.and_return(true)
21
21
  @tracker.should_receive(:update).twice
22
22
 
23
- @summarizer.aggregate(testing_format.request(:field => 'value1'))
24
- @summarizer.aggregate(testing_format.request(:field => 'value2'))
23
+ @summarizer.aggregate(testing_format.request(field: 'value1'))
24
+ @summarizer.aggregate(testing_format.request(field: 'value2'))
25
25
  end
26
26
 
27
- it "should not :update for every request for which should_update? returns false" do
27
+ it 'should not :update for every request for which should_update? returns false' do
28
28
  @tracker.should_receive(:should_update?).twice.and_return(false)
29
29
  @tracker.should_not_receive(:update)
30
30
 
31
- @summarizer.aggregate(testing_format.request(:field => 'value1'))
32
- @summarizer.aggregate(testing_format.request(:field => 'value2'))
31
+ @summarizer.aggregate(testing_format.request(field: 'value1'))
32
+ @summarizer.aggregate(testing_format.request(field: 'value2'))
33
33
  end
34
34
 
35
- it "should receive :report when the summary report is being built" do
35
+ it 'should receive :report when the summary report is being built' do
36
36
  m = mock_output
37
37
  m.should_receive(:report_tracker).with(@tracker)
38
38
  @summarizer.report(m)
39
39
  end
40
40
 
41
- it "should receieve :finalize when the summarizer is finalizing" do
41
+ it 'should receieve :finalize when the summarizer is finalizing' do
42
42
  @tracker.should_receive(:finalize).once
43
43
  @summarizer.finalize
44
44
  end
@@ -49,62 +49,61 @@ describe RequestLogAnalyzer::Tracker::Base do
49
49
  @tracker_class = Class.new(RequestLogAnalyzer::Tracker::Base)
50
50
  end
51
51
 
52
- it "should return true by default, when no checks are installed" do
52
+ it 'should return true by default, when no checks are installed' do
53
53
  tracker = @tracker_class.new
54
- tracker.should_update?(testing_format.request).should be_true
54
+ tracker.should_update?(testing_format.request).should == true
55
55
  end
56
56
 
57
- it "should return false if the line type is not in the request" do
58
- tracker = @tracker_class.new(:line_type => :not_there)
59
- tracker.should_update?(request(:line_type => :different)).should be_false
57
+ it 'should return false if the line type is not in the request' do
58
+ tracker = @tracker_class.new(line_type: :not_there)
59
+ tracker.should_update?(request(line_type: :different)).should == false
60
60
  end
61
61
 
62
- it "should return true if the line type is in the request" do
63
- tracker = @tracker_class.new(:line_type => :there)
64
- tracker.should_update?(request(:line_type => :there)).should be_true
62
+ it 'should return true if the line type is in the request' do
63
+ tracker = @tracker_class.new(line_type: :there)
64
+ tracker.should_update?(request(line_type: :there)).should == true
65
65
  end
66
66
 
67
- it "should return true if a field name is given to :if and it is in the request" do
68
- tracker = @tracker_class.new(:if => :field)
69
- tracker.should_update?(request(:field => 'anything')).should be_true
67
+ it 'should return true if a field name is given to :if and it is in the request' do
68
+ tracker = @tracker_class.new(if: :field)
69
+ tracker.should_update?(request(field: 'anything')).should == true
70
70
  end
71
71
 
72
- it "should return false if a field name is given to :if and it is not the request" do
73
- tracker = @tracker_class.new(:if => :field)
74
- tracker.should_update?(request(:other_field => 'anything')).should be_false
72
+ it 'should return false if a field name is given to :if and it is not the request' do
73
+ tracker = @tracker_class.new(if: :field)
74
+ tracker.should_update?(request(other_field: 'anything')).should == false
75
75
  end
76
76
 
77
- it "should return false if a field name is given to :unless and it is in the request" do
78
- tracker = @tracker_class.new(:unless => :field)
79
- tracker.should_update?(request(:field => 'anything')).should be_false
77
+ it 'should return false if a field name is given to :unless and it is in the request' do
78
+ tracker = @tracker_class.new(unless: :field)
79
+ tracker.should_update?(request(field: 'anything')).should == false
80
80
  end
81
81
 
82
- it "should return true if a field name is given to :unless and it is not the request" do
83
- tracker = @tracker_class.new(:unless => :field)
84
- tracker.should_update?(request(:other_field => 'anything')).should be_true
82
+ it 'should return true if a field name is given to :unless and it is not the request' do
83
+ tracker = @tracker_class.new(unless: :field)
84
+ tracker.should_update?(request(other_field: 'anything')).should == true
85
85
  end
86
86
 
87
- it "should return the value of the block if one is given to the :if option" do
88
- tracker = @tracker_class.new(:if => lambda { |r| false } )
89
- tracker.should_update?(request(:field => 'anything')).should be_false
87
+ it 'should return the value of the block if one is given to the :if option' do
88
+ tracker = @tracker_class.new(if: lambda { |_r| false })
89
+ tracker.should_update?(request(field: 'anything')).should == false
90
90
  end
91
91
 
92
- it "should return the inverse value of the block if one is given to the :if option" do
93
- tracker = @tracker_class.new(:unless => lambda { |r| false } )
94
- tracker.should_update?(request(:field => 'anything')).should be_true
92
+ it 'should return the inverse value of the block if one is given to the :if option' do
93
+ tracker = @tracker_class.new(unless: lambda { |_r| false })
94
+ tracker.should_update?(request(field: 'anything')).should == true
95
95
  end
96
96
 
97
- it "should return false if any of the checks fail" do
98
- tracker = @tracker_class.new(:if => :field, :unless => lambda { |r| false }, :line_type => :not_present )
99
- tracker.should_update?(request(:line_type => :present, :field => 'anything')).should be_false
97
+ it 'should return false if any of the checks fail' do
98
+ tracker = @tracker_class.new(if: :field, unless: lambda { |_r| false }, line_type: :not_present)
99
+ tracker.should_update?(request(line_type: :present, field: 'anything')).should == false
100
100
  end
101
101
 
102
- it "should return true if all of the checks succeed" do
103
- tracker = @tracker_class.new(:if => :field, :unless => lambda { |r| false }, :line_type => :present )
104
- tracker.should_update?(request(:line_type => :present, :field => 'anything')).should be_true
102
+ it 'should return true if all of the checks succeed' do
103
+ tracker = @tracker_class.new(if: :field, unless: lambda { |_r| false }, line_type: :present)
104
+ tracker.should_update?(request(line_type: :present, field: 'anything')).should == true
105
105
  end
106
106
 
107
-
108
107
  end
109
108
 
110
109
  describe '#to_yaml_object' do
@@ -116,10 +115,10 @@ describe RequestLogAnalyzer::Tracker::Base do
116
115
  @summarizer.trackers << @tracker
117
116
  end
118
117
 
119
- it "should receive :to_yaml object when finalizing" do
118
+ it 'should receive :to_yaml object when finalizing' do
120
119
  @summarizer.options[:yaml] = temp_output_file(:yaml)
121
120
  @tracker.should_receive(:to_yaml_object).once
122
121
  @summarizer.to_yaml
123
122
  end
124
123
  end
125
- end
124
+ end
@@ -4,23 +4,23 @@ describe RequestLogAnalyzer::Tracker::Traffic do
4
4
 
5
5
  describe '#report' do
6
6
  before(:each) do
7
- @tracker = RequestLogAnalyzer::Tracker::Traffic.new(:category => :category, :traffic => :traffic)
7
+ @tracker = RequestLogAnalyzer::Tracker::Traffic.new(category: :category, traffic: :traffic)
8
8
  @tracker.prepare
9
9
  end
10
10
 
11
- it "should generate a report without errors when one category is present" do
12
- @tracker.update(request(:category => 'a', :traffic => 2))
11
+ it 'should generate a report without errors when one category is present' do
12
+ @tracker.update(request(category: 'a', traffic: 2))
13
13
  @tracker.report(mock_output)
14
14
  lambda { @tracker.report(mock_output) }.should_not raise_error
15
15
  end
16
16
 
17
- it "should generate a report without errors when no category is present" do
17
+ it 'should generate a report without errors when no category is present' do
18
18
  lambda { @tracker.report(mock_output) }.should_not raise_error
19
19
  end
20
20
 
21
- it "should generate a report without errors when multiple categories are present" do
22
- @tracker.update(request(:category => 'a', :traffic => 2))
23
- @tracker.update(request(:category => 'b', :traffic => 2))
21
+ it 'should generate a report without errors when multiple categories are present' do
22
+ @tracker.update(request(category: 'a', traffic: 2))
23
+ @tracker.update(request(category: 'b', traffic: 2))
24
24
  lambda { @tracker.report(mock_output) }.should_not raise_error
25
25
  end
26
26
 
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.13.1
4
+ version: 1.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
@@ -9,113 +9,112 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-11 00:00:00.000000000 Z
12
+ date: 2014-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rspec
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.14'
34
+ version: '3'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '2.14'
41
+ version: '3'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: activerecord
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: sqlite3
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: mysql2
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: pg
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '>='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
- description: " Request log analyzer's purpose is to find out how your web application
99
- is being used, how it performs and to\n focus your optimization efforts. This
100
- tool will parse all requests in the application's log file and aggregate the \n
101
- \ information. Once it is finished parsing the log file(s), it will show the requests
102
- that take op most server time \n using various metrics. It can also insert all
103
- parsed request information into a database so you can roll your own\n analysis.
104
- It supports Rails-, Merb- and Rack-based applications logs, Apache and Amazon S3
105
- access logs and MySQL \n slow query logs out of the box, but file formats of
106
- other applications can easily be supported by supplying an \n easy to write log
107
- file format definition.\n"
98
+ description: |2
99
+ Request log analyzer's purpose is to find out how your web application is being used, how it performs and to
100
+ focus your optimization efforts. This tool will parse all requests in the application's log file and aggregate the
101
+ information. Once it is finished parsing the log file(s), it will show the requests that take op most server time
102
+ using various metrics. It can also insert all parsed request information into a database so you can roll your own
103
+ analysis. It supports Rails-, Merb- and Rack-based applications logs, Apache and Amazon S3 access logs and MySQL
104
+ slow query logs out of the box, but file formats of other applications can easily be supported by supplying an
105
+ easy to write log file format definition.
108
106
  email:
109
107
  - willem@railsdoctors.com
110
108
  - bart@railsdoctors.com
111
109
  executables:
110
+ - console
112
111
  - request-log-analyzer
113
112
  extensions: []
114
113
  extra_rdoc_files:
115
114
  - README.rdoc
116
115
  files:
117
- - .gitignore
118
- - .travis.yml
116
+ - ".gitignore"
117
+ - ".travis.yml"
119
118
  - DESIGN.rdoc
120
119
  - Gemfile
121
120
  - Gemfile.activerecord3
@@ -123,6 +122,7 @@ files:
123
122
  - LICENSE
124
123
  - README.rdoc
125
124
  - Rakefile
125
+ - bin/console
126
126
  - bin/request-log-analyzer
127
127
  - lib/cli/command_line_arguments.rb
128
128
  - lib/cli/database_console.rb
@@ -134,6 +134,7 @@ files:
134
134
  - lib/request_log_analyzer/aggregator/database_inserter.rb
135
135
  - lib/request_log_analyzer/aggregator/echo.rb
136
136
  - lib/request_log_analyzer/aggregator/summarizer.rb
137
+ - lib/request_log_analyzer/class_level_inheritable_attributes.rb
137
138
  - lib/request_log_analyzer/controller.rb
138
139
  - lib/request_log_analyzer/database.rb
139
140
  - lib/request_log_analyzer/database/base.rb
@@ -241,6 +242,7 @@ files:
241
242
  - spec/unit/file_format/file_format_api_spec.rb
242
243
  - spec/unit/file_format/format_autodetection_spec.rb
243
244
  - spec/unit/file_format/haproxy_format_spec.rb
245
+ - spec/unit/file_format/inheritance_spec.rb
244
246
  - spec/unit/file_format/line_definition_spec.rb
245
247
  - spec/unit/file_format/merb_format_spec.rb
246
248
  - spec/unit/file_format/mysql_format_spec.rb
@@ -271,29 +273,29 @@ licenses:
271
273
  metadata: {}
272
274
  post_install_message:
273
275
  rdoc_options:
274
- - --title
276
+ - "--title"
275
277
  - request-log-analyzer
276
- - --main
278
+ - "--main"
277
279
  - README.rdoc
278
- - --line-numbers
279
- - --inline-source
280
+ - "--line-numbers"
281
+ - "--inline-source"
280
282
  require_paths:
281
283
  - lib
282
284
  required_ruby_version: !ruby/object:Gem::Requirement
283
285
  requirements:
284
- - - '>='
286
+ - - ">="
285
287
  - !ruby/object:Gem::Version
286
288
  version: 1.9.3
287
289
  required_rubygems_version: !ruby/object:Gem::Requirement
288
290
  requirements:
289
- - - '>='
291
+ - - ">="
290
292
  - !ruby/object:Gem::Version
291
293
  version: '0'
292
294
  requirements:
293
295
  - To use the database inserter, ActiveRecord and an appropriate database adapter are
294
296
  required.
295
297
  rubyforge_project: r-l-a
296
- rubygems_version: 2.0.14
298
+ rubygems_version: 2.2.2
297
299
  signing_key:
298
300
  specification_version: 4
299
301
  summary: A command line tool to analyze request logs for Apache, Rails, Merb, MySQL
@@ -358,6 +360,7 @@ test_files:
358
360
  - spec/unit/file_format/file_format_api_spec.rb
359
361
  - spec/unit/file_format/format_autodetection_spec.rb
360
362
  - spec/unit/file_format/haproxy_format_spec.rb
363
+ - spec/unit/file_format/inheritance_spec.rb
361
364
  - spec/unit/file_format/line_definition_spec.rb
362
365
  - spec/unit/file_format/merb_format_spec.rb
363
366
  - spec/unit/file_format/mysql_format_spec.rb