Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
noahd1 committed Feb 16, 2009
1 parent f180eb8 commit 24fecdd
Show file tree
Hide file tree
Showing 13 changed files with 81 additions and 101 deletions.
4 changes: 2 additions & 2 deletions Rakefile
Expand Up @@ -2,11 +2,11 @@ require 'rubygems'
require "rake/gempackagetask"
require "rake/clean"
require "spec/rake/spectask"
require './lib/oink/oink_for_memory.rb'
require './lib/oink/oink.rb'

spec = Gem::Specification.new do |s|
s.name = "oink"
s.version = OinkForMemory::VERSION
s.version = Oink::VERSION
s.author = "Noah Davis"
s.email = "noahd1" + "@" + "yahoo.com"
s.homepage = "http://github.com/noahd1/oink"
Expand Down
20 changes: 0 additions & 20 deletions lib/oink/logged_request/logged_active_record_request.rb

This file was deleted.

20 changes: 0 additions & 20 deletions lib/oink/logged_request/logged_memory_request.rb

This file was deleted.

11 changes: 0 additions & 11 deletions lib/oink/logged_request/logged_request.rb

This file was deleted.

17 changes: 17 additions & 0 deletions lib/oink/oink.rb
Expand Up @@ -14,5 +14,22 @@ def initialize(input, threshold, options = {})
@bad_requests = PriorityQueue.new(10)
end

protected

def print_summary(output)
output.puts "\n-- SUMMARY --\n"
output.puts "Worst Requests:"
@bad_requests.each_with_index do |offender, index|
output.puts "#{index + 1}. #{offender.datetime}, #{offender.display_oink_number}, #{offender.action}"
if @format == :summary
offender.log_lines.each { |b| output.puts b }
output.puts "---------------------------------------------------------------------"
end
end
output.puts "\nWorst Actions:"
@bad_actions.sort{|a,b| b[1]<=>a[1]}.each { |elem|
output.puts "#{elem[1]}, #{elem[0]}"
}
end

end
20 changes: 4 additions & 16 deletions lib/oink/oink_for_active_record.rb
@@ -1,7 +1,7 @@
require "date"
require "oink/oink"
require "oink/logged_request/logged_active_record_request"
require "oink/priority_queue/priority_queue"
require "oink/oinked_request/oinked_ar_request"
require "oink/priority_queue"

class OinkForActiveRecord < Oink

Expand Down Expand Up @@ -39,7 +39,7 @@ def print(output)
@bad_actions[@pids[pid][:action]] ||= 0
@bad_actions[@pids[pid][:action]] = @bad_actions[@pids[pid][:action]] + 1
date = /^(\w+ \d{2} \d{2}:\d{2}:\d{2})/.match(line).captures[0]
@bad_requests.push(LoggedActiveRecordRequest.new(@pids[pid][:action], date, @pids[pid][:buffer], @pids[pid][:ar_count]))
@bad_requests.push(OinkedARRequest.new(@pids[pid][:action], date, @pids[pid][:buffer], @pids[pid][:ar_count]))
if @format == :verbose
@pids[pid][:buffer].each { |b| output.puts b }
output.puts "---------------------------------------------------------------------"
Expand All @@ -54,19 +54,7 @@ def print(output)
end # end each_line
end # end each input

output.puts "\n-- SUMMARY --\n"
output.puts "Worst Requests:"
@bad_requests.each_with_index do |offender, index|
output.puts "#{index + 1}. #{offender.datetime}, #{offender.ar_count}, #{offender.action}"
if @format == :summary
offender.log_lines.each { |b| output.puts b }
output.puts "---------------------------------------------------------------------"
end
end
output.puts "\nWorst Actions:"
@bad_actions.sort{|a,b| b[1]<=>a[1]}.each { |elem|
output.puts "#{elem[1]}, #{elem[0]}"
}
print_summary(output)

end

Expand Down
20 changes: 4 additions & 16 deletions lib/oink/oink_for_memory.rb
@@ -1,7 +1,7 @@
require "date"
require "oink/oink"
require "oink/logged_request/logged_memory_request"
require "oink/priority_queue/priority_queue"
require "oink/oinked_request/oinked_memory_request"
require "oink/priority_queue"

class OinkForMemory < Oink

Expand Down Expand Up @@ -43,7 +43,7 @@ def print(output)
@bad_actions[@pids[pid][:action]] ||= 0
@bad_actions[@pids[pid][:action]] = @bad_actions[@pids[pid][:action]] + 1
date = /^(\w+ \d{2} \d{2}:\d{2}:\d{2})/.match(line).captures[0]
@bad_requests.push(LoggedMemoryRequest.new(@pids[pid][:action], date, @pids[pid][:buffer], memory_diff))
@bad_requests.push(OinkedMemoryRequest.new(@pids[pid][:action], date, @pids[pid][:buffer], memory_diff))
if @format == :verbose
@pids[pid][:buffer].each { |b| output.puts b }
output.puts "---------------------------------------------------------------------"
Expand All @@ -59,19 +59,7 @@ def print(output)
end # end each_line
end # end each input

output.puts "\n-- SUMMARY --\n"
output.puts "Worst Requests:"
@bad_requests.each_with_index do |offender, index|
output.puts "#{index + 1}. #{offender.datetime}, #{offender.memory} KB, #{offender.action}"
if @format == :summary
offender.log_lines.each { |b| output.puts b }
output.puts "---------------------------------------------------------------------"
end
end
output.puts "\nWorst Actions:"
@bad_actions.sort{|a,b| b[1]<=>a[1]}.each { |elem|
output.puts "#{elem[1]}, #{elem[0]}"
}
print_summary(output)

end

Expand Down
9 changes: 9 additions & 0 deletions lib/oink/oinked_request/oinked_ar_request.rb
@@ -0,0 +1,9 @@
require "oink/oinked_request/oinked_request"

class OinkedARRequest < OinkedRequest

def display_oink_number
@oink_number
end

end
9 changes: 9 additions & 0 deletions lib/oink/oinked_request/oinked_memory_request.rb
@@ -0,0 +1,9 @@
require "oink/oinked_request/oinked_request"

class OinkedMemoryRequest < OinkedRequest

def display_oink_number
"#{@oink_number} KB"
end

end
20 changes: 20 additions & 0 deletions lib/oink/oinked_request/oinked_request.rb
@@ -0,0 +1,20 @@
class OinkedRequest

attr_accessor :action, :datetime, :log_lines, :oink_number

def initialize(action, datetime, log_lines, oink_number)
@action = action
@datetime = datetime
@log_lines = log_lines
@oink_number = oink_number
end

def <=>(other)
self.oink_number <=> other.oink_number
end

def >(other)
self.oink_number > other.oink_number
end

end
File renamed without changes.
16 changes: 0 additions & 16 deletions spec/logged_request/logged_request_spec.rb

This file was deleted.

16 changes: 16 additions & 0 deletions spec/oinked_request/oinked_request_spec.rb
@@ -0,0 +1,16 @@
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")

describe OinkedRequest do

describe "sort" do
it "should sort by memory used" do
lr1 = OinkedRequest.new("Controller#Action", "February 1 10:20", [], 10)
lr2 = OinkedRequest.new("Controller#Action", "February 1 10:20", [], 5)
lr3 = OinkedRequest.new("Controller#Action", "February 1 10:20", [], 30)

[lr1, lr2, lr3].sort.should == [lr2, lr1, lr3]
end
end


end

0 comments on commit 24fecdd

Please sign in to comment.