<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>IronMvcSpecs/routes.rb</filename>
    </added>
    <added>
      <filename>IronRubyMvc/Controllers/IronRubyMvcException.cs</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/MicrosoftMvcAjax.debug.js</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/MicrosoftMvcAjax.js</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/System.Web.Abstractions.dll</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/System.Web.Mvc.dll</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/System.Web.Mvc.pdb</filename>
    </added>
    <added>
      <filename>dependencies/mvc_debug/System.Web.Routing.dll</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -86,7 +86,7 @@ describe &quot;RubyController&quot; do
   describe &quot;when asked to redirect to route&quot; do
 
     before do
-      @result = @controller.redirect_to_route &quot;MyRoute&quot; =&gt; &quot;RouteValue&quot;
+      @result = @controller.redirect_to_route({ &quot;MyRoute&quot; =&gt; &quot;RouteValue&quot; })
     end
 
     it &quot;should return a result&quot; do</diff>
      <filename>IronMvcSpecs/controllers/ruby_controller_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,8 @@ describe &quot;RubyEngine&quot; do
       @path_provider = Caricature::Isolation.for(IRCORE::IPathProvider)
       @path_provider.when_receiving(:application_physical_path).return(System::Environment.current_directory)
       @path_provider.when_receiving(:file_exists).return(true)
-      @path_provider.when_receiving(:open).return(System::IO::MemoryStream.new(System::Byte[].new(0)))
+      #@path_provider.when_receiving(:open).return(System::IO::MemoryStream.new(System::Byte[].new(0)))
+      @path_provider.when_receiving(:map_path).return(&quot;.\\routes.rb&quot;)
       @script_engine = IRCORE::RubyEngine.initialize_iron_ruby_mvc @path_provider, &quot;~/routes.rb&quot;
       @routes = @script_engine.method(:get_global_variable).call(&quot;routes&quot;)
     end</diff>
      <filename>IronMvcSpecs/core/ruby_engine_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -44,8 +44,8 @@ describe &quot;StringExtensions&quot; do
   describe &quot;when asking to format a string&quot; do 
     
     it &quot;should return a properly formatted string&quot; do
-      expected = &quot;This is the 1 and only Format test at #{System::DateTime.now.to_short_date_string}&quot;.to_clr_string
-      actual = StringExtensions.formatted_with(&quot;This is the {0} and only {1} test at {2}&quot;.to_clr_string, 1, &quot;Format&quot;, System::DateTime.now.to_short_date_string)
+      expected = &quot;This is the 1 and only Format test at #{Time.now.strftime(&quot;%x&quot;)}&quot;.to_clr_string
+      actual = StringExtensions.formatted_with(&quot;This is the {0} and only {1} test at {2}&quot;.to_clr_string, 1, &quot;Format&quot;, Time.now.strftime(&quot;%x&quot;))
       
       expected.should == actual
     end</diff>
      <filename>IronMvcSpecs/extensions/string_extensions_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -101,6 +101,12 @@ namespace System.Web.Mvc.IronRuby.Controllers
         }
 
         [NonAction]
+        public ViewResult View(SymbolId viewName)
+        {
+            return View(viewName.ToString());
+        }
+
+        [NonAction]
         public new ViewResult View(string viewName)
         {
             return View(viewName, null /* masterName */, null /* model */);
@@ -177,105 +183,105 @@ namespace System.Web.Mvc.IronRuby.Controllers
             return new ViewResult {ViewName = viewName, MasterName = masterName, ViewData = vdd, TempData = TempData};
         }
 
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model) where TModel : class
-//        {
-//            return TryUpdateModel(model, null, null, null, ValueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix) where TModel : class
-//        {
-//            return TryUpdateModel(model, prefix, null, null, ValueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties) where TModel : class
-//        {
-//            return TryUpdateModel(model, null, includeProperties, null, ValueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties) where TModel : class
-//        {
-//            return TryUpdateModel(model, prefix, includeProperties, null, ValueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) where TModel : class
-//        {
-//            return TryUpdateModel(model, prefix, includeProperties, excludeProperties, ValueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            return TryUpdateModel(model, null, null, null, valueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            return TryUpdateModel(model, prefix, null, null, valueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            return TryUpdateModel(model, null, includeProperties, null, valueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            return TryUpdateModel(model, prefix, includeProperties, null, valueProvider);
-//        }
-//
-//        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            return base.TryUpdateModel(model, prefix, includeProperties, excludeProperties, valueProvider);
-//        }
-//
-//        public new virtual void UpdateModel&lt;TModel&gt;(TModel model) where TModel : class
-//        {
-//            UpdateModel(model, null, null, null, ValueProvider);
-//        }
-//
-//        public new virtual void UpdateModel&lt;TModel&gt;(TModel model, string prefix) where TModel : class
-//        {
-//            UpdateModel(model, prefix, null, null, ValueProvider);
-//        }
-//
-//        public new virtual void UpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties) where TModel : class
-//        {
-//            UpdateModel(model, null, includeProperties, null, ValueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties) where TModel : class
-//        {
-//            UpdateModel(model, prefix, includeProperties, null, ValueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) where TModel : class
-//        {
-//            UpdateModel(model, prefix, includeProperties, excludeProperties, ValueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            UpdateModel(model, null, null, null, valueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            UpdateModel(model, prefix, null, null, valueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            UpdateModel(model, null, includeProperties, null, valueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            UpdateModel(model, prefix, includeProperties, null, valueProvider);
-//        }
-//
-//        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
-//        {
-//            base.UpdateModel(model, prefix, includeProperties,excludeProperties,valueProvider);
-//        }
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model) where TModel : class
+        {
+            return TryUpdateModel(model, null, null, null, ValueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix) where TModel : class
+        {
+            return TryUpdateModel(model, prefix, null, null, ValueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties) where TModel : class
+        {
+            return TryUpdateModel(model, null, includeProperties, null, ValueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties) where TModel : class
+        {
+            return TryUpdateModel(model, prefix, includeProperties, null, ValueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) where TModel : class
+        {
+            return TryUpdateModel(model, prefix, includeProperties, excludeProperties, ValueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            return TryUpdateModel(model, null, null, null, valueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            return TryUpdateModel(model, prefix, null, null, valueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            return TryUpdateModel(model, null, includeProperties, null, valueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            return TryUpdateModel(model, prefix, includeProperties, null, valueProvider);
+        }
+
+        public new virtual bool TryUpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            return base.TryUpdateModel(model, prefix, includeProperties, excludeProperties, valueProvider);
+        }
+
+        public new virtual void UpdateModel&lt;TModel&gt;(TModel model) where TModel : class
+        {
+            UpdateModel(model, null, null, null, ValueProvider);
+        }
+
+        public new virtual void UpdateModel&lt;TModel&gt;(TModel model, string prefix) where TModel : class
+        {
+            UpdateModel(model, prefix, null, null, ValueProvider);
+        }
+
+        public new virtual void UpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties) where TModel : class
+        {
+            UpdateModel(model, null, includeProperties, null, ValueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties) where TModel : class
+        {
+            UpdateModel(model, prefix, includeProperties, null, ValueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) where TModel : class
+        {
+            UpdateModel(model, prefix, includeProperties, excludeProperties, ValueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            UpdateModel(model, null, null, null, valueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            UpdateModel(model, prefix, null, null, valueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            UpdateModel(model, null, includeProperties, null, valueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            UpdateModel(model, prefix, includeProperties, null, valueProvider);
+        }
+
+        public new virtual  void UpdateModel&lt;TModel&gt;(TModel model, string prefix, string[] includeProperties, string[] excludeProperties, IDictionary&lt;string, ValueProviderResult&gt; valueProvider) where TModel : class
+        {
+            base.UpdateModel(model, prefix, includeProperties,excludeProperties,valueProvider);
+        }
 
        
 </diff>
      <filename>IronRubyMvc/Controllers/RubyController.cs</filename>
    </modified>
    <modified>
      <diff>@@ -224,8 +224,9 @@ module IronRubyMvc
                 end
                 
                 def action_filters
-                    @action_filters ||= {}
-                    @action_filters
+									@action_filters ||= {}
+                  return @action_filters unless superclass.respond_to? :action_filters
+									@action_filters.merge superclass.action_filters
                 end
                 
                 private
@@ -247,10 +248,11 @@ module IronRubyMvc
                 
                 def method_selector(name, selector)
                     key = name.to_s.to_sym
-                    method_selectors[key] ||= []
-                    method_selectors[key] &lt;&lt; selector unless selector.nil?
-                    method_selectors[key].uniq!
-                    method_selectors[key]
+										@method_selectors ||= {}
+                    @method_selectors[key] ||= []
+                    @method_selectors[key] &lt;&lt; selector unless selector.nil?
+                    @method_selectors[key].uniq!
+                    @method_selectors[key]
                 end
                 
                 def alias_action(name, act_name)
@@ -262,10 +264,11 @@ module IronRubyMvc
                 
                 def name_selector(name, selector)
                     key = name.to_s.to_sym
-                    name_selectors[key] ||= []
-                    name_selectors[key] &lt;&lt; selector if block_given?
-                    name_selectors[key].uniq!
-                    name_selectors[key]
+                    @name_selectors ||= {}
+										@name_selectors[key] ||= []
+                    @name_selectors[key] &lt;&lt; selector if block_given?
+                    @name_selectors[key].uniq!
+                    @name_selectors[key]
                 end
                 
                 def non_action(name)
@@ -274,13 +277,15 @@ module IronRubyMvc
                 end
                 
                 def name_selectors
-                    @name_selectors ||= {}          
-                    @name_selectors
+                  @name_selectors = {}
+									return @name_selectors unless superclass.respond_to? :name_selectors
+									@name_selectors.merge superclass.name_selectors 
                 end
                 
                 def method_selectors
-                    @method_selectors ||= {}
-                    @method_selectors
+									@method_selectors = {}
+                  return @method_selectors unless superclass.respond_to? :method_selectors
+									@method_selectors.merge superclass.method_selectors
                 end
                 
             end</diff>
      <filename>IronRubyMvc/Controllers/controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,5 +19,7 @@ namespace System.Web.Mvc.IronRuby.Core
         public const string Models = &quot;Models&quot;;
         public const string RubycontrollerFile = &quot;System.Web.Mvc.IronRuby.Controllers.controller.rb&quot;;
         public const string ScriptRuntimeVariable = &quot;script_runtime&quot;;
+        public const string Bin = &quot;bin&quot;;
+        public const string Lib = &quot;lib&quot;;
     }
 }
\ No newline at end of file</diff>
      <filename>IronRubyMvc/Core/Constants.cs</filename>
    </modified>
    <modified>
      <diff>@@ -66,7 +66,7 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;param name=&quot;path&quot;&gt;The path.&lt;/param&gt;
         /// &lt;param name=&quot;throwIfNotExist&quot;&gt;if set to &lt;c&gt;true&lt;/c&gt; [throw if not exist].&lt;/param&gt;
         /// &lt;returns&gt;&lt;/returns&gt;
-        object ExecuteFile(string path, bool throwIfNotExist);
+        void ExecuteFile(string path, bool throwIfNotExist);
 
         /// &lt;summary&gt;
         /// Defines the read only global variable.</diff>
      <filename>IronRubyMvc/Core/IRubyEngine.cs</filename>
    </modified>
    <modified>
      <diff>@@ -97,13 +97,16 @@ namespace System.Web.Mvc.IronRuby.Core
 
         public object CreateInstance(RubyClass rubyClass)
         {
-            return Operations.CreateInstance(rubyClass);
+            return  HandleError(() =&gt; Operations.CreateInstance(rubyClass));
         }
 
         public void ExecuteInScope(Action&lt;ScriptScope&gt; block)
         {
-            var scope = Engine.CreateScope();
-            block(scope);
+            HandleError(() =&gt;
+                            {
+                                var scope = Engine.CreateScope();
+                                block(scope);
+                            });
         }
 
         /// &lt;summary&gt;
@@ -115,7 +118,43 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;returns&gt;&lt;/returns&gt;
         public object CallMethod(object receiver, string message, params object[] args)
         {
-            return Operations.InvokeMember(receiver, GetMethodName(receiver, message));
+            return HandleError(() =&gt; Operations.InvokeMember(receiver, GetMethodName(receiver, message)));
+           
+        }
+
+        private void HandleError(Action action)
+        {
+            try
+            {
+                action.Invoke();
+
+            }
+            catch (Exception exception)
+            {
+                var exceptionService = Engine.GetService&lt;ExceptionOperations&gt;();
+                string msg, typeName;
+                exceptionService.GetExceptionMessage(exception, out msg, out typeName);
+                var trace = exceptionService.FormatException(exception);
+                throw new RuntimeError(string.Format(&quot;{0} threw an error.{1}{2}{1}{1}Trace:{1}{3}&quot;,
+                    typeName, Environment.NewLine, msg, trace));
+            }
+        }
+
+        private object HandleError(Func&lt;object&gt; action)
+        {
+            try
+            {
+                return action.Invoke();
+
+            }
+            catch (Exception exception)
+            {
+                var exceptionService = Engine.GetService&lt;ExceptionOperations&gt;();
+                string msg, typeName;
+                exceptionService.GetExceptionMessage(exception, out msg, out typeName);
+                var trace = exceptionService.FormatException(exception);
+                throw new IronRubyMvcException(string.Format(&quot;{0}&lt;br /&gt;{1}&quot;, msg, trace), trace, exception);
+            }
         }
 
         /// &lt;summary&gt;
@@ -163,7 +202,7 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;returns&gt;&lt;/returns&gt;
         public object ExecuteScript(string script)
         {
-            return ExecuteScript(script, CurrentScope);
+            return  HandleError(() =&gt; ExecuteScript(script, CurrentScope));
         }
 
         /// &lt;summary&gt;
@@ -174,22 +213,20 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;returns&gt;&lt;/returns&gt;
         public object ExecuteScript(string script, ScriptScope scope)
         {
-            return Engine.Execute(script, scope ?? CurrentScope);
+            return  HandleError(() =&gt; Engine.Execute(script, scope ?? CurrentScope));
         }
 
 
-        public object ExecuteFile(string path, bool throwIfNotExist)
+        public void ExecuteFile(string path, bool throwIfNotExist)
         {
             path.EnsureArgumentNotNull(&quot;path&quot;);
 
             if (throwIfNotExist &amp;&amp; !PathProvider.FileExists(path))
                 throw new FileNotFoundException(&quot;Can't find the file&quot;, path);
 
-            if (!PathProvider.FileExists(path)) return null;
+            if (!PathProvider.FileExists(path)) return;
 
-            var source = Engine.CreateScriptSourceFromFile(path);
-
-            return source.Execute(CurrentScope);
+            HandleError(() =&gt; Engine.ExecuteFile(PathProvider.MapPath(path), CurrentScope));
         }
 
 
@@ -200,7 +237,7 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;
         public void DefineGlobalVariable(string variableName, object value)
         {
-
+            Runtime.Globals.SetVariable(variableName, value);
             Context.SetGlobalVariable(null, variableName, value);
         }
 
@@ -251,11 +288,21 @@ namespace System.Web.Mvc.IronRuby.Core
         /// &lt;param name=&quot;readerType&quot;&gt;Type of the reader.&lt;/param&gt;
         public void RequireRubyFile(string path, ReaderType readerType)
         {
-            Engine.CreateScriptSource(readerType == ReaderType.File
-                                          ? (StreamContentProvider)
-                                            new VirtualPathStreamContentProvider(path, PathProvider)
-                                          : new AssemblyStreamContentProvider(path, typeof (IRubyEngine).Assembly), null,
-                                      Encoding.ASCII).Execute();
+            HandleError(() =&gt;
+                            {
+                                if (readerType == ReaderType.File)
+                                {
+//                                    Engine.CreateScriptSource(new VirtualPathStreamContentProvider(path, PathProvider), null, Encoding.ASCII).
+//                                        Execute(CurrentScope);
+                                    ExecuteFile(path, true);
+                                }
+                                else
+                                {
+                                    Engine.CreateScriptSource(
+                                        new AssemblyStreamContentProvider(path, typeof (IRubyEngine).Assembly), null,
+                                        Encoding.ASCII).Execute();
+                                }
+                            });
         }
 
         #endregion
@@ -302,11 +349,13 @@ namespace System.Web.Mvc.IronRuby.Core
             var modelsDir = Path.Combine(PathProvider.ApplicationPhysicalPath, Constants.Models);
             var filtersDir = Path.Combine(PathProvider.ApplicationPhysicalPath, Constants.Filters);
             var helpersDir = Path.Combine(PathProvider.ApplicationPhysicalPath, Constants.Helpers);
+            var libDir = Path.Combine(PathProvider.ApplicationPhysicalPath, Constants.Lib);
+            var binDir = Path.Combine(PathProvider.ApplicationPhysicalPath, Constants.Bin);
 
             Context.Loader.SetLoadPaths(new[]
                                             {
                                                 PathProvider.ApplicationPhysicalPath, controllersDir, modelsDir, filtersDir
-                                                , helpersDir
+                                                , helpersDir, libDir, binDir
                                             });
         }
 
@@ -342,7 +391,7 @@ namespace System.Web.Mvc.IronRuby.Core
         private static RubyEngine InitializeIronRuby(IPathProvider vpp, string routesPath)
         {
             var runtimeSetup = new ScriptRuntimeSetup();
-            runtimeSetup.LanguageSetups.Add(Ruby.CreateRubySetup(su =&gt; su.InterpretedMode = true));
+            runtimeSetup.LanguageSetups.Add(Ruby.CreateRubySetup());
             
 #if DEBUG
             runtimeSetup.DebugMode = true;</diff>
      <filename>IronRubyMvc/Core/RubyEngine.cs</filename>
    </modified>
    <modified>
      <diff>@@ -84,12 +84,18 @@ namespace System.Web.Mvc.IronRuby.Extensions
                                        var li = new SelectListItem();
                                        hash.ForEach((key, value) =&gt;
                                                         {
-                                                            if (key.ToString() == &quot;text&quot;)
-                                                                li.Text = value.ToString();
-                                                            if (key.ToString() == &quot;value&quot;)
-                                                                li.Value = value.ToString();
-                                                            if (key.ToString() == &quot;selected&quot;)
-                                                                li.Selected = (bool) value;
+                                                            switch(key.ToString().ToUpperInvariant())
+                                                            {
+                                                                case &quot;TEXT&quot;:
+                                                                    li.Text = value.ToString();
+                                                                    break;
+                                                                case &quot;VALUE&quot;:
+                                                                    li.Value = value.ToString();
+                                                                    break;
+                                                                case &quot;SELECTED&quot;:
+                                                                    li.Selected = (bool) value;
+                                                                    break;
+                                                            }
                                                         });
                                        result.Add(li);
                                    });</diff>
      <filename>IronRubyMvc/Extensions/IEnumerableExtensions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -83,17 +83,22 @@
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Web&quot; /&gt;
     &lt;Reference Include=&quot;System.Data&quot; /&gt;
-    &lt;Reference Include=&quot;System.Web.Abstractions&quot;&gt;
+    &lt;Reference Include=&quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\dependencies\mvc_debug\System.Web.Abstractions.dll&lt;/HintPath&gt;
       &lt;RequiredTargetFramework&gt;3.5&lt;/RequiredTargetFramework&gt;
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot; /&gt;
-    &lt;Reference Include=&quot;System.Web.Routing&quot;&gt;
+    &lt;Reference Include=&quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\dependencies\mvc_debug\System.Web.Routing.dll&lt;/HintPath&gt;
       &lt;RequiredTargetFramework&gt;3.5&lt;/RequiredTargetFramework&gt;
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Xml&quot; /&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
     &lt;Compile Include=&quot;Controllers\ControllerConfiguration.cs&quot; /&gt;
+    &lt;Compile Include=&quot;Controllers\IronRubyMvcException.cs&quot; /&gt;
     &lt;Compile Include=&quot;Controllers\ParamsBinder.cs&quot; /&gt;
     &lt;Compile Include=&quot;Controllers\RubyActionMethodSelector.cs&quot; /&gt;
     &lt;Compile Include=&quot;Controllers\RubyActionSelector.cs&quot; /&gt;
@@ -128,7 +133,6 @@
     &lt;Compile Include=&quot;Extensions\ObjectExtensions.cs&quot; /&gt;
     &lt;Compile Include=&quot;Extensions\StringExtensions.cs&quot; /&gt;
     &lt;Compile Include=&quot;GlobalSuppressions.cs&quot; /&gt;
-    &lt;Compile Include=&quot;Helpers\DescriptorUtil.cs&quot; /&gt;
     &lt;Compile Include=&quot;Helpers\HashWrapper.cs&quot; /&gt;
     &lt;Compile Include=&quot;Extensions\Inflector.cs&quot; /&gt;
     &lt;Compile Include=&quot;Helpers\RubyAjaxHelper.cs&quot; /&gt;</diff>
      <filename>IronRubyMvc/System.Web.Mvc.IronRuby.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,7 @@ class HomeController &lt; Controller
   accept_verbs :only_post, :post
   
   def index
+		hall
     view('index', 'layout', HomeModel.new)
   end
   </diff>
      <filename>IronRubyMvcWeb/Controllers/HomeController.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,11 +59,15 @@
       &lt;RequiredTargetFramework&gt;3.5&lt;/RequiredTargetFramework&gt;
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Web&quot; /&gt;
-    &lt;Reference Include=&quot;System.Web.Abstractions&quot;&gt;
+    &lt;Reference Include=&quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\dependencies\mvc_debug\System.Web.Abstractions.dll&lt;/HintPath&gt;
       &lt;RequiredTargetFramework&gt;3.5&lt;/RequiredTargetFramework&gt;
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot; /&gt;
-    &lt;Reference Include=&quot;System.Web.Routing&quot;&gt;
+    &lt;Reference Include=&quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\dependencies\mvc_debug\System.Web.Routing.dll&lt;/HintPath&gt;
       &lt;RequiredTargetFramework&gt;3.5&lt;/RequiredTargetFramework&gt;
     &lt;/Reference&gt;
     &lt;Reference Include=&quot;System.Xml.Linq&quot;&gt;</diff>
      <filename>IronRubyMvcWeb/IronRubyMvcWeb.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@
   &lt;blockquote&gt;
     &lt;p&gt;
       &lt;strong class=&quot;salutation&quot;&gt;
-        &lt;%= model.salutation %&gt;
+        &lt;%= model.salutation.to_short_d %&gt;
       &lt;/strong&gt;
     &lt;/p&gt;
   &lt;/blockquote&gt;</diff>
      <filename>IronRubyMvcWeb/Views/Home/index.html.erb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.Libraries.Yaml.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.Libraries.Yaml.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.Libraries.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.Libraries.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/IronRuby.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Dynamic.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Dynamic.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.Core.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.Core.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.ExtensionAttribute.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.ExtensionAttribute.pdb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.dll</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>dependencies/Microsoft.Scripting.pdb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>IronRubyMvc/Helpers/DescriptorUtil.cs</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>ef59166eb4e5e6b06b9d90abf95d637c2126e5ed</id>
    </parent>
  </parents>
  <author>
    <name>Ivan Porto Carrero</name>
    <email>ivan@flanders.co.nz</email>
  </author>
  <url>http://github.com/casualjim/ironrubymvc/commit/2e63de287426da62f551791af163374ee6cfb730</url>
  <id>2e63de287426da62f551791af163374ee6cfb730</id>
  <committed-date>2009-06-14T11:30:51-07:00</committed-date>
  <authored-date>2009-06-14T11:30:51-07:00</authored-date>
  <message>Adds some specs. Fixes filters from parent classes</message>
  <tree>5a431877d3e581b9c74283765e48e7ef8b8c96fc</tree>
  <committer>
    <name>Ivan Porto Carrero</name>
    <email>ivan@flanders.co.nz</email>
  </committer>
</commit>
