<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,5 @@
+v0.2.0  Better log output of objects based on their type, very similiar to Logger/irb behavior; update to micronaut 0.1.0
+
 v0.1.5  Clean up specs and remove noise from spec run
 
 v0.1.4  Micronauts Unite! Test Suite now runs via Micronaut - http://github.com/spicycode/micronaut/</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,4 @@
 CHANGELOG
-LICENSE
-Manifest
-README.rdoc
-Rakefile
 examples/example_helper.rb
 examples/log_buddy_example.rb
 examples/log_buddy_init_example.rb
@@ -13,3 +9,8 @@ lib/log_buddy/mixin.rb
 lib/log_buddy/utils.rb
 lib/log_buddy/version.rb
 lib/log_buddy.rb
+LICENSE
+log_buddy.gemspec
+Manifest
+Rakefile
+README.rdoc</diff>
      <filename>Manifest</filename>
    </modified>
    <modified>
      <diff>@@ -15,9 +15,17 @@ module Foo;
 end
   
 
-d &quot;hi&quot;                    # logs &quot;hi&quot; (regular old logging)
-d { a }                   # logs &quot;a = 'foo'&quot;
-d { @a }                  # logs &quot;@a = 'my var'&quot;
-d { @@bar }               # logs &quot;@@bar = 'class var!'&quot;
-d { bark }                # logs &quot;bark = woof!&quot;
-d { Foo::module_method }  # logs Foo::module_method = 'hi!!'
\ No newline at end of file
+# LogBuddy calls and their output:
+
+d &quot;hi&quot;                    # hi
+d { a }                   # a = &quot;foo&quot;
+d { @a }                  # @a = &quot;my var&quot;
+d { @@bar }               # @@bar = &quot;class var!&quot;
+d { bark }                # bark = &quot;woof!&quot;
+d { Foo::module_method }  # Foo::module_method = &quot;hi!!&quot;
+
+hsh = {:foo =&gt; &quot;bar&quot;, &quot;key&quot; =&gt; &quot;value&quot;}
+array = [1,2,3,4,&quot;5&quot;]
+
+d { hsh }     
+d { array }
\ No newline at end of file</diff>
      <filename>examples.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'logger'
 require 'rubygems'
-gem 'spicycode-micronaut', &quot;= 0.0.4&quot;
+gem 'spicycode-micronaut', &quot;~&gt; 0.1.0&quot;
 gem 'mocha'
 require &quot;mocha&quot;
 require 'micronaut'
@@ -13,4 +13,8 @@ ensure
   $VERBOSE = old_verbose
 end
 
+Micronaut.configure do |config|
+  config.mock_with :mocha
+end
+
 Micronaut::Runner.autorun
\ No newline at end of file</diff>
      <filename>examples/example_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -45,14 +45,14 @@ describe LogBuddy::Mixin, &quot; behavior&quot; do
       d {'hi man'}
     end
     
-    it &quot;should log a plain arg&quot; do
-      LogBuddy.expects(:debug).with('hey yo')
+    it &quot;should log a plain method call as is, nothing fancy&quot; do
+      LogBuddy.expects(:debug).with(&quot;hey yo&quot;)
       d 'hey yo'
     end
     
-    it &quot;logs both if given an arg and a block&quot; do
-      LogBuddy.expects(:debug).with('hi mom')
-      LogBuddy.expects(:debug).with(%[foo = 'foo'\n])
+    it &quot;logs both argument and resulting value if using block from&quot; do
+      LogBuddy.expects(:debug).with(&quot;hi mom&quot;)
+      LogBuddy.expects(:debug).with(%[foo = &quot;foo&quot;\n])
       foo = &quot;foo&quot;
       d(&quot;hi mom&quot;) { foo }
     end
@@ -62,32 +62,32 @@ describe LogBuddy::Mixin, &quot; behavior&quot; do
     end
     
     it &quot;should output only local vars in the block&quot; do
-      LogBuddy.expects(:debug).with(%[a = 'foo'\n])
+      LogBuddy.expects(:debug).with(%[a = &quot;foo&quot;\n])
       b = &quot;bad&quot;
       a = &quot;foo&quot;
       d { a }
     end
   
     it &quot;should output instance vars&quot; do
-      LogBuddy.expects(:debug).with(%[@a = 'foo'\n])
+      LogBuddy.expects(:debug).with(%[@a = &quot;foo&quot;\n])
       @a = &quot;foo&quot;
       d { @a }
     end
     
     it &quot;should output constants&quot; do
       FOO_CONST = &quot;yo!&quot;
-      LogBuddy.expects(:debug).with(%[FOO_CONST = 'yo!'\n])
+      LogBuddy.expects(:debug).with(%[FOO_CONST = &quot;yo!&quot;\n])
       d { FOO_CONST }
     end
   
     it &quot;should output class vars&quot; do
-      LogBuddy.expects(:debug).with(%[@@class_var = 'hi'\n])
+      LogBuddy.expects(:debug).with(%[@@class_var = &quot;hi&quot;\n])
       @@class_var = &quot;hi&quot;
       d { @@class_var }
     end
   
     it &quot;should output method calls&quot; do
-      LogBuddy.expects(:debug).with(%[SomeModule.say_something(&quot;dude!!!!&quot;) = 'hello dude!!!!'\n])
+      LogBuddy.expects(:debug).with(%[SomeModule.say_something(&quot;dude!!!!&quot;) = &quot;hello dude!!!!&quot;\n])
       d { SomeModule.say_something(&quot;dude!!!!&quot;) }
     end 
     
@@ -95,9 +95,9 @@ describe LogBuddy::Mixin, &quot; behavior&quot; do
       local1 = '1'
       local2 = '2'
       @ivar1 = '1'
-      LogBuddy.expects(:debug).with(%[local1 = '1'\n])
-      LogBuddy.expects(:debug).with(%[local2 = '2'\n])
-      LogBuddy.expects(:debug).with(%[@ivar1 = '1'\n])
+      LogBuddy.expects(:debug).with(%[local1 = &quot;1&quot;\n])
+      LogBuddy.expects(:debug).with(%[local2 = &quot;2&quot;\n])
+      LogBuddy.expects(:debug).with(%[@ivar1 = &quot;1&quot;\n])
       d { local1; local2; @ivar1 }
     end
     
@@ -106,6 +106,22 @@ describe LogBuddy::Mixin, &quot; behavior&quot; do
       d { SomeModule.raise_runtime_error }
     end
     
+    it &quot;logs things okay with inline rdoc&quot; do
+      LogBuddy.stubs(:debug)
+      hsh = {:foo=&gt;&quot;bar&quot;, &quot;key&quot;=&gt;&quot;value&quot;}
+      d { hsh } # hsh = {:foo=&gt;&quot;bar&quot;, &quot;key&quot;=&gt;&quot;value&quot;}
+    end
+    
+    it &quot;logs inspected version of hashes and arrays&quot; do
+      hsh = { :peanut_butter =&gt; &quot;jelly&quot;, &quot;awesome_numbers&quot; =&gt; [3,7,22]}
+      different_hash_output_orders = [
+        %[hsh = {&quot;awesome_numbers&quot;=&gt;[3, 7, 22], :peanut_butter=&gt;&quot;jelly&quot;}\n],
+        %[hsh = {:peanut_butter=&gt;&quot;jelly&quot;, &quot;awesome_numbers&quot;=&gt;[3, 7, 22]}\n]
+      ]
+      LogBuddy.logger.expects(:debug).with(any_of(*different_hash_output_orders))
+      d { hsh }
+    end 
+    
   end
   
   describe &quot;obj_to_string&quot; do
@@ -140,7 +156,7 @@ describe LogBuddy::Mixin, &quot; behavior&quot; do
     before { Logger.any_instance.stubs(:debug) }
     it &quot;logs to stdout as well as the default logger&quot; do
       LogBuddy.init :log_to_stdout =&gt; true
-      LogBuddy.expects(:stdout_puts).with(%[&quot;foo&quot; = 'foo'\n])
+      LogBuddy.expects(:stdout_puts).with(%[&quot;foo&quot; = &quot;foo&quot;\n])
       d { &quot;foo&quot; }
     end
     </diff>
      <filename>examples/log_example.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,8 +17,7 @@ module LogBuddy
         logged_line = LogBuddy.read_line(caller[0])
         arguments = LogBuddy.parse_args(logged_line)
         arguments.each do |arg|
-          result = eval(arg, blk.binding)
-          LogBuddy.debug(%[#{arg} = '#{result}'\n])
+          LogBuddy.arg_and_blk_debug(arg, blk)
         end
       rescue RuntimeError =&gt; e
         LogBuddy.debug &quot;LogBuddy caught an exception: #{e.message}&quot;</diff>
      <filename>lib/log_buddy/mixin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,31 +1,26 @@
 module LogBuddy
   module Utils
   
-    def obj_to_string(obj)
-      case obj
-      when ::String
-        obj
-      when ::Exception
-        &quot;#{ obj.message } (#{ obj.class })\n&quot; &lt;&lt;
-          (obj.backtrace || []).join(&quot;\n&quot;)
-      else
-        obj.inspect
-      end
-    end
-    
-    def debug(str)
+    def debug(obj)
+      str = obj_to_string(obj)
       stdout_puts(str) if log_to_stdout?
       logger.debug(str)
     end
+    
+    def arg_and_blk_debug(arg, blk)
+      result = eval(arg, blk.binding)
+      result_str = obj_to_string(result, :quote_strings =&gt; true)
+      LogBuddy.debug(%[#{arg} = #{result_str}\n])
+    end
   
     def stdout_puts(str)
       puts str
     end
-  
+    
     # Returns array of arguments in the block
-    # You must ues the brace form (ie d { &quot;hi&quot; }) and not do...end
+    # You must use the brace form (ie d { &quot;hi&quot; }) and not do...end
     def parse_args(logged_line)
-      block_contents = logged_line[/\{(.*)\}/, 1]
+      block_contents = logged_line[/\{(.*?)\}/, 1]
       args = block_contents.split(&quot;;&quot;).map {|arg| arg.strip }
     end
   
@@ -37,5 +32,19 @@ module LogBuddy
     
       lines[line_number - 1]
     end
+    
+    def obj_to_string(obj, options = {})
+      quote_strings = options.delete(:quote_strings)
+      case obj
+      when ::String
+        quote_strings ? %[&quot;#{obj}&quot;] : obj 
+      when ::Exception
+        &quot;#{ obj.message } (#{ obj.class })\n&quot; &lt;&lt;
+          (obj.backtrace || []).join(&quot;\n&quot;)
+      else
+        obj.inspect
+      end
+    end
+    
   end
 end
\ No newline at end of file</diff>
      <filename>lib/log_buddy/utils.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,8 @@
 module LogBuddy
   module VERSION #:nodoc:
     MAJOR = 0
-    MINOR = 1
-    TINY  = 5
+    MINOR = 2
+    TINY  = 0
 
     STRING = [MAJOR, MINOR, TINY].join('.')
   end</diff>
      <filename>lib/log_buddy/version.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,11 +2,11 @@
 
 Gem::Specification.new do |s|
   s.name = %q{log_buddy}
-  s.version = &quot;0.1.5&quot;
+  s.version = &quot;0.2.0&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 1.2&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Rob Sanheim - Relevance&quot;]
-  s.date = %q{2008-12-05}
+  s.date = %q{2008-12-09}
   s.description = %q{Log statements along with their name easily.  Mixin a logger everywhere when you need it.}
   s.email = %q{opensource@thinkrelevance.com}
   s.extra_rdoc_files = [&quot;CHANGELOG&quot;, &quot;LICENSE&quot;, &quot;README.rdoc&quot;, &quot;lib/log_buddy/mixin.rb&quot;, &quot;lib/log_buddy/utils.rb&quot;, &quot;lib/log_buddy/version.rb&quot;, &quot;lib/log_buddy.rb&quot;, &quot;log_buddy.gemspec&quot;]</diff>
      <filename>log_buddy.gemspec</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>spec/mixin_spec.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>81963708d2947d0316f988f497900f756b5873d5</id>
    </parent>
  </parents>
  <author>
    <name>Rob Sanheim</name>
    <email>rsanheim@gmail.com</email>
  </author>
  <url>http://github.com/relevance/log_buddy/commit/7ac1d3c7aaaa9c68a1335592ac1ed92738f1b1ec</url>
  <id>7ac1d3c7aaaa9c68a1335592ac1ed92738f1b1ec</id>
  <committed-date>2008-12-08T21:58:41-08:00</committed-date>
  <authored-date>2008-12-08T21:58:41-08:00</authored-date>
  <message>release 0.2.0 - better logging output (use inspect when appropriate), better parsing when there is inline rdoc; update micronaut</message>
  <tree>7f9fb4670ebce2f1f25d66c550208392d619cc61</tree>
  <committer>
    <name>Rob Sanheim</name>
    <email>rsanheim@gmail.com</email>
  </committer>
</commit>
