request-log-analyzer 1.2.3 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,249 +1,256 @@
1
1
  require 'rubygems'
2
- require 'rubyforge'
3
2
  require 'rake'
4
3
  require 'rake/tasklib'
5
4
  require 'date'
5
+ require 'git'
6
6
 
7
- module Rake
7
+ module GithubGem
8
8
 
9
- class GithubGem < TaskLib
10
-
11
- attr_accessor :name
12
- attr_accessor :specification
13
-
14
- def self.define_tasks!
15
- gem_task_builder = Rake::GithubGem.new
16
- gem_task_builder.register_all_tasks!
17
- end
18
-
19
- def initialize
20
- reload_gemspec!
9
+ def self.detect_gemspec_file
10
+ FileList['*.gemspec'].first
11
+ end
12
+
13
+ def self.detect_main_include
14
+ if detect_gemspec_file =~ /^(\.*)\.gemspec$/ && File.exist?("lib/#{$1}.rb")
15
+ "lib/#{$1}.rb"
16
+ elsif FileList['lib/*.rb'].length == 1
17
+ FileList['lib/*.rb'].first
18
+ else
19
+ raise "Could not detect main include file!"
21
20
  end
21
+ end
22
+
23
+ class RakeTasks
24
+
25
+ attr_reader :gemspec, :modified_files, :git
26
+ attr_accessor :gemspec_file, :task_namespace, :main_include, :root_dir, :spec_pattern, :test_pattern, :remote, :remote_branch, :local_branch
27
+
28
+ def initialize(task_namespace = :gem)
29
+ @gemspec_file = GithubGem.detect_gemspec_file
30
+ @task_namespace = task_namespace
31
+ @main_include = GithubGem.detect_main_include
32
+ @modified_files = []
33
+ @root_dir = Dir.pwd
34
+ @test_pattern = 'test/**/*_test.rb'
35
+ @spec_pattern = 'spec/**/*_spec.rb'
36
+ @local_branch = 'master'
37
+ @remote = 'origin'
38
+ @remote_branch = 'master'
39
+
40
+
41
+ yield(self) if block_given?
22
42
 
23
- def register_all_tasks!
24
- namespace(:gem) do
25
- desc "Updates the file lists for this gem"
26
- task(:manifest) { manifest_task }
43
+ @git = Git.open(@root_dir)
44
+ load_gemspec!
45
+ define_tasks!
46
+ end
47
+
48
+ protected
49
+
50
+ def define_test_tasks!
51
+ require 'rake/testtask'
27
52
 
28
- desc "Releases a new version of #{@name}"
29
- task(:build => [:manifest]) { build_task }
30
-
31
-
32
- release_dependencies = [:check_clean_master_branch, :version, :build, :create_tag]
33
- release_dependencies.push 'doc:publish' if has_rdoc?
34
- release_dependencies.unshift 'test' if has_tests?
35
- release_dependencies.unshift 'spec' if has_specs?
36
-
37
- desc "Releases a new version of #{@name}"
38
- task(:release => release_dependencies) { release_task }
39
-
40
- # helper task for releasing
41
- task(:check_clean_master_branch) { verify_clean_status('master') }
42
- task(:check_version) { verify_version(ENV['VERSION'] || @specification.version) }
43
- task(:version => [:check_version]) { set_gem_version! }
44
- task(:create_tag) { create_version_tag! }
45
- end
46
-
47
- # Register RDoc tasks
48
- if has_rdoc?
49
- require 'rake/rdoctask'
50
-
51
- namespace(:doc) do
52
- desc 'Generate documentation for request-log-analyzer'
53
- Rake::RDocTask.new(:compile) do |rdoc|
54
- rdoc.rdoc_dir = 'doc'
55
- rdoc.title = @name
56
- rdoc.options += @specification.rdoc_options
57
- rdoc.rdoc_files.include(@specification.extra_rdoc_files)
58
- rdoc.rdoc_files.include('lib/**/*.rb')
59
- end
60
-
61
- desc "Publish RDoc files for #{@name} to Github"
62
- task(:publish => :compile) do
63
- sh 'git checkout gh-pages'
64
- sh 'git pull origin gh-pages'
65
- sh 'cp -rf doc/* .'
66
- sh "git commit -am \"Publishing newest RDoc documentation for #{@name}\""
67
- sh "git push origin gh-pages"
68
- sh "git checkout master"
69
- end
53
+ namespace(:test) do
54
+ Rake::TestTask.new(:basic) do |t|
55
+ t.pattern = test_pattern
56
+ t.verbose = true
57
+ t.libs << 'test'
70
58
  end
71
59
  end
60
+
61
+ desc "Run all unit tests for #{gemspec.name}"
62
+ task(:test => ['test:basic'])
63
+ end
72
64
 
73
- # Setup :spec task if RSpec files exist
74
- if has_specs?
75
- require 'spec/rake/spectask'
65
+ def define_rspec_tasks!
66
+ require 'spec/rake/spectask'
76
67
 
77
- desc "Run all specs for #{@name}"
78
- Spec::Rake::SpecTask.new(:spec) do |t|
79
- t.spec_files = FileList['spec/**/*_spec.rb']
68
+ namespace(:spec) do
69
+ desc "Verify all RSpec examples for #{gemspec.name}"
70
+ Spec::Rake::SpecTask.new(:basic) do |t|
71
+ t.spec_files = FileList[spec_pattern]
72
+ end
73
+
74
+ desc "Verify all RSpec examples for #{gemspec.name} and output specdoc"
75
+ Spec::Rake::SpecTask.new(:specdoc) do |t|
76
+ t.spec_files = FileList[spec_pattern]
77
+ t.spec_opts << '--format' << 'specdoc' << '--color'
80
78
  end
79
+
80
+ desc "Run RCov on specs for #{gemspec.name}"
81
+ Spec::Rake::SpecTask.new(:rcov) do |t|
82
+ t.spec_files = FileList[spec_pattern]
83
+ t.rcov = true
84
+ t.rcov_opts = ['--exclude', '"spec/*,gems/*"', '--rails']
85
+ end
81
86
  end
82
87
 
83
- # Setup :test task if unit test files exist
84
- if has_tests?
85
- require 'rake/testtask'
86
-
87
- desc "Run all unit tests for #{@name}"
88
- Rake::TestTask.new(:test) do |t|
89
- t.pattern = 'test/**/*_test.rb'
90
- t.verbose = true
91
- t.libs << 'test'
92
- end
93
- end
88
+ desc "Verify all RSpec examples for #{gemspec.name} and output specdoc"
89
+ task(:spec => ['spec:specdoc'])
94
90
  end
95
91
 
96
- protected
92
+ # Defines the rake tasks
93
+ def define_tasks!
94
+
95
+ define_test_tasks! if has_tests?
96
+ define_rspec_tasks! if has_specs?
97
+
98
+ namespace(@task_namespace) do
99
+ desc "Updates the filelist in the gemspec file"
100
+ task(:manifest) { manifest_task }
101
+
102
+ desc "Builds the .gem package"
103
+ task(:build => :manifest) { build_task }
97
104
 
98
- def has_rdoc?
99
- @specification.has_rdoc
100
- end
105
+ desc "Sets the version of the gem in the gemspec"
106
+ task(:set_version => [:check_version, :check_current_branch]) { version_task }
107
+ task(:check_version => :fetch_origin) { check_version_task }
108
+
109
+ task(:fetch_origin) { fetch_origin_task }
110
+ task(:check_current_branch) { check_current_branch_task }
111
+ task(:check_clean_status) { check_clean_status_task }
112
+ task(:check_not_diverged => :fetch_origin) { check_not_diverged_task }
113
+
114
+ checks = [:check_current_branch, :check_clean_status, :check_not_diverged, :check_version]
115
+ checks.unshift('spec:basic') if has_specs?
116
+ checks.unshift('test:basic') if has_tests?
117
+
118
+ desc "Perform all checks that would occur before a release"
119
+ task(:release_checks => checks)
101
120
 
102
- def has_specs?
103
- Dir['spec/**/*_spec.rb'].any?
121
+ desc "Release a new verison of the gem"
122
+ task(:release => [:release_checks, :set_version, :build, :push_changes]) { release_task }
123
+
124
+ task(:push_changes => [:commit_modified_files, :tag_version]) { push_changes_task }
125
+ task(:tag_version) { tag_version_task }
126
+ task(:commit_modified_files) { commit_modified_files_task }
127
+ end
104
128
  end
105
129
 
106
- def has_tests?
107
- Dir['test/**/*_test.rb'].any?
108
- end
109
-
110
- def reload_gemspec!
111
- raise "No gemspec file found!" if gemspec_file.nil?
112
- spec = File.read(gemspec_file)
113
- @specification = eval(spec)
114
- @name = specification.name
115
- end
116
-
117
- def run_command(command)
118
- lines = []
119
- IO.popen(command) { |f| lines = f.readlines }
120
- return lines
130
+ def manifest_task
131
+ # Load all the gem's files using "git ls-files"
132
+ repository_files = git.ls_files.keys
133
+ test_files = Dir[test_pattern] + Dir[spec_pattern]
134
+
135
+ update_gemspec(:files, repository_files)
136
+ update_gemspec(:test_files, repository_files & test_files)
121
137
  end
122
138
 
123
- def git_modified?(file)
124
- return !run_command('git status').detect { |line| Regexp.new(Regexp.quote(file)) =~ line }.nil?
139
+ def build_task
140
+ sh "gem build -q #{gemspec_file}"
141
+ Dir.mkdir('pkg') unless File.exist?('pkg')
142
+ sh "mv #{gemspec.name}-#{gemspec.version}.gem pkg/#{gemspec.name}-#{gemspec.version}.gem"
125
143
  end
126
144
 
127
- def git_commit_file(file, message, branch = nil)
128
- verify_current_branch(branch) unless branch.nil?
129
- if git_modified?(file)
130
- sh "git add #{file}"
131
- sh "git commit -m \"#{message}\""
132
- else
133
- raise "#{file} is not modified and cannot be committed!"
134
- end
145
+ def version_task
146
+ update_gemspec(:version, ENV['VERSION']) if ENV['VERSION']
147
+ update_gemspec(:date, Date.today)
148
+
149
+ update_version_file(gemspec.version)
150
+ update_version_constant(gemspec.version)
135
151
  end
136
152
 
137
- def git_create_tag(tag_name, message)
138
- sh "git tag -a \"#{tag_name}\" -m \"#{message}\""
153
+ def check_version_task
154
+ raise "#{ENV['VERSION']} is not a valid version number!" if ENV['VERSION'] && !Gem::Version.correct?(ENV['VERSION'])
155
+ proposed_version = Gem::Version.new(ENV['VERSION'] || gemspec.version)
156
+ # Loads the latest version number using the created tags
157
+ newest_version = git.tags.map { |tag| tag.name.split('-').last }.compact.map { |v| Gem::Version.new(v) }.max
158
+ raise "This version (#{proposed_version}) is not higher than the highest tagged version (#{newest_version})" if newest_version && newest_version >= proposed_version
139
159
  end
140
160
 
141
- def git_push(remote = 'origin', branch = 'master', options = [])
142
- verify_clean_status(branch)
143
- options_str = options.map { |o| "--#{o}"}.join(' ')
144
- sh "git push #{options_str} #{remote} #{branch}"
161
+ def check_not_diverged_task
162
+ raise "The current branch is diverged from the remote branch!" if git.log.between('HEAD', git.branches["#{remote}/#{remote_branch}"].gcommit).any?
145
163
  end
146
164
 
147
- def gemspec_version=(new_version)
148
- spec = File.read(gemspec_file)
149
- spec.gsub!(/^(\s*s\.version\s*=\s*)('|")(.+)('|")(\s*)$/) { "#{$1}'#{new_version}'#{$5}" }
150
- spec.gsub!(/^(\s*s\.date\s*=\s*)('|")(.+)('|")(\s*)$/) { "#{$1}'#{Date.today.strftime('%Y-%m-%d')}'#{$5}" }
151
- File.open(gemspec_file, 'w') { |f| f << spec }
152
- reload_gemspec!
165
+ def check_clean_status_task
166
+ raise "The current working copy contains modifications" if git.status.changed.any?
153
167
  end
154
168
 
155
- def gemspec_date=(new_date)
156
- spec = File.read(gemspec_file)
157
- spec.gsub!(/^(\s*s\.date\s*=\s*)('|")(.+)('|")(\s*)$/) { "#{$1}'#{new_date.strftime('%Y-%m-%d')}'#{$5}" }
158
- File.open(gemspec_file, 'w') { |f| f << spec }
159
- reload_gemspec!
169
+ def check_current_branch_task
170
+ raise "Currently not on #{local_branch} branch!" unless git.branch.name == local_branch.to_s
160
171
  end
161
172
 
162
- def gemspec_file
163
- @gemspec_file ||= Dir['*.gemspec'].first
173
+ def fetch_origin_task
174
+ git.fetch('origin')
164
175
  end
165
176
 
166
- def verify_current_branch(branch)
167
- run_command('git branch').detect { |line| /^\* (.+)/ =~ line }
168
- raise "You are currently not working in the master branch!" unless branch == $1
177
+ def commit_modified_files_task
178
+ if modified_files.any?
179
+ modified_files.each { |file| git.add(file) }
180
+ git.commit("Released #{gemspec.name} gem version #{gemspec.version}")
181
+ end
169
182
  end
170
183
 
171
- def verify_clean_status(on_branch = nil)
172
- sh "git fetch"
173
- lines = run_command('git status')
174
- raise "You don't have the most recent version available. Run git pull first." if /^\# Your branch is behind/ =~ lines[1]
175
- raise "You are currently not working in the #{on_branch} branch!" unless on_branch.nil? || (/^\# On branch (.+)/ =~ lines.first && $1 == on_branch)
176
- raise "Your master branch contains modifications!" unless /^nothing to commit \(working directory clean\)/ =~ lines.last
184
+ def tag_version_task
185
+ git.add_tag("#{gemspec.name}-#{gemspec.version}")
177
186
  end
178
187
 
179
- def verify_version(new_version)
180
- newest_version = run_command('git tag').map { |tag| tag.split(name + '-').last }.compact.map { |v| Gem::Version.new(v) }.max
181
- raise "This version number (#{new_version}) is not higher than the highest tagged version (#{newest_version})" if !newest_version.nil? && newest_version >= Gem::Version.new(new_version.to_s)
188
+ def push_changes_task
189
+ git.push(remote, remote_branch, true)
182
190
  end
183
191
 
184
- def set_gem_version!
185
- # update gemspec file
186
- self.gemspec_version = ENV['VERSION'] if Gem::Version.correct?(ENV['VERSION'])
187
- self.gemspec_date = Date.today
192
+ def release_task
193
+ puts
194
+ puts '------------------------------------------------------------'
195
+ puts "Released #{gemspec.name} version #{gemspec.version}"
188
196
  end
189
-
190
- def manifest_task
191
- verify_current_branch('master')
192
-
193
- list = Dir['**/*'].sort
194
- list -= [gemspec_file]
195
-
196
- if File.exist?('.gitignore')
197
- File.read('.gitignore').each_line do |glob|
198
- glob = glob.chomp.sub(/^\//, '')
199
- list -= Dir[glob]
200
- list -= Dir["#{glob}/**/*"] if File.directory?(glob) and !File.symlink?(glob)
201
- end
202
- end
203
-
204
- # update the spec file
205
- spec = File.read(gemspec_file)
206
- spec.gsub! /^(\s* s.(test_)?files \s* = \s* )( \[ [^\]]* \] | %w\( [^)]* \) )/mx do
207
- assignment = $1
208
- bunch = $2 ? list.grep(/^(test.*_test\.rb|spec.*_spec.rb)$/) : list
209
- '%s%%w(%s)' % [assignment, bunch.join(' ')]
210
- end
211
-
212
- File.open(gemspec_file, 'w') { |f| f << spec }
213
- reload_gemspec!
197
+
198
+ private
199
+
200
+ def has_specs?
201
+ FileList[spec_pattern].any?
214
202
  end
215
203
 
216
- def build_task
217
- sh "gem build #{gemspec_file}"
218
- Dir.mkdir('pkg') unless File.exist?('pkg')
219
- sh "mv #{name}-#{specification.version}.gem pkg/#{name}-#{specification.version}.gem"
204
+ def has_tests?
205
+ FileList[test_pattern].any?
220
206
  end
221
207
 
222
- def install_task
223
- raise "#{name} .gem file not found" unless File.exist?("pkg/#{name}-#{specification.version}.gem")
224
- sh "gem install pkg/#{name}-#{specification.version}.gem"
208
+
209
+ # Loads the gemspec file
210
+ def load_gemspec!
211
+ @gemspec = eval(File.read(@gemspec_file))
225
212
  end
226
213
 
227
- def uninstall_task
228
- raise "#{name} .gem file not found" unless File.exist?("pkg/#{name}-#{specification.version}.gem")
229
- sh "gem uninstall #{name}"
230
- end
214
+ # Updates the VERSION file with the new version
215
+ def update_version_file(version)
216
+ if File.exists?('VERSION')
217
+ File.open('VERSION', 'w') { |f| f << version.to_s }
218
+ modified_files << 'VERSION'
219
+ end
220
+ end
231
221
 
232
- def create_version_tag!
233
- # commit the gemspec file
234
- git_commit_file(gemspec_file, "Updated #{gemspec_file} for release of version #{@specification.version}") if git_modified?(gemspec_file)
235
-
236
- # create tag and push changes
237
- git_create_tag("#{@name}-#{@specification.version}", "Tagged version #{@specification.version}")
238
- git_push('origin', 'master', [:tags])
222
+ # Updates the VERSION constant in the main include file if it exists
223
+ def update_version_constant(version)
224
+ file_contents = File.read(main_include)
225
+ if file_contents.sub!(/^(\s+VERSION\s*=\s*)[^\s].*$/) { $1 + version.to_s.inspect }
226
+ File.open(main_include, 'w') { |f| f << file_contents }
227
+ modified_files << main_include
228
+ end
239
229
  end
240
230
 
241
- def release_task
242
- puts
243
- puts '------------------------------------------------------------'
244
- puts "Released #{@name} - version #{@specification.version}"
231
+ # Updates an attribute of the gemspec file.
232
+ # This function will open the file, and search/replace the attribute using a regular expression.
233
+ def update_gemspec(attribute, new_value, literal = false)
234
+
235
+ unless literal
236
+ new_value = case new_value
237
+ when Array then "%w(#{new_value.join(' ')})"
238
+ when Hash, String then new_value.inspect
239
+ when Date then new_value.strftime('%Y-%m-%d').inspect
240
+ else raise "Cannot write value #{new_value.inspect} to gemspec file!"
241
+ end
242
+ end
243
+
244
+ spec = File.read(gemspec_file)
245
+ regexp = Regexp.new('^(\s+\w+\.' + Regexp.quote(attribute.to_s) + '\s*=\s*)[^\s].*$')
246
+ if spec.sub!(regexp) { $1 + new_value }
247
+ File.open(gemspec_file, 'w') { |f| f << spec }
248
+ modified_files << gemspec_file
249
+
250
+ # Reload the gemspec so the changes are incorporated
251
+ load_gemspec!
252
+ end
245
253
  end
254
+
246
255
  end
247
256
  end
248
-
249
- Rake::GithubGem.define_tasks!
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.3
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
@@ -10,12 +10,33 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-08-19 00:00:00 +02:00
13
+ date: 2009-09-02 00:00:00 +02:00
14
14
  default_executable: request-log-analyzer
15
- dependencies: []
16
-
17
- description: Rails log analyzer's purpose is to find what actions are best candidates for optimization. This tool will parse all requests in the Rails logfile and aggregate the information. Once it is finished parsing the log file, it will show the requests that take op most server time using various metrics.
18
- email: willem@vanbergen.org
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rspec
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.2.4
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: git
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.1.0
35
+ version:
36
+ description: " Request log analyzer's purpose is to find ot how your web application is being used and to focus your optimization efforts.\n This tool will parse all requests in the application's log file and aggregate the information. Once it is finished parsing \n the log file(s), it will show the requests that take op most server time using various metrics. It can also insert all \n parsed request information into a database so you can roll your own analysis. It supports Rails- and Merb-based applications \n out of the box, but file formats of other applications can easily be supported by supplying an easy to write log file format \n definition.\n"
37
+ email:
38
+ - willem@railsdoctors.com
39
+ - bart@railsdoctors.com
19
40
  executables:
20
41
  - request-log-analyzer
21
42
  extensions: []
@@ -23,93 +44,94 @@ extensions: []
23
44
  extra_rdoc_files:
24
45
  - README.rdoc
25
46
  files:
26
- - DESIGN.rdoc
27
- - LICENSE
28
- - README.rdoc
29
- - RELEASE_NOTES.rdoc
30
- - Rakefile
31
- - bin/request-log-analyzer
32
- - lib/cli/command_line_arguments.rb
33
- - lib/cli/progressbar.rb
34
- - lib/cli/tools.rb
35
- - lib/request_log_analyzer.rb
36
- - lib/request_log_analyzer/aggregator.rb
37
- - lib/request_log_analyzer/aggregator/database.rb
38
- - lib/request_log_analyzer/aggregator/echo.rb
39
- - lib/request_log_analyzer/aggregator/summarizer.rb
47
+ - spec/unit/filter/anonymize_filter_spec.rb
48
+ - lib/request_log_analyzer/line_definition.rb
49
+ - lib/request_log_analyzer/output/html.rb
40
50
  - lib/request_log_analyzer/controller.rb
41
- - lib/request_log_analyzer/file_format.rb
42
- - lib/request_log_analyzer/file_format/merb.rb
43
- - lib/request_log_analyzer/file_format/rails.rb
51
+ - spec/fixtures/rails_22_cached.log
44
52
  - lib/request_log_analyzer/file_format/rails_development.rb
45
- - lib/request_log_analyzer/filter.rb
46
- - lib/request_log_analyzer/filter/anonymize.rb
47
- - lib/request_log_analyzer/filter/field.rb
48
- - lib/request_log_analyzer/filter/timespan.rb
49
- - lib/request_log_analyzer/line_definition.rb
53
+ - spec/lib/macros.rb
54
+ - spec/fixtures/merb_prefixed.log
55
+ - tasks/request_log_analyzer.rake
56
+ - spec/unit/file_format/file_format_api_spec.rb
57
+ - spec/integration/command_line_usage_spec.rb
58
+ - spec/fixtures/decompression.log.bz2
50
59
  - lib/request_log_analyzer/log_processor.rb
51
- - lib/request_log_analyzer/output.rb
52
- - lib/request_log_analyzer/output/fixed_width.rb
53
- - lib/request_log_analyzer/output/html.rb
54
- - lib/request_log_analyzer/request.rb
55
- - lib/request_log_analyzer/source.rb
56
- - lib/request_log_analyzer/source/database.rb
57
- - lib/request_log_analyzer/source/log_parser.rb
58
60
  - lib/request_log_analyzer/tracker.rb
59
- - lib/request_log_analyzer/tracker/duration.rb
61
+ - lib/request_log_analyzer/filter.rb
62
+ - spec/fixtures/rails_unordered.log
63
+ - bin/request-log-analyzer
64
+ - request-log-analyzer.gemspec
65
+ - DESIGN.rdoc
66
+ - spec/unit/filter/timespan_filter_spec.rb
67
+ - lib/request_log_analyzer/filter/field.rb
60
68
  - lib/request_log_analyzer/tracker/frequency.rb
61
- - lib/request_log_analyzer/tracker/hourly_spread.rb
62
- - lib/request_log_analyzer/tracker/timespan.rb
63
- - spec/fixtures/decompression.log
64
- - spec/fixtures/decompression.log.bz2
65
69
  - spec/fixtures/decompression.log.gz
66
- - spec/fixtures/decompression.log.zip
70
+ - spec/fixtures/decompression.log
71
+ - spec/lib/matchers.rb
72
+ - spec/fixtures/test_order.log
73
+ - lib/request_log_analyzer/output/fixed_width.rb
74
+ - lib/request_log_analyzer/filter/anonymize.rb
75
+ - spec/lib/testing_format.rb
76
+ - lib/request_log_analyzer/tracker/timespan.rb
77
+ - lib/request_log_analyzer/aggregator.rb
78
+ - lib/cli/progressbar.rb
79
+ - README.rdoc
80
+ - spec/fixtures/merb.log
81
+ - lib/request_log_analyzer/tracker/hourly_spread.rb
82
+ - .gitignore
83
+ - spec/unit/tracker/tracker_api_spec.rb
84
+ - spec/unit/tracker/duration_tracker_spec.rb
85
+ - lib/request_log_analyzer/aggregator/echo.rb
86
+ - spec/unit/controller/log_processor_spec.rb
87
+ - lib/request_log_analyzer.rb
88
+ - Rakefile
89
+ - spec/spec_helper.rb
90
+ - spec/unit/filter/filter_spec.rb
91
+ - lib/request_log_analyzer/aggregator/summarizer.rb
92
+ - lib/request_log_analyzer/file_format/rails.rb
93
+ - spec/fixtures/test_language_combined.log
67
94
  - spec/fixtures/decompression.tar.gz
95
+ - spec/unit/filter/field_filter_spec.rb
96
+ - spec/spec.opts
97
+ - lib/request_log_analyzer/aggregator/database.rb
98
+ - lib/request_log_analyzer/filter/timespan.rb
99
+ - lib/request_log_analyzer/source/log_parser.rb
68
100
  - spec/fixtures/decompression.tgz
101
+ - spec/unit/tracker/timespan_tracker_spec.rb
102
+ - spec/unit/tracker/hourly_spread_spec.rb
69
103
  - spec/fixtures/header_and_footer.log
70
- - spec/fixtures/merb.log
104
+ - lib/cli/tools.rb
105
+ - lib/request_log_analyzer/file_format/merb.rb
71
106
  - spec/fixtures/multiple_files_1.log
72
- - spec/fixtures/multiple_files_2.log
73
- - spec/fixtures/rails_1x.log
74
- - spec/fixtures/rails_22.log
75
- - spec/fixtures/rails_22_cached.log
76
- - spec/fixtures/rails_unordered.log
77
- - spec/fixtures/syslog_1x.log
78
- - spec/fixtures/test_file_format.log
79
- - spec/fixtures/test_language_combined.log
80
- - spec/fixtures/test_order.log
81
- - spec/integration/command_line_usage_spec.rb
107
+ - spec/unit/file_format/merb_format_spec.rb
108
+ - spec/unit/file_format/line_definition_spec.rb
109
+ - lib/request_log_analyzer/source.rb
110
+ - lib/request_log_analyzer/request.rb
111
+ - spec/unit/controller/controller_spec.rb
112
+ - lib/request_log_analyzer/output.rb
82
113
  - spec/lib/helpers.rb
83
- - spec/lib/macros.rb
84
- - spec/lib/matchers.rb
114
+ - spec/fixtures/rails_1x.log
85
115
  - spec/lib/mocks.rb
86
- - spec/lib/testing_format.rb
87
- - spec/spec.opts
88
- - spec/spec_helper.rb
116
+ - spec/fixtures/decompression.log.zip
117
+ - spec/unit/source/request_spec.rb
118
+ - spec/unit/source/log_parser_spec.rb
119
+ - spec/fixtures/test_file_format.log
120
+ - lib/request_log_analyzer/source/database.rb
89
121
  - spec/unit/aggregator/database_spec.rb
122
+ - tasks/github-gem.rake
123
+ - lib/request_log_analyzer/tracker/duration.rb
124
+ - lib/request_log_analyzer/file_format.rb
90
125
  - spec/unit/aggregator/summarizer_spec.rb
91
- - spec/unit/controller/controller_spec.rb
92
- - spec/unit/controller/log_processor_spec.rb
93
- - spec/unit/file_format/file_format_api_spec.rb
94
- - spec/unit/file_format/line_definition_spec.rb
95
- - spec/unit/file_format/merb_format_spec.rb
96
- - spec/unit/file_format/rails_format_spec.rb
97
- - spec/unit/filter/anonymize_filter_spec.rb
98
- - spec/unit/filter/field_filter_spec.rb
99
- - spec/unit/filter/filter_spec.rb
100
- - spec/unit/filter/timespan_filter_spec.rb
101
- - spec/unit/source/log_parser_spec.rb
102
- - spec/unit/source/request_spec.rb
103
- - spec/unit/tracker/duration_tracker_spec.rb
126
+ - spec/fixtures/rails_22.log
127
+ - spec/fixtures/multiple_files_2.log
128
+ - spec/fixtures/syslog_1x.log
129
+ - LICENSE
104
130
  - spec/unit/tracker/frequency_tracker_spec.rb
105
- - spec/unit/tracker/hourly_spread_spec.rb
106
- - spec/unit/tracker/timespan_tracker_spec.rb
107
- - spec/unit/tracker/tracker_api_spec.rb
108
- - tasks/github-gem.rake
109
- - tasks/request_log_analyzer.rake
110
- - tasks/rspec.rake
131
+ - spec/unit/file_format/rails_format_spec.rb
132
+ - lib/cli/command_line_arguments.rb
111
133
  has_rdoc: true
112
- homepage: http://github.com/wvanbergen/request-log-analyzer/wikis
134
+ homepage: http://railsdoctors.com
113
135
  licenses: []
114
136
 
115
137
  post_install_message:
@@ -134,31 +156,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
156
  - !ruby/object:Gem::Version
135
157
  version: "0"
136
158
  version:
137
- requirements: []
138
-
159
+ requirements:
160
+ - To use the database inserter, ActiveRecord and an appropriate database adapter are required.
139
161
  rubyforge_project: r-l-a
140
162
  rubygems_version: 1.3.4
141
163
  signing_key:
142
164
  specification_version: 3
143
- summary: A command line tool to analyze Rails logs
165
+ summary: A command line tool to analyze request logs for Rails, Merb and other application servers
144
166
  test_files:
167
+ - spec/unit/filter/anonymize_filter_spec.rb
168
+ - spec/unit/file_format/file_format_api_spec.rb
145
169
  - spec/integration/command_line_usage_spec.rb
146
- - spec/unit/aggregator/database_spec.rb
147
- - spec/unit/aggregator/summarizer_spec.rb
148
- - spec/unit/controller/controller_spec.rb
170
+ - spec/unit/filter/timespan_filter_spec.rb
171
+ - spec/unit/tracker/tracker_api_spec.rb
172
+ - spec/unit/tracker/duration_tracker_spec.rb
149
173
  - spec/unit/controller/log_processor_spec.rb
150
- - spec/unit/file_format/file_format_api_spec.rb
151
- - spec/unit/file_format/line_definition_spec.rb
152
- - spec/unit/file_format/merb_format_spec.rb
153
- - spec/unit/file_format/rails_format_spec.rb
154
- - spec/unit/filter/anonymize_filter_spec.rb
155
- - spec/unit/filter/field_filter_spec.rb
156
174
  - spec/unit/filter/filter_spec.rb
157
- - spec/unit/filter/timespan_filter_spec.rb
158
- - spec/unit/source/log_parser_spec.rb
175
+ - spec/unit/filter/field_filter_spec.rb
176
+ - spec/unit/tracker/timespan_tracker_spec.rb
177
+ - spec/unit/tracker/hourly_spread_spec.rb
178
+ - spec/unit/file_format/merb_format_spec.rb
179
+ - spec/unit/file_format/line_definition_spec.rb
180
+ - spec/unit/controller/controller_spec.rb
159
181
  - spec/unit/source/request_spec.rb
160
- - spec/unit/tracker/duration_tracker_spec.rb
182
+ - spec/unit/source/log_parser_spec.rb
183
+ - spec/unit/aggregator/database_spec.rb
184
+ - spec/unit/aggregator/summarizer_spec.rb
161
185
  - spec/unit/tracker/frequency_tracker_spec.rb
162
- - spec/unit/tracker/hourly_spread_spec.rb
163
- - spec/unit/tracker/timespan_tracker_spec.rb
164
- - spec/unit/tracker/tracker_api_spec.rb
186
+ - spec/unit/file_format/rails_format_spec.rb