request-log-analyzer 1.5.4 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,65 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe RequestLogAnalyzer::FileFormat::Postgresql do
4
+
5
+ it "should be a valid file format" do
6
+ RequestLogAnalyzer::FileFormat.load(:Postgresql).should be_valid
7
+ end
8
+
9
+ describe '#parse_line' do
10
+ before(:each) do
11
+ @file_format = RequestLogAnalyzer::FileFormat.load(:Postgresql)
12
+ end
13
+
14
+ it "should parse a :query line correctly" do
15
+ line = '2004-05-07 11:58:36 LOG: query: SELECT plugin_id, plugin_name FROM plugins'
16
+ @file_format.should parse_line(line).as(:query).and_capture(:timestamp => 20040507115836, :query_fragment => 'SELECT plugin_id, plugin_name FROM plugins')
17
+ end
18
+
19
+ it "should parse a :query_fragment line correctly" do
20
+ line = ' groups.type_id,users.user_name,users.realname,'
21
+ @file_format.should parse_line(line).as(:query_fragment).and_capture(:query_fragment => "groups.type_id,users.user_name,users.realname,")
22
+ end
23
+
24
+ it "should parse a :duration line correctly" do
25
+ line = '2004-05-07 11:58:36 LOG: duration: 0.002612 sec'
26
+ @file_format.should parse_line(line).as(:duration).and_capture(:query_time => 0.002612)
27
+ end
28
+ end
29
+
30
+ describe '#parse_io' do
31
+ before(:each) do
32
+ @log_parser = RequestLogAnalyzer::Source::LogParser.new(RequestLogAnalyzer::FileFormat.load(:postgresql))
33
+ end
34
+
35
+ it "should parse a multiline query entry correctly" do
36
+ fixture = <<EOS
37
+ 2004-05-07 11:58:22 LOG: query: SELECT groups.group_name,groups.unix_group_name,
38
+ groups.type_id,users.user_name,users.realname,
39
+ news_bytes.forum_id,news_bytes.summary,news_bytes.post_date,news_bytes.details
40
+ FROM users,news_bytes,groups
41
+ WHERE news_bytes.group_id='98' AND news_bytes.is_approved <> '4'
42
+ AND users.user_id=news_bytes.submitted_by
43
+ AND news_bytes.group_id=groups.group_id
44
+ ORDER BY post_date DESC LIMIT 10 OFFSET 0
45
+ 2004-05-07 11:58:22 LOG: duration: 0.002680 sec
46
+ EOS
47
+ @log_parser.parse_io(StringIO.new(fixture)) do |request|
48
+ request.should be_kind_of(RequestLogAnalyzer::FileFormat::Postgresql::Request)
49
+ request[:query].should == "SELECT groups.group_name,groups.unix_group_name, groups.type_id,users.user_name,users.realname, news_bytes.forum_id,news_bytes.summary,news_bytes.post_date,news_bytes.details FROM users,news_bytes,groups WHERE news_bytes.group_id=:string AND news_bytes.is_approved <> :string AND users.user_id=news_bytes.submitted_by AND news_bytes.group_id=groups.group_id ORDER BY post_date DESC LIMIT :int OFFSET :int"
50
+ end
51
+ end
52
+
53
+ it "should parse a dualline query entry correctly" do
54
+ fixture = <<EOS
55
+ 2004-05-07 11:58:36 LOG: query: SELECT type, count FROM project_sums_agg WHERE group_id=59
56
+ 2004-05-07 11:58:36 LOG: duration: 0.001197 sec
57
+ EOS
58
+ @log_parser.parse_io(StringIO.new(fixture)) do |request|
59
+ request.should be_kind_of(RequestLogAnalyzer::FileFormat::Postgresql::Request)
60
+ request[:query].should == "SELECT type, count FROM project_sums_agg WHERE group_id=:int"
61
+ end
62
+ end
63
+ end
64
+ end
65
+
@@ -80,11 +80,17 @@ describe RequestLogAnalyzer::FileFormat::Rails do
80
80
  @rails.should parse_line(line).as(:failure).and_capture(:error => 'NoMethodError', :message => "undefined method `update_domain_account' for nil:NilClass")
81
81
  end
82
82
 
83
- it "should parse a :cache_hit line correctly" do
84
- line = prefix + 'Filter chain halted as [#<ActionController::Caching::Actions::ActionCacheFilter:0x2a999ad620 @check=nil, @options={:store_options=>{}, :layout=>nil, :cache_path=>#<Proc:0x0000002a999b8890@/app/controllers/cached_controller.rb:8>}>] rendered_or_redirected.'
83
+ it "should parse a :cache_hit line correctly with an filter instance reference" do
84
+ line = prefix + 'Filter chain halted as [#<ActionController::Filters::AroundFilter:0x2a999ad120 @identifier=nil, @kind=:filter, @options={:only=>#<Set: {"cached"}>, :if=>:not_logged_in?, :unless=>nil}, @method=#<ActionController::Caching::Actions::ActionCacheFilter:0x2a999ad620 @check=nil, @options={:store_options=>{}, :layout=>nil, :cache_path=>#<Proc:0x0000002a999b8890@/app/controllers/cached_controller.rb:8>}>>] did_not_yield.'
85
85
  @rails.should parse_line(line).as(:cache_hit)
86
86
  end
87
87
 
88
+ it "should parse a :cache_hit line correctly with an proc instance reference" do
89
+ line = prefix + 'Filter chain halted as [#<ActionController::Filters::AroundFilter:0x2a9a923e38 @method=#<Proc:0x0000002a9818b3f8@/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/caching/actions.rb:64>, @kind=:filter, @identifier=nil, @options={:unless=>nil, :if=>nil, :only=>#<Set: {"show"}>}>] did_not_yield.'
90
+ @rails.should parse_line(line).as(:cache_hit)
91
+ end
92
+
93
+
88
94
  it "should parse a :parameters line correctly" do
89
95
  line = prefix + ' Parameters: {"action"=>"cached", "controller"=>"cached"}'
90
96
  @rails.should parse_line(line).as(:parameters).and_capture(:params => {:action => 'cached', :controller => 'cached'})
@@ -124,7 +124,7 @@ module GithubGem
124
124
  desc "Perform all checks that would occur before a release"
125
125
  task(:release_checks => checks)
126
126
 
127
- release_tasks = [:release_checks, :set_version, :build, :github_release]
127
+ release_tasks = [:release_checks, :set_version, :build, :github_release, :gemcutter_release]
128
128
  release_tasks << [:rubyforge_release] if gemspec.rubyforge_project
129
129
 
130
130
  desc "Release a new verison of the gem"
@@ -132,6 +132,7 @@ module GithubGem
132
132
 
133
133
  task(:check_rubyforge) { check_rubyforge_task }
134
134
  task(:rubyforge_release) { rubyforge_release_task }
135
+ task(:gemcutter_release) { gemcutter_release_task }
135
136
  task(:github_release => [:commit_modified_files, :tag_version]) { github_release_task }
136
137
  task(:tag_version) { tag_version_task }
137
138
  task(:commit_modified_files) { commit_modified_files_task }
@@ -228,6 +229,10 @@ module GithubGem
228
229
  def rubyforge_release_task
229
230
  sh 'rubyforge', 'add_release', gemspec.rubyforge_project, gemspec.name, gemspec.version.to_s, "pkg/#{gemspec.name}-#{gemspec.version}.gem"
230
231
  end
232
+
233
+ def gemcutter_release_task
234
+ sh "gem push pkg/#{gemspec.name}-#{gemspec.version}.gem"
235
+ end
231
236
 
232
237
  # Gem release task.
233
238
  # All work is done by the task's dependencies, so just display a release completed message.
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.5.4
4
+ version: 1.6.0
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-12-17 00:00:00 +01:00
13
+ date: 2010-01-08 00:00:00 +01:00
14
14
  default_executable: request-log-analyzer
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -74,10 +74,10 @@ files:
74
74
  - lib/request_log_analyzer/filter.rb
75
75
  - spec/integration/scout_spec.rb
76
76
  - spec/fixtures/test_file_format.log
77
+ - spec/unit/filter/timespan_filter_spec.rb
77
78
  - lib/request_log_analyzer/tracker/traffic.rb
78
79
  - spec/unit/file_format/merb_format_spec.rb
79
80
  - spec/unit/file_format/format_autodetection_spec.rb
80
- - spec/unit/filter/timespan_filter_spec.rb
81
81
  - spec/unit/file_format/file_format_api_spec.rb
82
82
  - lib/request_log_analyzer/filter/field.rb
83
83
  - lib/request_log_analyzer/file_format/merb.rb
@@ -87,6 +87,7 @@ files:
87
87
  - spec/integration/mailer_spec.rb
88
88
  - lib/request_log_analyzer/line_definition.rb
89
89
  - spec/unit/tracker/frequency_tracker_spec.rb
90
+ - spec/fixtures/postgresql.log
90
91
  - spec/fixtures/multiple_files_2.log
91
92
  - spec/lib/mocks.rb
92
93
  - spec/unit/file_format/apache_format_spec.rb
@@ -107,10 +108,10 @@ files:
107
108
  - lib/request_log_analyzer/file_format/rack.rb
108
109
  - lib/request_log_analyzer/tracker/numeric_value.rb
109
110
  - spec/fixtures/test_language_combined.log
111
+ - spec/unit/request_spec.rb
110
112
  - lib/cli/command_line_arguments.rb
111
113
  - lib/request_log_analyzer.rb
112
114
  - spec/database.yml
113
- - spec/unit/request_spec.rb
114
115
  - lib/request_log_analyzer/database/base.rb
115
116
  - spec/unit/aggregator/database_inserter_spec.rb
116
117
  - lib/request_log_analyzer/database/request.rb
@@ -123,6 +124,7 @@ files:
123
124
  - spec/unit/tracker/duration_tracker_spec.rb
124
125
  - spec/fixtures/rails_22_cached.log
125
126
  - lib/request_log_analyzer/aggregator/summarizer.rb
127
+ - spec/unit/file_format/postgresql_format_spec.rb
126
128
  - spec/unit/file_format/common_regular_expressions_spec.rb
127
129
  - spec/fixtures/rails_1x.log
128
130
  - lib/request_log_analyzer/file_format/delayed_job.rb
@@ -132,13 +134,14 @@ files:
132
134
  - spec/unit/file_format/mysql_format_spec.rb
133
135
  - request-log-analyzer.gemspec
134
136
  - spec/fixtures/apache_common.log
137
+ - spec/unit/mailer_spec.rb
135
138
  - lib/request_log_analyzer/file_format/rails.rb
136
139
  - Rakefile
137
- - spec/unit/mailer_spec.rb
138
140
  - lib/request_log_analyzer/tracker/hourly_spread.rb
139
141
  - spec/unit/aggregator/summarizer_spec.rb
140
142
  - spec/unit/tracker/traffic_tracker_spec.rb
141
143
  - spec/unit/tracker/numeric_value_tracker_spec.rb
144
+ - lib/request_log_analyzer/file_format/postgresql.rb
142
145
  - lib/request_log_analyzer/tracker/timespan.rb
143
146
  - spec/unit/controller/log_processor_spec.rb
144
147
  - spec/fixtures/sinatra.log
@@ -209,9 +212,9 @@ test_files:
209
212
  - spec/unit/filter/filter_spec.rb
210
213
  - spec/unit/database/connection_spec.rb
211
214
  - spec/integration/scout_spec.rb
215
+ - spec/unit/filter/timespan_filter_spec.rb
212
216
  - spec/unit/file_format/merb_format_spec.rb
213
217
  - spec/unit/file_format/format_autodetection_spec.rb
214
- - spec/unit/filter/timespan_filter_spec.rb
215
218
  - spec/unit/file_format/file_format_api_spec.rb
216
219
  - spec/integration/mailer_spec.rb
217
220
  - spec/unit/tracker/frequency_tracker_spec.rb
@@ -225,6 +228,7 @@ test_files:
225
228
  - spec/unit/aggregator/database_inserter_spec.rb
226
229
  - spec/unit/filter/anonymize_filter_spec.rb
227
230
  - spec/unit/tracker/duration_tracker_spec.rb
231
+ - spec/unit/file_format/postgresql_format_spec.rb
228
232
  - spec/unit/file_format/common_regular_expressions_spec.rb
229
233
  - spec/unit/file_format/line_definition_spec.rb
230
234
  - spec/unit/file_format/mysql_format_spec.rb