<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Generators</filename>
    </added>
    <added>
      <filename>lib/generators/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/hao_de_generator.rb</filename>
    </added>
    <added>
      <filename>lib/generators/hao_de_nested_resource.rb</filename>
    </added>
    <added>
      <filename>lib/generators/hao_de_resource.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/controllers/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/helpers/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/models/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/views/%file_name%/form.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/views/%file_name%/index.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/app/views/%file_name%/show.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/spec/controllers/%file_name%_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/spec/models/%file_name%_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/spec/views/%file_name%/form.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/spec/views/%file_name%/index.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/nested_resource/spec/views/%file_name%/show.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/controllers/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/helpers/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/models/%file_name%.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/views/%file_name%/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/views/%file_name%/form.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/views/%file_name%/index.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/views/%file_name%/show.html.haml</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/app/views/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/.DS_Store</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/controllers/%file_name%_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/models/%file_name%_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/views/%file_name%/form.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/views/%file_name%/index.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/views/%file_name%/show.html.haml_spec.rb</filename>
    </added>
    <added>
      <filename>lib/generators/templates/resource/spec/views/.DS_Store</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/all-wcprops</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/entries</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/format</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ar.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-bg.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ca.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-cs.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-da.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-de.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-es.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-fi.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-fr.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-he.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-hu.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-id.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-is.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-it.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ja.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ko.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-lt.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-lv.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-nl.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-no.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-pl.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-pt-BR.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ro.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-ru.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-sk.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-sv.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-th.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-tr.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-zh-CN.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/prop-base/ui.datepicker-zh-TW.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/jquery.ui.i18n.all.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ar.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-bg.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ca.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-cs.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-da.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-de.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-eo.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-es.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-fi.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-fr.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-he.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-hr.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-hu.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-hy.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-id.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-is.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-it.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ja.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ko.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-lt.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-lv.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-nl.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-no.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-pl.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-pt-BR.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ro.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-ru.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-sk.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-sl.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-sv.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-th.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-tr.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-uk.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-zh-CN.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/.svn/text-base/ui.datepicker-zh-TW.js.svn-base</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/jquery.ui.i18n.all.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ar.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-bg.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ca.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-cs.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-da.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-de.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-eo.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-es.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-fi.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-fr.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-he.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-hr.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-hu.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-hy.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-id.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-is.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-it.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ja.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ko.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-lt.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-lv.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-nl.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-no.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-pl.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-pt-BR.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ro.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-ru.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-sk.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-sl.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-sv.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-th.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-tr.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-uk.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-zh-CN.js</filename>
    </added>
    <added>
      <filename>public/javascripts/ui/i18n/ui.datepicker-zh-TW.js</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,9 +1,9 @@
 require 'rubygems'
 require 'rake/gempackagetask'
-require 'rubygems/specification'
-require 'date'
-require 'merb-core/version'
+require &quot;rake/rdoctask&quot;
+require &quot;extlib&quot;
 require 'merb-core/tasks/merb_rake_helper'
+require &quot;spec/rake/spectask&quot;
 
 NAME = &quot;merb-simple-forms&quot;
 GEM_VERSION = &quot;0.0.1&quot;
@@ -11,9 +11,10 @@ AUTHOR = &quot;Your Name&quot;
 EMAIL = &quot;Your Email&quot;
 HOMEPAGE = &quot;http://merbivore.com/&quot;
 SUMMARY = &quot;Merb plugin that provides ...&quot;
+PKG_BUILD   = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
 
 spec = Gem::Specification.new do |s|
-  s.rubyforge_project = 'merb'
+  s.rubyforge_project = 'merb-simple-forms'
   s.name = NAME
   s.version = GEM_VERSION
   s.platform = Gem::Platform::RUBY
@@ -24,33 +25,42 @@ spec = Gem::Specification.new do |s|
   s.author = AUTHOR
   s.email = EMAIL
   s.homepage = HOMEPAGE
-  s.add_dependency('merb', '&gt;= 0.9.8')
   s.require_path = 'lib'
-  s.files = %w(LICENSE README Rakefile TODO) + Dir.glob(&quot;{lib,spec}/**/*&quot;)
-  
+  s.files = %w(LICENSE README Rakefile Generators TODO) + Dir.glob(&quot;{lib,spec,public/Library/Ruby/Gems/1.8/gems/templater-0.3.3/}/**/*&quot;)
 end
 
 Rake::GemPackageTask.new(spec) do |pkg|
   pkg.gem_spec = spec
 end
 
-desc &quot;install the plugin locally&quot;
-task :install =&gt; [:package] do
-  sh %{#{sudo} gem install #{install_home} pkg/#{NAME}-#{GEM_VERSION} --no-update-sources}
+desc &quot;Install the gem&quot;
+task :install do
+  Merb::RakeHelper.install(NAME, :version =&gt; GEM_VERSION)
 end
 
-desc &quot;create a gemspec file&quot;
-task :make_spec do
-  File.open(&quot;#{NAME}.gemspec&quot;, &quot;w&quot;) do |file|
+desc &quot;Uninstall the gem&quot;
+task :uninstall do
+  Merb::RakeHelper.uninstall(NAME, :version =&gt; GEM_VERSION)
+end
+
+desc &quot;Create a gemspec file&quot;
+task :gemspec do
+  File.open(&quot;#{GEM_NAME}.gemspec&quot;, &quot;w&quot;) do |file|
     file.puts spec.to_ruby
   end
 end
 
-namespace :jruby do
-
-  desc &quot;Run :package and install the resulting .gem with jruby&quot;
-  task :install =&gt; :package do
-    sh %{#{sudo} jruby -S gem install #{install_home} pkg/#{NAME}-#{GEM_VERSION}.gem --no-rdoc --no-ri}
+desc &quot;Run all examples (or a specific spec with TASK=xxxx)&quot;
+Spec::Rake::SpecTask.new('spec') do |t|
+  t.spec_opts  = [&quot;-cfs&quot;]
+  t.spec_files = begin
+    if ENV[&quot;TASK&quot;] 
+      ENV[&quot;TASK&quot;].split(',').map { |task| &quot;spec/**/#{task}_spec.rb&quot; }
+    else
+      FileList['spec/**/*_spec.rb']
+    end
   end
-
 end
+
+desc 'Default: run spec examples'
+task :default =&gt; 'spec'
\ No newline at end of file</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -41,6 +41,8 @@ module Merb
           text_area(options[:value], options)
         end
         
+        alias_method :control_textarea, :control_text_area
+        
         def control_password_field(options={})
           password_field(options)
         end
@@ -60,6 +62,25 @@ module Merb
         
         # Controls a computer size in bytes, KB, MB, GB and TB
         def control_size(options={})
+          # Here is the javascript that does the conversion
+          javascript_lib = &lt;&lt;JS
+          &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
+          function initialize_size_field(id) {
+            $(&quot;#&quot;+id+&quot;_converted&quot;).bind('change', function() { update_size_field_value(id) });
+            $(&quot;#&quot;+id+&quot;_unit&quot;).bind('change', function() { update_size_field_value(id) });
+          }
+
+          function update_size_field_value(id) {
+            var converted_value = $(&quot;#&quot;+id+&quot;_converted&quot;).val();
+            var unit = $(&quot;#&quot;+id+&quot;_unit&quot;).val();
+            var hidden_field = $(&quot;#&quot;+id);
+            if (unit==&quot;B&quot;) { hidden_field.val(converted_value); }
+            if (unit==&quot;KB&quot;) { hidden_field.val(converted_value * 1024); }
+            if (unit==&quot;MB&quot;) { hidden_field.val(converted_value * 1024 * 1024); }
+            if (unit==&quot;GB&quot;) { hidden_field.val(converted_value * 1024 * 1024 * 1024); }
+            if (unit==&quot;TB&quot;) { hidden_field.val(converted_value * 1024 * 1024 * 1024 * 1024); }  
+          &lt;/script&gt;
+JS
           html = &quot;&quot;
           if options[:value] != nil
             size = Kernel.Float(options[:value])
@@ -79,9 +100,64 @@ module Merb
           html &lt;&lt; select(:id =&gt; options[:id]+&quot;_unit&quot;, :name =&gt; options[:name]+&quot;[unit]&quot;, :collection =&gt; [[&quot;B&quot;, &quot;B&quot;], [&quot;KB&quot;, &quot;KB&quot;], [&quot;MB&quot;, &quot;MB&quot;], [&quot;GB&quot;, &quot;GB&quot;], [&quot;TB&quot;, &quot;TB&quot;]], :selected =&gt; unit)
           html &lt;&lt; hidden_field(options)
           # This javascript looks at the _converted text field and unit select and updates the real value in the hidden field 
-          html &lt;&lt; &quot;&lt;script type=\&quot;text/javascript\&quot; charset=\&quot;utf-8\&quot;&gt;$(document).ready(function(){initialize_size_field('#{options[:id]}');});&lt;/script&gt;&quot;
+          html &lt;&lt; javascript_lib
+          html &lt;&lt; document_ready(&quot;initialize_size_field('#{options[:id]}');&quot;)
+          html
+        end
+        
+        def control_date_picker(options={})
+          # format the date for the date picker (dm does the conversion in the other way just fine)
+          options[:value] = options[:value].strftime(&quot;%m/%d/%Y&quot;) if options[:value].class == Time
+          
+          html = text_field(options)
+          html &lt;&lt; document_ready(&quot;$('##{options[:id]}').datepicker();&quot;)
           html
         end
+        
+        alias_method :control_date, :control_date_picker
+        alias_method :control_date_selector, :control_date_picker        
+      
+        def control_time_picker(options={})
+          # format the time for the date picker (dm does the conversion in the other way just fine)
+          options[:value] = options[:value].strftime(&quot;%I:%M%p&quot;).downcase if options[:value].class == Time
+          
+          html = text_field(options)
+          html &lt;&lt; document_ready(&quot;$('##{options[:id]}').timepicker();&quot;)
+          html          
+        end
+        
+        alias_method :control_time, :control_time_picker
+        alias_method :control_time_selector, :control_time_picker        
+      
+        def control_date_and_time(options={})
+          date_picker = control_date_picker(options.merge(:id =&gt; options[:id]+&quot;_date&quot;, :name =&gt; nil))
+          time_picker = control_time_picker(options.merge(:id =&gt; options[:id]+&quot;_time&quot;, :name =&gt; nil))
+          hidden_field = hidden_field(options)
+          
+          javascript = &lt;&lt;JAVASCRIPT
+            function update_date_and_time(id) {
+              console.log(&quot;update date and time id: &quot;+id);
+              console.log(&quot;date is &quot;+$(&quot;#&quot;+id+&quot;_date&quot;).val());
+              console.log(&quot;time is &quot;+$(&quot;#&quot;+id+&quot;_time&quot;).val());
+              $(&quot;#&quot;+id).val($(&quot;#&quot;+id+&quot;_date&quot;).val() + &quot; &quot; + $(&quot;#&quot;+id+&quot;_time&quot;).val());
+            }
+            
+            $(&quot;##{options[:id]}_date&quot;).bind('change', function() { update_date_and_time('#{options[:id]}') });
+            $(&quot;##{options[:id]}_time&quot;).bind('change', function() { update_date_and_time('#{options[:id]}') });
+            $(&quot;#h_#{options[:id]}_time&quot;).bind('change', function() { update_date_and_time('#{options[:id]}') });
+            $(&quot;#m_#{options[:id]}_time&quot;).bind('change', function() { update_date_and_time('#{options[:id]}') });
+            $(&quot;#p_#{options[:id]}_time&quot;).bind('change', function() { update_date_and_time('#{options[:id]}') });
+JAVASCRIPT
+          
+          date_picker + time_picker + hidden_field + document_ready(javascript)
+        end
+        
+        alias_method :control_date_and_time_picker, :control_date_and_time
+        alias_method :control_date_and_time_selector, :control_date_and_time
+      
+        def document_ready(script)
+          &quot;&lt;script type=\&quot;text/javascript\&quot; charset=\&quot;utf-8\&quot;&gt;$(document).ready(function(){ #{script} } );&lt;/script&gt;&quot;
+        end
       end
     end
   end</diff>
      <filename>lib/merb-simple-forms/controls.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,12 @@ module Merb
       def render_form(object_symbol, form_definition={})
         object = (object_symbol==nil) ? nil : self.instance_variable_get(&quot;@#{object_symbol.to_s}&quot;)
 
-        if ((form_definition=={}) and (object!=nil))
-          form_definition = object.class.form_definition
+        if (form_definition=={})
+          if (object!=nil) and object.class.respond_to?(:form_definition)
+            form_definition = object.class.form_definition
+          else
+            form_definition = self.send(object_symbol.to_s+&quot;_form_definition&quot;)
+          end
         end
 
         form = &quot;\n&quot;</diff>
      <filename>lib/merb-simple-forms/simple-forms-helpers.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>public/javascripts/simple-forms.js</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>c0bf52e0144940b74915837d8d3d101fc10f3e2e</id>
    </parent>
  </parents>
  <author>
    <name>Maxime</name>
    <email>maxime@ekohe.com</email>
  </author>
  <url>http://github.com/maxime/merb-simple-forms/commit/e61a76f120c8734da0e30d7821f605bc61863b9b</url>
  <id>e61a76f120c8734da0e30d7821f605bc61863b9b</id>
  <committed-date>2008-11-05T08:58:04-08:00</committed-date>
  <authored-date>2008-11-05T08:58:04-08:00</authored-date>
  <message>A lot of new generators</message>
  <tree>aa2b10f9ccbf0b600778ff61d613dad19e3640b3</tree>
  <committer>
    <name>Maxime</name>
    <email>maxime@ekohe.com</email>
  </committer>
</commit>
