<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,6 @@
 # ++
 # Instrument, Copyright (c) 2008 Day Automation Systems, Inc.
-# 
+#
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
 # &quot;Software&quot;), to deal in the Software without restriction, including
@@ -8,10 +8,10 @@
 # distribute, sublicense, and/or sell copies of the Software, and to
 # permit persons to whom the Software is furnished to do so, subject to
 # the following conditions:
-# 
+#
 # The above copyright notice and this permission notice shall be
 # included in all copies or substantial portions of the Software.
-# 
+#
 # THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -52,7 +52,7 @@ module Instrument
     # execution context and returns the rendered template output as a
     # String.  The block should ensure that all necessary libraries are
     # loaded.
-    # 
+    #
     #  @param [Array] type_list the template types being registered
     #  @yield the block generates the template output
     #  @yieldparam [String] the template input
@@ -60,7 +60,7 @@ module Instrument
     def self.register_type(*type_list, &amp;block)
       # Ensure the @@type_map is initialized.
       self.types
-      
+
       for type in type_list
         # Normalize to symbol
         type = type.to_s.to_sym
@@ -68,7 +68,7 @@ module Instrument
       end
       return nil
     end
-    
+
     ##
     # Returns a list of registered template types.
     #
@@ -114,7 +114,7 @@ module Instrument
       @@control_subclasses.uniq!
       super
     end
-    
+
     ##
     # Looks up a Control by name.
     #
@@ -132,7 +132,7 @@ module Instrument
       end
       return nil
     end
-    
+
     ##
     # Creates a new Control object.  Subclasses should not override this.
     #
@@ -143,19 +143,19 @@ module Instrument
       @options = options
       @block = block
     end
-    
+
     ##
     # Returns the options that were used to create the Control.
     #
     #  @return [Hash] a set of options required by the control
     attr_reader :options
-    
+
     ##
     # Returns the block that was supplied when the Control was created.
     #
     #  @return [Proc] the block used to create the Control
     attr_reader :block
-    
+
     ##
     # Returns the Control's name.  By default, this is the control's class
     # name, tranformed into   This method may be overridden by a Control.
@@ -170,7 +170,7 @@ module Instrument
         tr(&quot;-&quot;, &quot;_&quot;).
         downcase
     end
-    
+
     ##
     # Returns a list of formats that this control may be rendered as.
     #
@@ -247,7 +247,7 @@ module Instrument
         end
       end
     end
-    
+
     ##
     # Renders a control in a specific format.
     #
@@ -267,7 +267,7 @@ module Instrument
         next if full_name.index(File.expand_path(load_path)) != 0
 
         templates = Dir.glob(full_name + &quot;.#{format}.*&quot;)
-        
+
         # Select the first template matched.  If there's more than one,
         # the extras will be ignored.
         template = templates.first</diff>
      <filename>lib/instrument/control.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 # ++
 # Instrument, Copyright (c) 2008 Day Automation Systems, Inc.
-# 
+#
 # Permission is hereby granted, free of charge, to any person obtaining
 # a copy of this software and associated documentation files (the
 # &quot;Software&quot;), to deal in the Software without restriction, including
@@ -8,10 +8,10 @@
 # distribute, sublicense, and/or sell copies of the Software, and to
 # permit persons to whom the Software is furnished to do so, subject to
 # the following conditions:
-# 
+#
 # The above copyright notice and this permission notice shall be
 # included in all copies or substantial portions of the Software.
-# 
+#
 # THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -31,13 +31,13 @@ module Instrument
   # == Example
   #
   #   include Instrument::ControlBuilder
-  #   
+  #
   #   select_control(:name =&gt; &quot;base&quot;, :selections =&gt; [
   #     {:label =&gt; &quot;One&quot;, :value =&gt; &quot;1&quot;},
   #     {:label =&gt; &quot;Two&quot;, :value =&gt; &quot;2&quot;},
   #     {:label =&gt; &quot;Three&quot;, :value =&gt; &quot;3&quot;},
   #     {:label =&gt; &quot;Four&quot;, :value =&gt; &quot;4&quot;}
-  #   ]).to_xhtml  
+  #   ]).to_xhtml
   module ControlBuilder
     ##
     # Prevents Kernel#select from being accidentally called.
@@ -59,9 +59,9 @@ module Instrument
       super
     end
 
-    ## 
+    ##
     # Initializes Instrument::Control subclasses by name.
-    # 
+    #
     #  @param [Symbol] method the method being called
     #  @param [Array] params the method's parameters
     #  @param [Proc] block the block being passed to the method
@@ -76,6 +76,6 @@ module Instrument
           &quot;undefined method `#{method}' for &quot; +
           &quot;#{self.inspect}:#{self.class.name}&quot;
       end
-    end    
+    end
   end
 end</diff>
      <filename>lib/instrument/control_builder.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require &quot;uuidtools&quot;
 require &quot;time&quot;
-xml.instruct! :xml, :version=&gt;&quot;1.0&quot; 
+xml.instruct! :xml, :version=&gt;&quot;1.0&quot;
 xml.feed(&quot;xmlns&quot; =&gt; &quot;http://www.w3.org/2005/Atom&quot;, &quot;xml:lang&quot; =&gt; &quot;en_US&quot;) do
   xml.id(&quot;urn:uuid:4a11e26e-239c-11dd-adf9-001ec2186a45&quot;)
   xml.title(&quot;Select Control&quot;)</diff>
      <filename>spec/control_templates/select_control.atom.rxml</filename>
    </modified>
    <modified>
      <diff>@@ -19,34 +19,34 @@ describe Instrument::ControlBuilder, &quot;extending another object&quot; do
   class ExtendedObject
     include Instrument::ControlBuilder
   end
-  
+
   before :all do
     @extended_object = ExtendedObject.new
   end
-  
+
   it &quot;should enable mixins to function&quot; do
     @extended_object.image_control.class.should == ImageControl
     @extended_object.select.class.should == Select
   end
-  
+
   it &quot;should still raise an Exception for non-existent methods&quot; do
     (lambda do
       @extended_object.bogus
     end).should raise_error(NoMethodError)
   end
-  
+
   it &quot;should respond to a normal message&quot; do
     @extended_object.should respond_to(:to_s)
   end
-  
+
   it &quot;should not respond to a bogus message&quot; do
     @extended_object.should_not respond_to(:bogus)
   end
-  
+
   it &quot;should respond to a valid control name message&quot; do
     @extended_object.should respond_to(:image_control)
   end
-  
+
   it &quot;should not respond to an invalid control name message&quot; do
     @extended_object.should_not respond_to(:bogus_control)
   end</diff>
      <filename>spec/instrument/control_builder_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,11 +6,11 @@ class SelectControl &lt; Instrument::Control
     def initialize(label, value)
       @label, @value = label, value
     end
-    
+
     attr_accessor :label
     attr_accessor :value
   end
-  
+
   def element_id
     return self.options[:id] || self.options[:name]
   end
@@ -18,7 +18,7 @@ class SelectControl &lt; Instrument::Control
   def element_name
     return self.options[:name]
   end
-  
+
   def selections
     if !defined?(@selections) || @selections == nil
       @selections = []
@@ -70,7 +70,7 @@ describe Instrument::Control do
     control = Instrument::Control.new(&amp;proc)
     control.block.should eql(proc)
   end
-  
+
   it &quot;should still raise an Exception for non-existent methods&quot; do
     (lambda do
       Instrument::Control.new.bogus
@@ -100,25 +100,25 @@ describe Instrument::Control do
       SelectControl.new.to_xml
     end).should raise_error(ZeroDivisionError)
   end
-  
+
   it &quot;should correctly delegate messages to the delegate object&quot; do
     SelectControl.new(:delegate =&gt; [1,2,3]).size.should == 3
   end
-  
+
   it &quot;should have the correct list of formats&quot; do
     SelectControl.formats.sort.should == [
       &quot;atom&quot;, &quot;html&quot;, &quot;json&quot;, &quot;txt&quot;, &quot;xhtml&quot;, &quot;xml&quot;
     ]
   end
-  
+
   it &quot;should have no formats listed for the base class&quot; do
     Instrument::Control.formats.should == []
   end
-  
+
   it &quot;should respond to a normal message&quot; do
     SelectControl.new.should respond_to(:render)
   end
-  
+
   it &quot;should not respond to a bogus message&quot; do
     SelectControl.new.should_not respond_to(:bogus)
   end
@@ -127,25 +127,25 @@ describe Instrument::Control do
     Instrument::Control.new.should respond_to(:select_control)
     SelectControl.new.should respond_to(:select_control)
   end
-  
+
   it &quot;should not respond to invalid subclass messages&quot; do
     SelectControl.new.should_not respond_to(:bogus_control)
   end
-  
+
   it &quot;should respond to a valid format conversion message&quot; do
     SelectControl.new.should respond_to(:to_atom)
   end
-  
+
   it &quot;should not respond to an invalid format conversion message&quot; do
     SelectControl.new.should_not respond_to(:to_bogus)
   end
-  
+
   it &quot;should respond to messages available on a delegated object&quot; do
     SelectControl.new(:delegate =&gt; []).should respond_to(:&lt;&lt;)
     SelectControl.new(:delegate =&gt; 42).should respond_to(:&gt;&gt;)
     SelectControl.new(:delegate =&gt; 42).should respond_to(:&lt;&lt;)
   end
-  
+
   it &quot;should not respond to messages unavailable on a delegated object&quot; do
     SelectControl.new(:delegate =&gt; []).should_not respond_to(:&gt;&gt;)
   end
@@ -162,7 +162,7 @@ describe Instrument::Control, &quot;when rendered as XHTML with Haml&quot; do
   it &quot;should have the correct id and name&quot; do
     @xhtml.should match(/&lt;select id=&quot;base&quot; name=&quot;base&quot;&gt;/)
   end
-  
+
   it &quot;should have options for all of the given selections&quot; do
     @xhtml.should match(/&lt;option value=&quot;First&quot;/)
     @xhtml.should match(/&lt;option value=&quot;Second&quot;/)
@@ -185,7 +185,7 @@ describe Instrument::Control, &quot;when rendered as HTML with Markaby&quot; do
     @html.should match(/id=&quot;base&quot;/)
     @html.should match(/name=&quot;base&quot;/)
   end
-  
+
   it &quot;should have options for all of the given selections&quot; do
     @html.should match(/&lt;option value=&quot;First&quot;/)
     @html.should match(/&lt;option value=&quot;Second&quot;/)
@@ -205,7 +205,7 @@ describe Instrument::Control, &quot;when rendered as Atom with XML Builder&quot; do
   it &quot;should have the correct id and name&quot; do
     @atom.should match(/&lt;title&gt;Select Control&lt;\/title&gt;/)
   end
-  
+
   it &quot;should have options for all of the given selections&quot; do
     @atom.should match(/&lt;title&gt;First&lt;\/title&gt;/)
     @atom.should match(/&lt;title&gt;Second&lt;\/title&gt;/)
@@ -226,7 +226,7 @@ describe Instrument::Control, &quot;when rendered as JSON with Erubis&quot; do
     @atom.should match(/&quot;id&quot;: &quot;base&quot;/)
     @atom.should match(/&quot;name&quot;: &quot;base&quot;/)
   end
-  
+
   it &quot;should have options for all of the given selections&quot; do
     @atom.should match(/&quot;label&quot;: &quot;First&quot;/)
     @atom.should match(/&quot;value&quot;: &quot;First&quot;/)</diff>
      <filename>spec/instrument/control_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,12 +9,12 @@
         margin: 0;
         padding: 0;
       }
-      
+
       body {
         font-family: lucida grande, verdana, sans-serif;
         margin: 1em;
       }
-      
+
       a {
         color: #880000;
       }
@@ -22,18 +22,18 @@
       a:visited {
         color: #333333;
       }
-      
+
       h1 {
         font-size: 2em;
         margin: 0 0 0.8em 0;
         text-align: center;
       }
-      
+
       h2 {
         font-size: 1em;
         margin: 0.8em 0;
       }
-      
+
       p {
         margin: 0.8em 0;
       }
@@ -42,7 +42,7 @@
         font-size: 0.9em;
         margin: 0 0 0 1.5em;
       }
-      
+
       div {
         width: 50%;
         margin: 0 auto;
@@ -55,7 +55,7 @@
         body {
           font-size: 0.9em;
         }
-        
+
         a {
           text-decoration: none;
           color: #000;</diff>
      <filename>website/index.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>eed30a40627cb83cc59270bd44bd378c7d8f9267</id>
    </parent>
  </parents>
  <author>
    <name>Bob Aman</name>
    <email>bob@sporkmonger.com</email>
  </author>
  <url>http://github.com/sporkmonger/instrument/commit/c574b0ba731d1f1c200365b456a1966bb0db359b</url>
  <id>c574b0ba731d1f1c200365b456a1966bb0db359b</id>
  <committed-date>2008-10-23T11:32:27-07:00</committed-date>
  <authored-date>2008-10-23T11:32:27-07:00</authored-date>
  <message>Fixed trailing whitespace.</message>
  <tree>d85141e5fee5b654df3c3b03f52dd8921fe05c5f</tree>
  <committer>
    <name>Bob Aman</name>
    <email>bob@sporkmonger.com</email>
  </committer>
</commit>
