<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -47,6 +47,10 @@ namespace IronRuby.Builtins {
     public static partial class UInt64Ops {
     }
 
+    [RubyClass(Extends = typeof(Decimal), Inherits = typeof(Integer), Restrictions = ModuleRestrictions.None), Includes(typeof(ClrBigInteger), Copy = true)]
+    public static partial class DecimalOps{
+    }
+
     #region new, size, induced_from
 
     // *** BEGIN GENERATED CODE ***
@@ -324,6 +328,45 @@ namespace IronRuby.Builtins {
             return MutableString.CreateMutable(RubyEncoding.Binary).Append(self.ToString()).Append(&quot; (UInt64)&quot;);
         }
     }
+    
+    public static partial class DecimalOps {
+        [RubyMethod(&quot;size&quot;)]
+        public static int Size(Decimal self) {
+            return sizeof(Decimal);
+        }
+    
+        [RubyConstructor]
+        [RubyMethod(&quot;induced_from&quot;, RubyMethodAttributes.PublicSingleton)]
+        public static Decimal InducedFrom(RubyClass/*!*/ self, [DefaultProtocol]int value) {
+            if (value &gt;= Decimal.MinValue &amp;&amp; value &lt;= Decimal.MaxValue) {
+                return (Decimal)value;
+            }
+            throw RubyExceptions.CreateRangeError(String.Format(&quot;Integer {0} out of range of {1}&quot;, value, self.Name));
+        }
+        
+        [RubyConstructor]
+        [RubyMethod(&quot;induced_from&quot;, RubyMethodAttributes.PublicSingleton)]
+        public static Decimal InducedFrom(RubyClass/*!*/ self, [NotNull]BigInteger/*!*/ value) {
+            if (value &gt;= Decimal.MinValue &amp;&amp; value &lt;= Decimal.MaxValue) {
+                return (Decimal)value;
+            }
+            throw RubyExceptions.CreateRangeError(String.Format(&quot;Integer {0} out of range of {1}&quot;, value, self.Name));
+        }
+    
+        [RubyConstructor]
+        [RubyMethod(&quot;induced_from&quot;, RubyMethodAttributes.PublicSingleton)]
+        public static Decimal InducedFrom(RubyClass/*!*/ self, double value) {
+            if ((Decimal)value &gt;= Decimal.MinValue &amp;&amp; (Decimal)value &lt;= Decimal.MaxValue) {
+                return (Decimal)value;
+            }
+            throw RubyExceptions.CreateRangeError(String.Format(&quot;Float {0} out of range of {1}&quot;, value, self.Name));
+        }
+        
+        [RubyMethod(&quot;inspect&quot;)]
+        public static MutableString/*!*/ Inspect(object/*!*/ self) {
+            return MutableString.CreateMutable(RubyEncoding.Binary).Append(self.ToString()).Append(&quot; (Decimal)&quot;);
+        }
+    }
 
     // *** END GENERATED CODE ***
 </diff>
      <filename>Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Extensions/ClrInteger.Generated.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-&#65279;require '../../Scripts/CodeGenerator.rb'
+require '../../Scripts/CodeGenerator.rb'
 
 def range_check_fixnum(type)
   if type == &quot;Int64&quot;
@@ -16,7 +16,7 @@ end
 
 generate(__FILE__) do
   template = DATA.read
-  types = [&quot;Byte&quot;, &quot;SByte&quot;, &quot;Int16&quot;, &quot;UInt16&quot;, &quot;UInt32&quot;, &quot;Int64&quot;, &quot;UInt64&quot;]
+  types = [&quot;Byte&quot;, &quot;SByte&quot;, &quot;Int16&quot;, &quot;UInt16&quot;, &quot;UInt32&quot;, &quot;Int64&quot;, &quot;UInt64&quot;, &quot;Decimal&quot;]
   
   result = &quot;&quot;
   types.each do |type|</diff>
      <filename>Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Extensions/ClrInteger.Generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -224,6 +224,11 @@ namespace IronRuby.Builtins {
                 new System.Func&lt;IronRuby.Builtins.RubyClass, Microsoft.Scripting.Math.BigInteger, System.Byte&gt;(IronRuby.Builtins.ByteOps.InducedFrom), 
                 new System.Func&lt;IronRuby.Builtins.RubyClass, System.Double, System.Byte&gt;(IronRuby.Builtins.ByteOps.InducedFrom)
             );
+            ExtendClass(typeof(System.Decimal), def47, LoadSystem__Decimal_Instance, LoadSystem__Decimal_Class, null, IronRuby.Builtins.RubyModule.EmptyArray, 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, System.Int32, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom), 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, Microsoft.Scripting.Math.BigInteger, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom), 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, System.Double, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom)
+            );
             ExtendClass(typeof(System.Int16), def47, LoadSystem__Int16_Instance, LoadSystem__Int16_Class, null, IronRuby.Builtins.RubyModule.EmptyArray, 
                 new System.Func&lt;IronRuby.Builtins.RubyClass, System.Int32, System.Int16&gt;(IronRuby.Builtins.Int16Ops.InducedFrom), 
                 new System.Func&lt;IronRuby.Builtins.RubyClass, Microsoft.Scripting.Math.BigInteger, System.Int16&gt;(IronRuby.Builtins.Int16Ops.InducedFrom), 
@@ -2905,8 +2910,8 @@ namespace IronRuby.Builtins {
             );
             
             module.DefineLibraryMethod(&quot;printf&quot;, 0x52, 
-                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, IronRuby.Builtins.MutableString, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted), 
-                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, System.Object, System.Object, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted)
+                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, System.Object, System.Object, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted), 
+                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, IronRuby.Builtins.MutableString, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted)
             );
             
             module.DefineLibraryMethod(&quot;private_methods&quot;, 0x51, 
@@ -3219,8 +3224,8 @@ namespace IronRuby.Builtins {
             );
             
             module.DefineLibraryMethod(&quot;printf&quot;, 0x61, 
-                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, IronRuby.Builtins.MutableString, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted), 
-                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, System.Object, System.Object, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted)
+                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, System.Object, System.Object, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted), 
+                new System.Action&lt;IronRuby.Builtins.StringFormatterSiteStorage, IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.BinaryOpStorage, System.Object, IronRuby.Builtins.MutableString, System.Object[]&gt;(IronRuby.Builtins.KernelOps.PrintFormatted)
             );
             
             module.DefineLibraryMethod(&quot;proc&quot;, 0x61, 
@@ -3912,7 +3917,7 @@ namespace IronRuby.Builtins {
                 new System.Func&lt;IronRuby.Runtime.BlockParam, IronRuby.Builtins.RubyModule, System.Object&gt;(IronRuby.Builtins.ModuleOps.Evaluate)
             );
             
-            module.DefineLibraryMethod(&quot;module_exec&quot;, 0x51,
+            module.DefineLibraryMethod(&quot;module_exec&quot;, 0x51, 
                 new System.Func&lt;IronRuby.Runtime.BlockParam, IronRuby.Builtins.RubyModule, System.Object[], System.Object&gt;(IronRuby.Builtins.ModuleOps.Execute)
             );
             
@@ -4845,9 +4850,9 @@ namespace IronRuby.Builtins {
             );
             
             module.DefineLibraryMethod(&quot;sub&quot;, 0x51, 
+                new System.Func&lt;IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, System.Object&gt;(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst), 
                 new System.Func&lt;IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString, System.Object&gt;(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst), 
-                new System.Func&lt;IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString&gt;(IronRuby.Builtins.MutableStringOps.ReplaceFirst), 
-                new System.Func&lt;IronRuby.Runtime.ConversionStorage&lt;IronRuby.Builtins.MutableString&gt;, IronRuby.Runtime.RubyScope, IronRuby.Runtime.BlockParam, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, System.Object&gt;(IronRuby.Builtins.MutableStringOps.BlockReplaceFirst)
+                new System.Func&lt;IronRuby.Runtime.RubyScope, IronRuby.Builtins.MutableString, IronRuby.Builtins.RubyRegex, IronRuby.Builtins.MutableString, IronRuby.Builtins.MutableString&gt;(IronRuby.Builtins.MutableStringOps.ReplaceFirst)
             );
             
             module.DefineLibraryMethod(&quot;sub!&quot;, 0x51, 
@@ -5563,6 +5568,27 @@ namespace IronRuby.Builtins {
             
         }
         
+        private static void LoadSystem__Decimal_Instance(IronRuby.Builtins.RubyModule/*!*/ module) {
+            LoadIronRuby__Clr__BigInteger_Instance(module);
+            module.DefineLibraryMethod(&quot;inspect&quot;, 0x51, 
+                new System.Func&lt;System.Object, IronRuby.Builtins.MutableString&gt;(IronRuby.Builtins.DecimalOps.Inspect)
+            );
+            
+            module.DefineLibraryMethod(&quot;size&quot;, 0x51, 
+                new System.Func&lt;System.Decimal, System.Int32&gt;(IronRuby.Builtins.DecimalOps.Size)
+            );
+            
+        }
+        
+        private static void LoadSystem__Decimal_Class(IronRuby.Builtins.RubyModule/*!*/ module) {
+            module.DefineLibraryMethod(&quot;induced_from&quot;, 0x61, 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, System.Int32, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom), 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, Microsoft.Scripting.Math.BigInteger, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom), 
+                new System.Func&lt;IronRuby.Builtins.RubyClass, System.Double, System.Decimal&gt;(IronRuby.Builtins.DecimalOps.InducedFrom)
+            );
+            
+        }
+        
         private static void LoadSystem__IComparable_Instance(IronRuby.Builtins.RubyModule/*!*/ module) {
             module.DefineLibraryMethod(&quot;&lt;=&gt;&quot;, 0x51, 
                 new System.Func&lt;System.IComparable, System.Object, System.Int32&gt;(IronRuby.Builtins.IComparableOps.Compare)</diff>
      <filename>Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-&#65279;=begin
+=begin
    Utilities for C# source file generation.
 =end
 </diff>
      <filename>Merlin/Main/Languages/Ruby/Scripts/CodeGenerator.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a25e18bd49aa22d64cd58e976dde4e7df25ee493</id>
    </parent>
  </parents>
  <author>
    <name>Jim Deville</name>
    <email>jdeville@microsoft.com</email>
  </author>
  <url>http://github.com/shri/ironruby/commit/0f1af195def1504562871a0bd68e14b742192fb1</url>
  <id>0f1af195def1504562871a0bd68e14b742192fb1</id>
  <committed-date>2009-09-01T10:08:30-07:00</committed-date>
  <authored-date>2009-09-01T10:08:30-07:00</authored-date>
  <message>add System::Decimal to the generated C# code for CLR integers, note that the generator did not add a cast for the double comparison, I did that.</message>
  <tree>13dce7ff4f382d819c00bf9a0df14d5210e54364</tree>
  <committer>
    <name>Jim Deville</name>
    <email>jdeville@microsoft.com</email>
  </committer>
</commit>
