request-log-analyzer 1.13.1 → 1.13.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 (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