Skip to content
This repository has been archived by the owner on Jan 30, 2024. It is now read-only.

Commit

Permalink
Add support for object inspection via awesome_print.
Browse files Browse the repository at this point in the history
  • Loading branch information
alistairholt authored and cldwalker committed Apr 20, 2012
1 parent 226c705 commit f90e727
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 2 deletions.
5 changes: 5 additions & 0 deletions lib/log_buddy.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ module LogBuddy
def self.init(options = {}) def self.init(options = {})
@logger = options[:logger] @logger = options[:logger]
@log_to_stdout = options.has_key?(:log_to_stdout) ? options[:log_to_stdout] : true @log_to_stdout = options.has_key?(:log_to_stdout) ? options[:log_to_stdout] : true
@use_awesome_print = options.has_key?(:use_awesome_print) ? options[:use_awesome_print] : false
@disabled = (options[:disabled] == true) @disabled = (options[:disabled] == true)
mixin_to_object mixin_to_object
end end
Expand All @@ -55,6 +56,10 @@ def logger
def log_to_stdout? def log_to_stdout?
@log_to_stdout @log_to_stdout
end end

def use_awesome_print?
@use_awesome_print
end


private private


Expand Down
7 changes: 5 additions & 2 deletions lib/log_buddy/utils.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -43,9 +43,12 @@ def obj_to_string(obj, options = {})
"#{ obj.message } (#{ obj.class })\n" << "#{ obj.message } (#{ obj.class })\n" <<
(obj.backtrace || []).join("\n") (obj.backtrace || []).join("\n")
else else
obj.inspect if LogBuddy.use_awesome_print?
obj.respond_to?(:ai) ? obj.ai : obj.inspect
else
obj.inspect
end
end end
end end

end end
end end
14 changes: 14 additions & 0 deletions spec/log_buddy/log_buddy_spec.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
LogBuddy.should respond_to(:log_to_stdout?) LogBuddy.should respond_to(:log_to_stdout?)
end end


it "has awesome_print config option" do
LogBuddy.should respond_to(:use_awesome_print?)
end

it "can override the default logger" do it "can override the default logger" do
file_logger = Logger.new "test.log" file_logger = Logger.new "test.log"
LogBuddy.init :logger => file_logger LogBuddy.init :logger => file_logger
Expand All @@ -26,6 +30,16 @@
LogBuddy.init :stdout => false LogBuddy.init :stdout => false
LogBuddy.log_to_stdout?.should == true LogBuddy.log_to_stdout?.should == true
end end

it "defaults to not using awesome_print for object inspection" do
LogBuddy.init
LogBuddy.use_awesome_print?.should == false
end

it "can be configured to use awesome_print for object inspection" do
LogBuddy.init :use_awesome_print => true
LogBuddy.use_awesome_print?.should == true
end
end end


end end
9 changes: 9 additions & 0 deletions spec/log_buddy/log_spec.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -152,6 +152,10 @@ class Foo
def inspect def inspect
"inspeck yo-self" "inspeck yo-self"
end end

def ai
"awesome_print y0"
end
end end


it "logs string as-is" do it "logs string as-is" do
Expand All @@ -171,6 +175,11 @@ def inspect
it "logs all other objects with #inspect" do it "logs all other objects with #inspect" do
obj_to_string(Foo.new).should == "inspeck yo-self" obj_to_string(Foo.new).should == "inspeck yo-self"
end end

it "logs object using awesome_print" do
LogBuddy.init :use_awesome_print => true
obj_to_string(Foo.new).should == "awesome_print y0"
end
end end


describe "stdout" do describe "stdout" do
Expand Down

0 comments on commit f90e727

Please sign in to comment.