<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/views/render_test/_clock.xaml</filename>
    </added>
    <added>
      <filename>app/views/render_test/clock.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/silverline/client/app_render_rb.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,6 +8,14 @@
             &lt;string&gt;app\views\posts\_posts.rb&lt;/string&gt;
             &lt;key&gt;app.rb&lt;/key&gt;
             &lt;string&gt;..\vsl\Merlin\Users\jimmysch\dynamic_silverlight\photoviewer\ruby\app.rb&lt;/string&gt;
+            &lt;key&gt;body.&lt;/key&gt;
+            &lt;string&gt;vendor\plugins\silverline\templates\body.html.erb&lt;/string&gt;
+            &lt;key&gt;dis&lt;/key&gt;
+            &lt;string&gt;vendor\rails\actionpack\lib\action_controller\dispatcher.rb&lt;/string&gt;
+            &lt;key&gt;dispatch&lt;/key&gt;
+            &lt;string&gt;vendor\rails\railties\lib\dispatcher.rb&lt;/string&gt;
+            &lt;key&gt;dispatcher&lt;/key&gt;
+            &lt;string&gt;vendor\rails\actionpack\lib\action_controller\dispatcher.rb&lt;/string&gt;
             &lt;key&gt;generator.rb&lt;/key&gt;
             &lt;string&gt;vendor\plugins\silverline\lib\silverline\essential\generator.rb&lt;/string&gt;
             &lt;key&gt;index.&lt;/key&gt;</diff>
      <filename>.eprj</filename>
    </modified>
    <modified>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <filename>README</filename>
    </modified>
    <modified>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,4 @@
 class RenderTestController &lt; ApplicationController
   layout &quot;posts&quot;
   
-  def test_action_xaml
-    render :action =&gt; &quot;test_action_xaml&quot;
-  end
 end</diff>
      <filename>app/controllers/render_test_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,4 +15,4 @@
     &lt;/tr&gt;
     &lt;% end %&gt;
 &lt;/table&gt;
-&lt;% end %&gt;
\ No newline at end of file
+&lt;% end %&gt;</diff>
      <filename>app/views/posts/_posts.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,30 @@
-require 'silverlight'
-
-class Posts &lt; SilverlightApplication
-  def start
-    @posts = get &quot;posts&quot;, :format =&gt; 'ruby'
-    render :partial =&gt; &quot;posts/posts&quot;, :update =&gt; &quot;posts&quot;
-  end
+download &quot;/posts.json&quot; do |s, a|
+  @posts = JSON.new.parse(a.result)
+  render :partial =&gt; &quot;posts/posts&quot;, :update =&gt; &quot;posts&quot;
 end
 
-Posts.new.start
+#get &quot;posts&quot;, :format =&gt; 'ruby'
+#render_posts :update =&gt; &quot;posts&quot;
+
+def render_posts(options = {})
+  id, posts = options[:update], @posts
+  if @posts.empty?
+    output = &quot;No posts! Add one below!&quot;
+  else
+    output = &quot;&lt;table&gt;&quot;
+    output += &quot;  &lt;tr&gt;&quot;
+    posts.first.keys.each do |key|
+      output += &quot;    &lt;th&gt;#{key}&lt;/th&gt;&quot;
+    end
+    output += &quot;  &lt;/tr&gt;&quot;
+    posts.each do |post|
+      output += &quot;  &lt;tr&gt;&quot;
+      post.keys.each do |key|
+        output += &quot;    &lt;td&gt;#{post[key]}&lt;/td&gt;&quot;
+      end
+      output += &quot;  &lt;/tr&gt;&quot;
+    end
+    output += &quot;&lt;/table&gt;&quot;
+  end
+  document.send(id)[:innerHTML] = output
+end  </diff>
      <filename>app/views/posts/_posts.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 &lt;%= render :partial =&gt; &quot;test_xaml&quot;, :properties =&gt; {
 	 :width =&gt; &quot;640&quot;, :height =&gt; &quot;480&quot;
-} %&gt;
\ No newline at end of file
+} %&gt;</diff>
      <filename>app/views/render_test/test_xaml.html.erb</filename>
    </modified>
    <modified>
      <filename>config/boot.rb</filename>
    </modified>
    <modified>
      <filename>config/database.yml</filename>
    </modified>
    <modified>
      <filename>config/environment.rb</filename>
    </modified>
    <modified>
      <filename>config/environments/development.rb</filename>
    </modified>
    <modified>
      <filename>config/environments/production.rb</filename>
    </modified>
    <modified>
      <filename>config/environments/test.rb</filename>
    </modified>
    <modified>
      <filename>config/initializers/inflections.rb</filename>
    </modified>
    <modified>
      <filename>config/initializers/mime_types.rb</filename>
    </modified>
    <modified>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <filename>db/migrate/001_create_posts.rb</filename>
    </modified>
    <modified>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <filename>doc/README_FOR_APP</filename>
    </modified>
    <modified>
      <filename>log/production.log</filename>
    </modified>
    <modified>
      <filename>log/server.log</filename>
    </modified>
    <modified>
      <filename>log/test.log</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/Chiron.exe</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@
     &lt;add key=&quot;urlPrefix&quot; value=&quot;http://example.com/assemblies/&quot; /&gt;
     --&gt;
 
-	&lt;add key=&quot;urlPrefix&quot; value=&quot;/ironruby&quot; /&gt;
+    &lt;add key=&quot;urlPrefix&quot; value=&quot;/ironruby&quot; /&gt;
 
     &lt;!-- the location of language assemblies on disk --&gt;
     &lt;add key=&quot;localAssemblyPath&quot; value=&quot;.&quot; /&gt;</diff>
      <filename>public/ironruby/Chiron.exe.config</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/IronRuby.Libraries.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/IronRuby.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/Microsoft.Scripting.Core.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/Microsoft.Scripting.Silverlight.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>public/ironruby/Microsoft.Scripting.dll</filename>
    </modified>
    <modified>
      <filename>test/fixtures/posts.yml</filename>
    </modified>
    <modified>
      <filename>test/functional/posts_controller_test.rb</filename>
    </modified>
    <modified>
      <filename>test/functional/render_test_controller_test.rb</filename>
    </modified>
    <modified>
      <filename>test/test_helper.rb</filename>
    </modified>
    <modified>
      <filename>test/unit/post_test.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/init.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/lib/textmate_backtracer.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/lib/textmate_footnotes.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/lib/textmate_initialize.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/templates/rescues/template_error.erb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/test/mock_controller.rb</filename>
    </modified>
    <modified>
      <filename>vendor/plugins/footnotes-edge/test/textmate_footnotes_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,2 +1,6 @@
 require 'silverlight'
-SilverlightApplication.use_xaml :name =&gt; $PARAMS[:xaml_to_render]
\ No newline at end of file
+
+options = {:name =&gt; $PARAMS[:xaml_to_render]}
+options[:type] = Inflection.constantize($PARAMS[:xaml_type]) unless $PARAMS[:xaml_type].nil?
+
+SilverlightApplication.use_xaml options</diff>
      <filename>vendor/plugins/silverline/client/app_render_xaml.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,22 +21,20 @@ class Teleport &lt; SilverlightApplication
   private
   
     def find_client_links
-      $app.puts params[:client_links]
-      $app.puts @client_links.inspect
-      titles = @client_links.collect { |l| puts l.keys.inspect; l.fetch(&quot;title&quot;) }
-      $app.puts titles.inspect
+      # TODO: FIX THIS HACK! it should be l['title'] in the block!
+      titles = @client_links.collect { |l| l.values.last }
+      t =  document.get_elements_by_tag_name(&quot;a&quot;)[1].title.to_s
       document.get_elements_by_tag_name(&quot;a&quot;).select {
-        |a| titles.include?(a.title) &amp;&amp; a.rel == &quot;silverlight&quot;.to_clr_string
+        |a| titles.include?(a.title.to_s) &amp;&amp; a.rel.to_s == &quot;silverlight&quot;
       }
     end
   
     def hook_client_link(a)
-      $app.puts &quot;hooking stuff&quot;
-      link = @client_links.select{ |l| l['title'] == a[:title] }.first
-        $app.puts &quot;hooking stuff&quot;
+      # TODO: FIX THIS HACK! it should be l['title'] == a.title.to_s in the block!
+      link = @client_links.select{ |l| l.values.last == a.title.to_s }.first
       unless link.nil?
-        $app.puts &quot;hooking stuff&quot;
-        a.onclick { |s, e| do_action(link['options']) }
+        # TODO: FIX THIS HACK! it should be link['options'] in do_action
+        a.onclick { |s, e| do_action(link.values.first) }
         a.remove_attribute(&quot;title&quot;)
       end
     end
@@ -47,8 +45,9 @@ class Teleport &lt; SilverlightApplication
       controller = ClientController
       c = controller.new
       c.host = self
-      c.send(options['url']['action'])
+      # TODO: FIX THIS HACK! it should be c.send options[&quot;url&quot;][&quot;action&quot;]
+      c.send(options.values.first.values.first)
     end
 end
 
-Teleport.new
\ No newline at end of file
+Teleport.new</diff>
      <filename>vendor/plugins/silverline/client/app_teleport.rb</filename>
    </modified>
    <modified>
      <diff>@@ -47,4 +47,4 @@ class SilverlightApplication
     rhtml = ERB.new XAP.get_file_contents(&quot;views/#{partial}.html.erb&quot;)
     document.send(options[:update])[:innerHTML] = rhtml.result(binding)
   end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/application.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,5 +2,5 @@ require 'lib/helpers/debug'
 require 'lib/helpers/downloader'
 require 'lib/helpers/html'
 require 'lib/helpers/wpf'
-require 'lib/helpers/json_beta1'
-require 'lib/helpers/xap'
\ No newline at end of file
+require 'lib/helpers/json' 
+require 'lib/helpers/xap'</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,27 +5,27 @@ module Debug
   end
   
   module ClassMethods
-	  def puts(msg)
-	    if document.debug_print.nil?
-	      div = document.create_element('div')
-	      div[:id] = &quot;debug_print&quot;
-	      document.get_elements_by_tag_name(&quot;body&quot;).get_Item(0).append_child(div)
-	    end
-	    document.debug_print[:innerHTML] = &quot;#{document.debug_print.innerHTML}&lt;hr /&gt;#{msg}&quot;
-	  end
-		  
-	  def debug_puts(msg)
-	    self.puts(msg) if $DEBUG
-	  end
+    def puts(msg)
+      if document.debug_print.nil?
+        div = document.create_element('div')
+        div[:id] = &quot;debug_print&quot;
+        document.get_elements_by_tag_name(&quot;body&quot;).get_Item(0).append_child(div)
+      end
+      document.debug_print[:innerHTML] = &quot;#{document.debug_print.innerHTML}&lt;hr /&gt;#{msg}&quot;
+    end
+            
+    def debug_puts(msg)
+      self.puts(msg) if $DEBUG
+    end
   end
   
   module InstanceMethods
-	  def puts(msg)
-	    self.class.puts(msg)
-	  end
-	
-	  def debug_puts(msg)
-	    self.class.debug_puts(msg)
-	  end
+    def puts(msg)
+      self.class.puts(msg)
+    end
+  
+    def debug_puts(msg)
+      self.class.debug_puts(msg)
+    end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers/debug.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ include System::Windows::Browser
 module Downloader
   
   def download(url, &amp;block)
-    if block.nil?
+    unless block_given?
       request = HtmlPage.Window.CreateInstance(&quot;XMLHttpRequest&quot;.to_clr_string)
       request.Invoke(&quot;open&quot;.to_clr_string, &quot;GET&quot;.to_clr_string, url, false)
       request.Invoke(&quot;send&quot;.to_clr_string, &quot;&quot;.to_clr_string)
@@ -16,9 +16,11 @@ module Downloader
   end
   
   def get(url, options, &amp;block)
-    json = download &quot;/#{url}.json&quot;
+    url = &quot;/#{url}.json&quot;
+    return download url, block if block_given? 
+    json = download url
     return JSON.new.parse(json) if options[:format] == 'ruby'
     return json
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers/downloader.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,21 @@ class HtmlDocument
   end
 end
 
+class HtmlElementCollection
+  def [](index)
+    get_Item(index)
+  end
+  def size
+    count
+  end
+  def first
+    self[0] if size &gt; 0
+  end
+  def last
+    self[size - 1] if size &gt; 0
+  end
+end
+
 class HtmlElement
   def [](index)
     val = get_attribute(index)
@@ -96,4 +111,4 @@ class HtmlStyle
     return style unless style.nil?
     raise e
   end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers/html/patch.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,16 @@
 class JSON
-  AST = Struct.new(:value)
+
+  # TODO: Use Struct when it works properly
+  # AST = Struct.new(:value)
+  class AST
+    def initialize(value)
+      @value = value
+    end
+    def value
+      @value
+    end
+  end
+  # /endTODO
 
   def parse(input)
     @input = StringScanner.new(input)
@@ -109,4 +120,4 @@ class JSON
         raise &quot;#{message}: #{@input.peek(@input.string.length)}&quot;
       end
     end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers/json.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 require 'lib/helpers/wpf/builders'
 require 'lib/helpers/wpf/patch'
 require 'lib/helpers/wpf/animation'
+require 'lib/patch.rb' # for Inflection
 
 include System::Windows
 include System::Windows::Controls
@@ -21,16 +22,26 @@ module Wpf
   end
   
   module ClassMethods
+
+    # Load a XAML file on a class
+    # Load self.name if we weren't given a name option. If that doesn't exist, default to &quot;app&quot;.
+    # Default to UserControl as the type option, unless 
     def use_xaml(options = {})
-      options = {:type =&gt; UserControl, :name =&gt; &quot;app&quot;}.merge(options)
+      if !options.has_key?(:name) || options[:name].nil?
+        name = Inflection.underscore(self.name)
+        options[:name] = XAP.get_file(&quot;#{name}.xaml&quot;) ? name : &quot;app&quot;
+      end
+      options[:type] = UserControl if !options.has_key?(:type) || options[:type].nil?
+      
       type = options[:type].new
       Application.load_component(type, Uri.new(&quot;#{options[:name]}.xaml&quot;, UriKind.Relative))
       Application.current.root_visual = type
     end
+
   end
   
   def root
     application.root_visual
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/helpers/wpf.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+
 # Filling in the holes of IronRuby
 
 # Need attr* methods since in SL they throw a MethodAccessException
@@ -34,4 +35,22 @@ class DateTime
   def to_s
     to_string
   end
-end
\ No newline at end of file
+end
+
+module Inflection
+  def self.underscore(camel_cased_word)
+    camel_cased_word.to_s.gsub(/::/, '/').
+    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
+    gsub(/([a-z\d])([A-Z])/,'\1_\2').
+    tr(&quot;-&quot;, &quot;_&quot;).
+    downcase
+  end
+  
+  def self.constantize(camel_cased_word)
+    unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~ camel_cased_word
+      raise NameError, &quot;#{camel_cased_word.inspect} is not a valid constant name!&quot;
+    end
+
+    Object.module_eval(&quot;::#{$1}&quot;, __FILE__, __LINE__)
+  end
+end</diff>
      <filename>vendor/plugins/silverline/client/lib/patch.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,4 +14,90 @@ class Class
         end\n&quot;, __FILE__, __LINE__)
     end
   end
-end
\ No newline at end of file
+end
+
+
+# Hash#deep_merge
+# From: http://pastie.textmate.org/pastes/30372, Elliott Hird
+# Source: http://gemjack.com/gems/tartan-0.1.1/classes/Hash.html
+# This file contains extensions to Ruby and other useful snippits of code.
+# Time to extend Hash with some recursive merging magic.
+
+class Hash
+
+  # Merges self with another hash, recursively.
+  # 
+  # This code was lovingly stolen from some random gem:
+  # http://gemjack.com/gems/tartan-0.1.1/classes/Hash.html
+  # 
+  # Thanks to whoever made it.
+
+  def deep_merge(hash)
+    target = dup
+    
+    hash.keys.each do |key|
+      if hash[key].is_a? Hash and self[key].is_a? Hash
+        target[key] = target[key].deep_merge(hash[key])
+        next
+      end
+      
+      target[key] = hash[key]
+    end
+    
+    target
+  end
+
+
+  # From: http://www.gemtacular.com/gemdocs/cerberus-0.2.2/doc/classes/Hash.html
+  # File lib/cerberus/utils.rb, line 42
+
+  def deep_merge!(second)
+    second.each_pair do |k,v|
+      if self[k].is_a?(Hash) and second[k].is_a?(Hash)
+        self[k].deep_merge!(second[k])
+      else
+        self[k] = second[k]
+      end
+    end
+  end
+
+
+#-----------------
+        
+   # cf. http://subtech.g.hatena.ne.jp/cho45/20061122
+   def deep_merge2(other)
+      deep_proc = Proc.new { |k, s, o|
+         if s.kind_of?(Hash) &amp;&amp; o.kind_of?(Hash)
+            next s.merge(o, &amp;deep_proc)
+         end
+         next o
+      }
+      merge(other, &amp;deep_proc)
+   end
+
+
+   def deep_merge3(second)
+
+      # From: http://www.ruby-forum.com/topic/142809
+      # Author: Stefan Rusterholz
+
+      merger = proc { |key,v1,v2| Hash === v1 &amp;&amp; Hash === v2 ? v1.merge(v2, &amp;merger) : v2 }
+      self.merge(second, &amp;merger)
+
+   end
+
+
+   def keep_merge(hash)
+      target = dup
+      hash.keys.each do |key|
+         if hash[key].is_a? Hash and self[key].is_a? Hash
+            target[key] = target[key].keep_merge(hash[key])
+            next
+         end
+         #target[key] = hash[key]
+         target.update(hash) { |key, *values| values.flatten.uniq }
+      end
+      target
+   end
+
+end</diff>
      <filename>vendor/plugins/silverline/lib/patch/ruby.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,8 @@ module Silverline::Essential::Generator
     watcher = FileSystemWatcher.new
     watcher.addDirectory CLIENT_ROOT
     watcher.addDirectory PLUGIN_CLIENT
+    watcher.addDirectory &quot;#{PLUGIN_ROOT}/public&quot;
+    watcher.addDirectory &quot;#{RAILS_ROOT}/public/ironruby&quot;
     
     # TODO: watch all client controllers, as well as all views
     watcher.addFile &quot;#{RAILS_ROOT}/app/controllers/client_controller.rb&quot;
@@ -46,4 +48,4 @@ module Silverline::Essential::Generator
     
     FileUtils.rm_r TMP_CLIENT
   end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/lib/silverline/essential/generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ module Silverline::Essential::Html
     require 'erb'
     defaults = {
       :start =&gt; &quot;app&quot;,
-      :debug =&gt; true,
+      :debug =&gt; false,
       :reportErrors =&gt; &quot;errorLocation&quot;,
       :properties =&gt; {
         :width =&gt; 1,
@@ -17,7 +17,7 @@ module Silverline::Essential::Html
         :windowless =&gt; true
       }
     }
-    options = defaults.merge(options)
+    options = defaults.deep_merge(options)
     options[:start] &lt;&lt; &quot;.rb&quot;
     retval = &quot;&quot;
     if options[:properties][:width].to_i &lt; 2 || options[:properties][:height].to_i &lt; 2
@@ -55,4 +55,4 @@ module Silverline::Essential::Html
     def templatify(path, b)
       ERB.new(File.open(&quot;#{Silverline::PLUGIN_ROOT}/templates/#{path}&quot;){|f| f.read}).result(b)
     end
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/lib/silverline/essential/html.rb</filename>
    </modified>
    <modified>
      <diff>@@ -76,7 +76,7 @@ module Silverline::Essential
   class XAPChiron &lt; XAP
   
     def generate
-      cmd = &quot;public/ironruby/Chiron.exe /d:#{@directory} /z:#{@file}&quot;
+      cmd = &quot;public/ironruby/Chiron.exe /s /d:#{@directory} /z:#{@file}&quot;
       # TODO: Should I do some platform detection rather than trial&amp;error?
       system &quot;#{cmd}&quot; unless system &quot;mono #{cmd}&quot;
     end</diff>
      <filename>vendor/plugins/silverline/lib/silverline/essential/xap.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,14 +3,8 @@ module Silverline::Visualize::Helpers::Formats
   
   def ___ag_render_ruby_partial(filename, options)
     return silverlight_object options.merge({
-      :start =&gt; &quot;views/#{@__cpath}/#{filename}&quot;
-    })
-  end
-  
-  def ___ag_render_xaml_partial(filename, options)
-    return silverlight_object options.merge({
-      :start =&gt; &quot;app_render_xaml&quot;,
-      :xaml_to_render =&gt; &quot;views/#{@__cpath}/#{filename}&quot;
+      :start      =&gt; &quot;app_render_rb&quot;,
+      :rb_to_run  =&gt; &quot;views/#{@__cpath}/#{filename}&quot;
     })
   end
   
@@ -18,8 +12,19 @@ module Silverline::Visualize::Helpers::Formats
     &quot;#{config[:path]}#{config[:filename]}.#{config[:rb_ext]}&quot;
   end
   
+
+  def ___ag_render_xaml_partial(filename, options)
+    defaults = {
+      :start          =&gt; &quot;app_render_xaml&quot;,
+      :xaml_to_render =&gt; &quot;views/#{@__cpath}/#{filename}&quot;,
+    }
+    xaml_type = options[:properties].delete(:type)
+    defaults[:xaml_type] = xaml_type unless xaml_type.nil?
+    return silverlight_object options.merge(defaults)
+  end
+  
   def ___ag_xaml_filename(config)
     &quot;#{config[:path]}#{config[:filename]}.#{config[:xaml_ext]}&quot;
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/lib/silverline/visualize/helpers/formats.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,9 @@ module Silverline::Visualize::Helpers::Templates
   include Configuration
   include Formats
   
+  # TODO: for now, actions bypass Silverlight altogether
+  # Should this be different? Like, should someone be able to 
+  # render a Ruby/XAML file without a RHTML file first?
   def __ag_render_a_action(key, template, options, &amp;block)
     _ag_render_without_silverlight(key, template, options, &amp;block)
   end
@@ -11,7 +14,7 @@ module Silverline::Visualize::Helpers::Templates
     config = ___ag_options_for_render(&quot;_#{template}&quot;)
   
     # Render first type found
-    # TODO: Make all this work if the full filename is supplied
+    # TODO: Make this work if the full filename is supplied
     [:ruby, :xaml].each do |type|
       if File.exists? send(&quot;___ag_#{type}_filename&quot;, config)
         return send(&quot;___ag_render_#{type}_partial&quot;, config[:filename], options)
@@ -22,12 +25,15 @@ module Silverline::Visualize::Helpers::Templates
     _ag_render_without_silverlight(key, template, options, &amp;block)
   end
   
+  # TODO: make inline Ruby/XAML work
   def __ag_render_a_inline(key, template, options, &amp;block)
     _ag_render_without_silverlight(key, template, options, &amp;block)
   end
   
+  # TODO: make general template rendering for ruby/xaml work.
+  # Not sure about actions (see above).
   def __ag_render_a_template(key, template, options, &amp;block)
     _ag_render_without_silverlight(key, template, options, &amp;block)
   end
   
-end
\ No newline at end of file
+end</diff>
      <filename>vendor/plugins/silverline/lib/silverline/visualize/helpers/templates.rb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/Chiron.exe</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,7 @@
     --&gt;
 
     &lt;!-- the location of language assemblies on disk --&gt;
-    &lt;add key=&quot;localAssemblyPath&quot; value=&quot;/ironruby&quot; /&gt;
+    &lt;add key=&quot;localAssemblyPath&quot; value=&quot;../../Libraries/Client&quot; /&gt;
   &lt;/appSettings&gt;
 
   &lt;!--
@@ -31,7 +31,9 @@
   --&gt;
   &lt;Languages&gt;
 
+    &lt;Language extensions=&quot;py&quot; assemblies=&quot;IronPython.dll, IronPython.Modules.dll&quot; /&gt;
     &lt;Language extensions=&quot;rb&quot; assemblies=&quot;IronRuby.dll, IronRuby.Libraries.dll&quot; /&gt;
+    &lt;Language extensions=&quot;js, jsx&quot; assemblies=&quot;Microsoft.JScript.Runtime.dll, Microsoft.JScript.Compiler.dll&quot; /&gt;
 
     &lt;!--
     Example language entry. The languageContext attribute must point at the</diff>
      <filename>vendor/plugins/silverline/public/ironruby/Chiron.exe.config</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/IronRuby.Libraries.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/IronRuby.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/Microsoft.Scripting.Core.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/Microsoft.Scripting.Silverlight.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>vendor/plugins/silverline/public/ironruby/Microsoft.Scripting.dll</filename>
    </modified>
    <modified>
      <diff>@@ -13,4 +13,4 @@
 	&lt;% end %&gt;
   &lt;% end %&gt;
   &lt;/Deployment.Parts&gt;
-&lt;/Deployment&gt;
\ No newline at end of file
+&lt;/Deployment&gt;</diff>
      <filename>vendor/plugins/silverline/templates/AppManifest.xaml.erb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@
   Silverlight control: allows us to write Ruby in the browser
 --&gt;
 &lt;div id=&quot;SilverlightControlHost&quot; onload=&quot;self.focus()&quot;&gt;
-  &lt;object data=&quot;data:application/x-silverlight,&quot; type=&quot;application/x-silverlight-2&quot; width=&quot;&lt;%= options[:properties][:width] %&gt;&quot; height=&quot;&lt;%= options[:properties][:height] %&gt;&quot;&gt;
+  &lt;object data=&quot;data:application/x-silverlight,&quot; type=&quot;application/x-silverlight-2-b2&quot; width=&quot;&lt;%= options[:properties][:width] %&gt;&quot; height=&quot;&lt;%= options[:properties][:height] %&gt;&quot;&gt;
     &lt;param name=&quot;source&quot; value=&quot;&lt;%= public_xap_file %&gt;&quot; /&gt;
     &lt;param name=&quot;onerror&quot; value=&quot;onSilverlightError&quot; /&gt;
     &lt;param name=&quot;background&quot; value=&quot;&lt;%= options[:properties][:background] %&gt;&quot; /&gt;
@@ -24,4 +24,5 @@
     &lt;/a&gt;
   &lt;/object&gt;
   &lt;iframe style='visibility:hidden;height:0;width:0;border:0px'&gt;&lt;/iframe&gt;
-&lt;/div&gt;
\ No newline at end of file
+&lt;/div&gt;
+</diff>
      <filename>vendor/plugins/silverline/templates/body.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -12,4 +12,4 @@
         errorDiv.innerHTML = args.errorType + &quot;- &quot; + args.errorMessage;
     }
   }
-&lt;/script&gt;
\ No newline at end of file
+&lt;/script&gt;</diff>
      <filename>vendor/plugins/silverline/templates/head.html.erb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>vendor/plugins/silverline/client/lib/helpers/json_beta1.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>4eaa9b0cd82e77c10356d69c8945a2fdb9108c4a</id>
    </parent>
  </parents>
  <author>
    <name>Jimmy Schementi</name>
    <email>jschementi@gmail.com</email>
  </author>
  <url>http://github.com/jschementi/silverline/commit/526a5bb06a08508aa6689253fe2b12800ab3e300</url>
  <id>526a5bb06a08508aa6689253fe2b12800ab3e300</id>
  <committed-date>2008-05-22T00:49:20-07:00</committed-date>
  <authored-date>2008-05-22T00:49:20-07:00</authored-date>
  <message>Working on Silverlight 2 Beta2
- Hashes are having problems; though I can't seem to reproduce it in a vanilla RubySL app.
- debug=false by default, for perf ... though it shouldn't affect perf
- Updated public/ironruby with lastest build
- Added /render_test/clock</message>
  <tree>15b00b2f1c45f32224fed02c4a5bcd473fa5304a</tree>
  <committer>
    <name>Jimmy Schementi</name>
    <email>jschementi@gmail.com</email>
  </committer>
</commit>
