edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/ClassInitGenerator/Program.cs;C444052 File: Program.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/ClassInitGenerator/Program.cs;C444052 (server) 5/20/2008 1:59 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/ClassInitGenerator/Program.cs;events @@ -478,6 +478,11 @@ def = new MethodDef(); def.Name = attr.Name; def.Attributes = attr.MethodAttributes; + + if (Builtins) { + def.Attributes |= RubyMethodAttributes.NoEvent; + } + def.BuildConfig = attr.BuildConfig; methods.Add(attr.Name, def); @@ -857,7 +862,7 @@ private void GenerateHiddenMethods(IDictionary/*!*/ methods) { foreach (KeyValuePair entry in methods) { if (entry.Value == HiddenMethod.Undefined) { - _output.WriteLine("module.UndefineMethod(\"{0}\");", entry.Key); + _output.WriteLine("module.UndefineLibraryMethod(\"{0}\");", entry.Key); } else { _output.WriteLine("module.HideMethod(\"{0}\");", entry.Key); } @@ -877,7 +882,7 @@ TypeName(def.Overloads[0].DeclaringType), def.Overloads[0].Name); } else { - _output.Write("module.DefineMethod(\"{0}\", 0x{1:x}", def.Name, (int)def.Attributes); + _output.Write("module.DefineLibraryMethod(\"{0}\", 0x{1:x}", def.Name, (int)def.Attributes); _output.Write(", "); =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Loader/Load add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Loader/Load/a File: a =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Loader/Load/a;events @@ -1,0 +1,1 @@ +puts 'hello' \ No newline at end of file =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Loader/Load/test.rb File: test.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Loader/Load/test.rb;events @@ -1,0 +1,1 @@ +load 'a' \ No newline at end of file =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Methods/method_events.rb File: method_events.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Methods/method_events.rb;events @@ -1,0 +1,80 @@ +class Module + def method_added name + puts "+ #{self}##{name} -> #{self.instance_methods(false).include?(name.to_s)}" + end + + def method_removed name + puts "- #{self}##{name} -> #{self.instance_methods(false).include?(name.to_s)}" + end + + def method_undefined name + puts "U #{self}##{name} -> #{self.instance_methods(false).include?(name.to_s)}" + end +end + +class Object + def foo + end +end + +#require 'yaml' +#require 'thread' + +module M + def foo + end + + puts '> module_function:' + module_function :foo + + puts '> define_method:' + define_method :bar do end + + puts '> alias_method:' + alias_method :baz, :foo + + puts '> redef method:' + def foo + end + + puts '> attr:' + attr :myattr + + puts '> remove_method:' + remove_method :foo + + puts '> undef:' + undef :bar + + + class << self + puts '> def S1.f:' + def f; end + + puts '> def S1.g:' + def g; end + + puts '> undef S1.f:' + undef f + + puts '> remove S1.g:' + remove_method :g + + class << self + puts '> def S2.f:' + def f + end + + puts '> def S2.g:' + def g; end + + puts '> undef S2.f:' + undef f + + puts '> remove S2.g:' + remove_method :g + end + end + +end + =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Methods/method_events_libraries.rb File: method_events_libraries.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Experimental/Methods/method_events_libraries.rb;events @@ -1,0 +1,8 @@ +class Module + def method_added name + puts "#{self.name}##{name}" + end +end + +require 'yaml' +p [1,2,3].to_yaml =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;C443395 File: RubyTests.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;C443395 (server) 5/19/2008 5:47 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;events @@ -268,6 +268,7 @@ AliasMethodLookup, UndefMethodLookup, + MethodAdded1, Scenario_Singletons1, Scenario_Singletons2, =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/LoaderTests.cs;C442093 File: LoaderTests.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/LoaderTests.cs;C442093 (server) 5/20/2008 1:57 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/LoaderTests.cs;events @@ -153,7 +153,7 @@ private void ObjectMonkeyPatch(RubyModule/*!*/ module) { Debug.Assert(module == Context.ObjectClass); - module.DefineMethod("object_monkey", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("object_monkey", 0x9, new System.Delegate[] { new Function(delegate(object obj) { return "This is monkey!"; }), =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/MethodTests.cs;C440810 File: MethodTests.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/MethodTests.cs;C440810 (server) 5/19/2008 5:45 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/MethodTests.cs;events @@ -85,5 +85,19 @@ }, @"123"); } + + public void MethodAdded1() { + AssertOutput(delegate { + CompilerTest(@" +class Module + def method_added name + puts name + end +end +"); + }, @" +method_added +"); + } } } =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/enumerator.rb File: enumerator.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/enumerator.rb;events @@ -1,0 +1,1 @@ +?load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.Enumerator' =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/fcntl.rb File: fcntl.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/fcntl.rb;events @@ -1,0 +1,1 @@ +?load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.FileControl' =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/GenerateInitializers.cmd;C443395 File: GenerateInitializers.cmd =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/GenerateInitializers.cmd;C443395 (server) 5/20/2008 12:01 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/GenerateInitializers.cmd;events @@ -1,1 +1,1 @@ -"%MERLIN_ROOT%\Bin\Debug\ClassInitGenerator" "%MERLIN_ROOT%\Bin\Debug\IronRuby.Libraries.dll" /libraries:Ruby.Builtins;Ruby.StandardLibrary.Threading;Ruby.StandardLibrary.Sockets;Ruby.StandardLibrary.OpenSsl;Ruby.StandardLibrary.Digest;Ruby.StandardLibrary.Zlib /out:%~dp0\Initializers.Generated.cs +"%MERLIN_ROOT%\Bin\Debug\ClassInitGenerator" "%MERLIN_ROOT%\Bin\Debug\IronRuby.Libraries.dll" /libraries:Ruby.Builtins;Ruby.StandardLibrary.Threading;Ruby.StandardLibrary.Sockets;Ruby.StandardLibrary.OpenSsl;Ruby.StandardLibrary.Digest;Ruby.StandardLibrary.Zlib;Ruby.StandardLibrary.StringIO;Ruby.StandardLibrary.StringScanner;Ruby.StandardLibrary.Enumerator;Ruby.StandardLibrary.FunctionControl /out:%~dp0\Initializers.Generated.cs =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C444052 File: Initializers.Generated.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C444052 (server) 5/20/2008 11:37 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;events @@ -4,6 +4,10 @@ [assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.OpenSsl.OpenSslLibraryInitializer))] [assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.Digest.DigestLibraryInitializer))] [assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.Zlib.ZlibLibraryInitializer))] +[assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.StringIO.StringIOLibraryInitializer))] +[assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.StringScanner.StringScannerLibraryInitializer))] +[assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.Enumerator.EnumeratorLibraryInitializer))] +[assembly: Ruby.RubyLibraryAttribute(typeof(Ruby.StandardLibrary.FunctionControl.FunctionControlLibraryInitializer))] namespace Ruby.Builtins { public sealed class BuiltinsLibraryInitializer : Ruby.Builtins.LibraryInitializer { @@ -26,33 +30,32 @@ // Skipped primitive: __ClassSingleton // Skipped primitive: __MainSingleton - Ruby.Builtins.RubyModule def24 = DefineGlobalModule("Comparable", typeof(Ruby.Builtins.Comparable), new System.Action(LoadComparable_Instance), null, Ruby.Builtins.RubyModule.EmptyArray); - Ruby.Builtins.RubyModule def2 = DefineGlobalModule("Enumerable", typeof(Ruby.Builtins.Enumerable), new System.Action(LoadEnumerable_Instance), null, Ruby.Builtins.RubyModule.EmptyArray); - Ruby.Builtins.RubyModule def5 = DefineGlobalModule("Errno", typeof(Ruby.Builtins.Errno), null, null, Ruby.Builtins.RubyModule.EmptyArray); - DefineGlobalModule("Fcntl", typeof(Ruby.Builtins.Fcntl), new System.Action(LoadFcntl_Instance), null, Ruby.Builtins.RubyModule.EmptyArray); + Ruby.Builtins.RubyModule def23 = DefineGlobalModule("Comparable", typeof(Ruby.Builtins.Comparable), new System.Action(LoadComparable_Instance), null, Ruby.Builtins.RubyModule.EmptyArray); + Ruby.Builtins.RubyModule def14 = DefineGlobalModule("Enumerable", typeof(Ruby.Builtins.Enumerable), new System.Action(LoadEnumerable_Instance), null, Ruby.Builtins.RubyModule.EmptyArray); + Ruby.Builtins.RubyModule def3 = DefineGlobalModule("Errno", typeof(Ruby.Builtins.Errno), null, null, Ruby.Builtins.RubyModule.EmptyArray); // Skipped primitive: Kernel DefineGlobalModule("Marshal", typeof(Ruby.Builtins.RubyMarshal), new System.Action(LoadMarshal_Instance), new System.Action(LoadMarshal_Class), Ruby.Builtins.RubyModule.EmptyArray); DefineGlobalModule("Math", typeof(Ruby.Builtins.RubyMath), new System.Action(LoadMath_Instance), new System.Action(LoadMath_Class), Ruby.Builtins.RubyModule.EmptyArray); ExtendClass(typeof(Microsoft.Scripting.Actions.TypeTracker), new System.Action(LoadMicrosoft__Scripting__Actions__TypeTracker_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyModule def20 = DefineGlobalModule("Precision", typeof(Ruby.Builtins.Precision), new System.Action(LoadPrecision_Instance), new System.Action(LoadPrecision_Class), Ruby.Builtins.RubyModule.EmptyArray); + Ruby.Builtins.RubyModule def19 = DefineGlobalModule("Precision", typeof(Ruby.Builtins.Precision), new System.Action(LoadPrecision_Instance), new System.Action(LoadPrecision_Class), Ruby.Builtins.RubyModule.EmptyArray); DefineGlobalModule("Process", typeof(Ruby.Builtins.RubyProcess), null, new System.Action(LoadProcess_Class), Ruby.Builtins.RubyModule.EmptyArray); ExtendClass(typeof(System.Type), new System.Action(LoadSystem__Type_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); // Skipped primitive: __ClassSingletonSingleton #if !SILVERLIGHT - object def1 = DefineSingleton(new System.Action(Load__Singleton_ArgFilesSingletonOps_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }); + object def1 = DefineSingleton(new System.Action(Load__Singleton_ArgFilesSingletonOps_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }); #endif #if !SILVERLIGHT - object def4 = DefineSingleton(new System.Action(Load__Singleton_EnvironmentSingletonOps_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }); + object def2 = DefineSingleton(new System.Action(Load__Singleton_EnvironmentSingletonOps_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }); #endif // Skipped primitive: Object - ExtendModule(typeof(System.Collections.Generic.IDictionary), new System.Action(LoadSystem__Collections__Generic__IDictionary_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }); - Ruby.Builtins.RubyModule def28 = ExtendModule(typeof(System.Collections.IEnumerable), new System.Action(LoadSystem__Collections__IEnumerable_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }); - ExtendModule(typeof(System.Collections.IList), new System.Action(LoadSystem__Collections__IList_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }); - ExtendModule(typeof(System.IComparable), new System.Action(LoadSystem__IComparable_Instance), null, new Ruby.Builtins.RubyModule[] {def24, }); - DefineGlobalClass("Time", typeof(System.DateTime), classRef0, new System.Action(LoadTime_Instance), new System.Action(LoadTime_Class), new Ruby.Builtins.RubyModule[] {def24, }, new System.Delegate[] { + ExtendModule(typeof(System.Collections.Generic.IDictionary), new System.Action(LoadSystem__Collections__Generic__IDictionary_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }); + Ruby.Builtins.RubyModule def28 = ExtendModule(typeof(System.Collections.IEnumerable), new System.Action(LoadSystem__Collections__IEnumerable_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }); + ExtendModule(typeof(System.Collections.IList), new System.Action(LoadSystem__Collections__IList_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }); + Ruby.Builtins.RubyModule def27 = ExtendModule(typeof(System.IComparable), new System.Action(LoadSystem__IComparable_Instance), null, new Ruby.Builtins.RubyModule[] {def23, }); + DefineGlobalClass("Time", typeof(System.DateTime), classRef0, new System.Action(LoadTime_Instance), new System.Action(LoadTime_Class), new Ruby.Builtins.RubyModule[] {def23, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Create), }); - DefineGlobalClass("Array", typeof(Ruby.Builtins.RubyArray), Context.ObjectClass, new System.Action(LoadArray_Instance), new System.Action(LoadArray_Class), new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { + DefineGlobalClass("Array", typeof(Ruby.Builtins.RubyArray), Context.ObjectClass, new System.Action(LoadArray_Instance), new System.Action(LoadArray_Class), new Ruby.Builtins.RubyModule[] {def14, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.CreateArray), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.CreateArray), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.CreateArray), @@ -62,23 +65,17 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.CreateArray), }); DefineGlobalClass("Binding", typeof(Ruby.Builtins.Binding), Context.ObjectClass, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("ClrString", typeof(System.String), Context.ObjectClass, new System.Action(LoadClrString_Instance), null, new Ruby.Builtins.RubyModule[] {def28, }, null); - DefineGlobalClass("Dir", typeof(Ruby.Builtins.RubyDir), Context.ObjectClass, new System.Action(LoadDir_Instance), new System.Action(LoadDir_Class), new Ruby.Builtins.RubyModule[] {def2, }, null); - Ruby.Builtins.RubyClass def3 = DefineClass("Enumerable::Enumerator", typeof(Ruby.Builtins.Enumerable.Enumerator), Context.ObjectClass, null, null, new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Enumerator.CreateForEach), - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Enumerator.Create), - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Enumerator.Create), - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Enumerator.Create), - }); - Ruby.Builtins.RubyClass def25 = Context.ExceptionClass = DefineGlobalClass("Exception", typeof(System.Exception), Context.ObjectClass, new System.Action(LoadException_Instance), new System.Action(LoadException_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("ClrString", typeof(System.String), Context.ObjectClass, new System.Action(LoadClrString_Instance), null, new Ruby.Builtins.RubyModule[] {def27, def28, }, null); + DefineGlobalClass("Dir", typeof(Ruby.Builtins.RubyDir), Context.ObjectClass, new System.Action(LoadDir_Instance), new System.Action(LoadDir_Class), new Ruby.Builtins.RubyModule[] {def14, }, null); + Ruby.Builtins.RubyClass def24 = Context.ExceptionClass = DefineGlobalClass("Exception", typeof(System.Exception), Context.ObjectClass, new System.Action(LoadException_Instance), new System.Action(LoadException_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.Factory), }); Context.FalseClass = DefineGlobalClass("FalseClass", typeof(Ruby.Builtins.FalseClass), Context.ObjectClass, new System.Action(LoadFalseClass_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("Hash", typeof(Ruby.Builtins.Hash), Context.ObjectClass, new System.Action(LoadHash_Instance), new System.Action(LoadHash_Class), new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { + DefineGlobalClass("Hash", typeof(Ruby.Builtins.Hash), Context.ObjectClass, new System.Action(LoadHash_Instance), new System.Action(LoadHash_Class), new Ruby.Builtins.RubyModule[] {def14, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.Hash), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.Hash), }); - Ruby.Builtins.RubyClass def26 = DefineGlobalClass("IO", typeof(Ruby.Builtins.RubyIO), Context.ObjectClass, new System.Action(LoadIO_Instance), new System.Action(LoadIO_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def25 = DefineGlobalClass("IO", typeof(Ruby.Builtins.RubyIO), Context.ObjectClass, new System.Action(LoadIO_Instance), new System.Action(LoadIO_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.CreateIO), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.CreateIO), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.CreateIO), @@ -87,15 +84,15 @@ DefineGlobalClass("Method", typeof(Ruby.Builtins.RubyMethod), Context.ObjectClass, new System.Action(LoadMethod_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); // Skipped primitive: Module Context.NilClass = DefineGlobalClass("NilClass", typeof(Microsoft.Scripting.None), Context.ObjectClass, new System.Action(LoadNilClass_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def19 = DefineGlobalClass("Numeric", typeof(Ruby.Builtins.Numeric), Context.ObjectClass, new System.Action(LoadNumeric_Instance), null, new Ruby.Builtins.RubyModule[] {def24, }, null); + Ruby.Builtins.RubyClass def18 = DefineGlobalClass("Numeric", typeof(Ruby.Builtins.Numeric), Context.ObjectClass, new System.Action(LoadNumeric_Instance), null, new Ruby.Builtins.RubyModule[] {def23, }, null); DefineGlobalClass("Proc", typeof(Ruby.Builtins.Proc), Context.ObjectClass, new System.Action(LoadProc_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ProcOps.CreateProc), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ProcOps.CreateProc), }); - DefineGlobalClass("Range", typeof(Ruby.Builtins.Range), Context.ObjectClass, new System.Action(LoadRange_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { + DefineGlobalClass("Range", typeof(Ruby.Builtins.Range), Context.ObjectClass, new System.Action(LoadRange_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.CreateRange), }); - DefineGlobalClass("Regexp", typeof(Ruby.Builtins.RubyRegex), Context.ObjectClass, new System.Action(LoadRegexp_Instance), new System.Action(LoadRegexp_Class), new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { + DefineGlobalClass("Regexp", typeof(Ruby.Builtins.RubyRegex), Context.ObjectClass, new System.Action(LoadRegexp_Instance), new System.Action(LoadRegexp_Class), new Ruby.Builtins.RubyModule[] {def14, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Create), @@ -105,13 +102,12 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Create), }); - DefineGlobalClass("String", typeof(Ruby.Builtins.MutableString), Context.ObjectClass, new System.Action(LoadString_Instance), null, new Ruby.Builtins.RubyModule[] {def2, def24, }, new System.Delegate[] { + DefineGlobalClass("String", typeof(Ruby.Builtins.MutableString), Context.ObjectClass, new System.Action(LoadString_Instance), null, new Ruby.Builtins.RubyModule[] {def14, def23, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Create), }); - DefineGlobalClass("StringScanner", typeof(Ruby.Builtins.StringScanner), Context.ObjectClass, new System.Action(LoadStringScanner_Instance), new System.Action(LoadStringScanner_Class), Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def13 = DefineGlobalClass("Struct", typeof(Ruby.Builtins.RubyStruct), Context.ObjectClass, new System.Action(LoadStruct_Instance), null, new Ruby.Builtins.RubyModule[] {def2, }, new System.Delegate[] { + Ruby.Builtins.RubyClass def11 = DefineGlobalClass("Struct", typeof(Ruby.Builtins.RubyStruct), Context.ObjectClass, new System.Action(LoadStruct_Instance), null, new Ruby.Builtins.RubyModule[] {def14, }, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.CreateNamed), }); DefineGlobalClass("Symbol", typeof(Microsoft.Scripting.SymbolId), Context.ObjectClass, new System.Action(LoadSymbol_Instance), new System.Action(LoadSymbol_Class), Ruby.Builtins.RubyModule.EmptyArray, null); @@ -119,132 +115,128 @@ Context.TrueClass = DefineGlobalClass("TrueClass", typeof(Ruby.Builtins.TrueClass), Context.ObjectClass, new System.Action(LoadTrueClass_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); DefineGlobalClass("UnboundMethod", typeof(Ruby.Builtins.UnboundMethod), Context.ObjectClass, new System.Action(LoadUnboundMethod_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); // Skipped primitive: Class - DefineGlobalClass("File", typeof(Ruby.Builtins.RubyFile), def26, new System.Action(LoadFile_Instance), new System.Action(LoadFile_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("File", typeof(Ruby.Builtins.RubyFile), def25, new System.Action(LoadFile_Instance), new System.Action(LoadFile_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.CreateIO), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.CreateIO), }); - DefineGlobalClass("Float", typeof(System.Double), def19, new System.Action(LoadFloat_Instance), new System.Action(LoadFloat_Class), new Ruby.Builtins.RubyModule[] {def20, }, null); - Ruby.Builtins.RubyClass def15 = DefineGlobalClass("Integer", typeof(Ruby.Builtins.Integer), def19, new System.Action(LoadInteger_Instance), new System.Action(LoadInteger_Class), new Ruby.Builtins.RubyModule[] {def20, }, null); - DefineGlobalClass("NoMemoryError", typeof(Ruby.Builtins.NoMemoryError), def25, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def22 = DefineGlobalClass("ScriptError", typeof(Ruby.Builtins.ScriptError), def25, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("Float", typeof(System.Double), def18, new System.Action(LoadFloat_Instance), new System.Action(LoadFloat_Class), new Ruby.Builtins.RubyModule[] {def19, }, null); + Ruby.Builtins.RubyClass def13 = DefineGlobalClass("Integer", typeof(Ruby.Builtins.Integer), def18, new System.Action(LoadInteger_Instance), new System.Action(LoadInteger_Class), new Ruby.Builtins.RubyModule[] {def19, }, null); + DefineGlobalClass("NoMemoryError", typeof(Ruby.Builtins.NoMemoryError), def24, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def21 = DefineGlobalClass("ScriptError", typeof(Ruby.Builtins.ScriptError), def24, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ScriptErrorOps.Factory), }); - Ruby.Builtins.RubyClass def21 = DefineGlobalClass("SignalException", typeof(Ruby.Builtins.SignalException), def25, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def23 = Context.StandardErrorClass = DefineGlobalClass("StandardError", typeof(System.SystemException), def25, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def20 = DefineGlobalClass("SignalException", typeof(Ruby.Builtins.SignalException), def24, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def22 = Context.StandardErrorClass = DefineGlobalClass("StandardError", typeof(System.SystemException), def24, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemExceptionOps.Factory), }); - DefineGlobalClass("StringIO", typeof(Ruby.Builtins.StringIO), def26, new System.Action(LoadStringIO_Instance), new System.Action(LoadStringIO_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.CreateIO), - }); - Ruby.Builtins.RubyClass def14 = DefineClass("Struct::Tms", typeof(Ruby.Builtins.RubyStructOps.Tms), def13, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def12 = DefineClass("Struct::Tms", typeof(Ruby.Builtins.RubyStructOps.Tms), def11, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Tms.CreateInstance), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Tms.CreateInstance), }); - DefineGlobalClass("SystemExit", typeof(Ruby.Builtins.SystemExit), def25, new System.Action(LoadSystemExit_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("SystemExit", typeof(Ruby.Builtins.SystemExit), def24, new System.Action(LoadSystemExit_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemExitOps.Factory), }); - DefineGlobalClass("SystemStackError", typeof(Ruby.Builtins.SystemStackError), def25, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("SystemStackError", typeof(Ruby.Builtins.SystemStackError), def24, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemStackErrorOps.Factory), }); - DefineGlobalClass("ArgumentError", typeof(System.ArgumentException), def23, new System.Action(LoadArgumentError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("ArgumentError", typeof(System.ArgumentException), def22, new System.Action(LoadArgumentError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArgumentErrorOps.Factory), }); - DefineGlobalClass("Bignum", typeof(Microsoft.Scripting.Math.BigInteger), def15, new System.Action(LoadBignum_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("Fixnum", typeof(System.Int32), def15, new System.Action(LoadFixnum_Instance), new System.Action(LoadFixnum_Class), Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("IndexError", typeof(System.IndexOutOfRangeException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("Bignum", typeof(Microsoft.Scripting.Math.BigInteger), def13, new System.Action(LoadBignum_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("Fixnum", typeof(System.Int32), def13, new System.Action(LoadFixnum_Instance), new System.Action(LoadFixnum_Class), Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("IndexError", typeof(System.IndexOutOfRangeException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IndexErrorOps.Factory), }); - DefineGlobalClass("Interrupt", typeof(Ruby.Builtins.Interrupt), def21, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def16 = DefineGlobalClass("IOError", typeof(System.IO.IOException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("Interrupt", typeof(Ruby.Builtins.Interrupt), def20, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def15 = DefineGlobalClass("IOError", typeof(System.IO.IOException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IOErrorOps.Factory), }); - DefineGlobalClass("LoadError", typeof(Ruby.Builtins.LoadError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("LoadError", typeof(Ruby.Builtins.LoadError), def21, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.LoadErrorOps.Factory), }); - DefineGlobalClass("LocalJumpError", typeof(Ruby.Builtins.LocalJumpError), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("LocalJumpError", typeof(Ruby.Builtins.LocalJumpError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.LocalJumpErrorOps.Factory), }); - Ruby.Builtins.RubyClass def27 = DefineGlobalClass("NameError", typeof(System.MemberAccessException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def26 = DefineGlobalClass("NameError", typeof(System.MemberAccessException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NameErrorOps.Factory), }); - DefineGlobalClass("NotImplementedError", typeof(Ruby.Builtins.NotImplementedError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("NotImplementedError", typeof(Ruby.Builtins.NotImplementedError), def21, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NotImplementedErrorOps.Factory), }); - Ruby.Builtins.RubyClass def18 = DefineGlobalClass("RangeError", typeof(System.ArgumentOutOfRangeException), def23, new System.Action(LoadRangeError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def17 = DefineGlobalClass("RangeError", typeof(System.ArgumentOutOfRangeException), def22, new System.Action(LoadRangeError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeErrorOps.Factory), }); - DefineGlobalClass("RegexpError", typeof(Ruby.Builtins.RegexpError), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("RegexpError", typeof(Ruby.Builtins.RegexpError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpErrorOps.Factory), }); - DefineGlobalClass("RuntimeError", typeof(Ruby.Builtins.RuntimeError), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("SecurityError", typeof(System.Security.SecurityException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("RuntimeError", typeof(Ruby.Builtins.RuntimeError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("SecurityError", typeof(System.Security.SecurityException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SecurityErrorOps.Factory), }); - DefineGlobalClass("SyntaxError", typeof(Ruby.Builtins.SyntaxError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("SyntaxError", typeof(Ruby.Builtins.SyntaxError), def21, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SyntaxErrorOps.Factory), }); - Ruby.Builtins.RubyClass def17 = DefineGlobalClass("SystemCallError", typeof(System.Runtime.InteropServices.ExternalException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + Ruby.Builtins.RubyClass def16 = DefineGlobalClass("SystemCallError", typeof(System.Runtime.InteropServices.ExternalException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemCallErrorOps.Factory), }); - DefineGlobalClass("ThreadError", typeof(Ruby.Builtins.ThreadError), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("TypeError", typeof(System.InvalidOperationException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("ThreadError", typeof(Ruby.Builtins.ThreadError), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("TypeError", typeof(System.InvalidOperationException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TypeErrorOps.Factory), }); - DefineGlobalClass("ZeroDivisionError", typeof(System.DivideByZeroException), def23, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("ZeroDivisionError", typeof(System.DivideByZeroException), def22, null, null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ZeroDivisionErrorOps.Factory), }); - DefineGlobalClass("EOFError", typeof(Ruby.Builtins.EOFError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def6 = DefineClass("Errno::EACCES", typeof(Ruby.Builtins.Errno.AccessError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def7 = DefineClass("Errno::EBADF", typeof(Ruby.Builtins.Errno.BadFileDescriptorError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def8 = DefineClass("Errno::EDOM", typeof(Ruby.Builtins.Errno.DomainError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def9 = DefineClass("Errno::EEXIST", typeof(Ruby.Builtins.Errno.ExistError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def10 = DefineClass("Errno::EINVAL", typeof(Ruby.Builtins.Errno.InvalidError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def11 = DefineClass("Errno::ENOENT", typeof(Ruby.Builtins.Errno.NoEntryError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - Ruby.Builtins.RubyClass def12 = DefineClass("Errno::ENOTDIR", typeof(Ruby.Builtins.Errno.NotDirectoryError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("FloatDomainError", typeof(Ruby.Builtins.FloatDomainError), def18, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); - DefineGlobalClass("NoMethodError", typeof(System.MissingMethodException), def27, new System.Action(LoadNoMethodError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + DefineGlobalClass("EOFError", typeof(Ruby.Builtins.EOFError), def15, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def4 = DefineClass("Errno::EACCES", typeof(Ruby.Builtins.Errno.AccessError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def5 = DefineClass("Errno::EBADF", typeof(Ruby.Builtins.Errno.BadFileDescriptorError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def6 = DefineClass("Errno::EDOM", typeof(Ruby.Builtins.Errno.DomainError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def7 = DefineClass("Errno::EEXIST", typeof(Ruby.Builtins.Errno.ExistError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def8 = DefineClass("Errno::EINVAL", typeof(Ruby.Builtins.Errno.InvalidError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def9 = DefineClass("Errno::ENOENT", typeof(Ruby.Builtins.Errno.NoEntryError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + Ruby.Builtins.RubyClass def10 = DefineClass("Errno::ENOTDIR", typeof(Ruby.Builtins.Errno.NotDirectoryError), def16, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("FloatDomainError", typeof(Ruby.Builtins.FloatDomainError), def17, null, null, Ruby.Builtins.RubyModule.EmptyArray, null); + DefineGlobalClass("NoMethodError", typeof(System.MissingMethodException), def26, new System.Action(LoadNoMethodError_Instance), null, Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NoMethodErrorOps.Factory), }); #if !SILVERLIGHT Context.ObjectClass.SetConstant("ARGF", def1); #endif #if !SILVERLIGHT - Context.ObjectClass.SetConstant("ENV", def4); + Context.ObjectClass.SetConstant("ENV", def2); #endif - def2.SetConstant("Enumerator", def3); - def13.SetConstant("Tms", def14); - def5.SetConstant("EACCES", def6); - def5.SetConstant("EBADF", def7); - def5.SetConstant("EDOM", def8); - def5.SetConstant("EEXIST", def9); - def5.SetConstant("EINVAL", def10); - def5.SetConstant("ENOENT", def11); - def5.SetConstant("ENOTDIR", def12); + def11.SetConstant("Tms", def12); + def3.SetConstant("EACCES", def4); + def3.SetConstant("EBADF", def5); + def3.SetConstant("EDOM", def6); + def3.SetConstant("EEXIST", def7); + def3.SetConstant("EINVAL", def8); + def3.SetConstant("ENOENT", def9); + def3.SetConstant("ENOTDIR", def10); } private void Load__ClassSingleton_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("allocate", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("allocate", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.ClassSingletonOps.Allocate), }); - module.DefineMethod("inherited", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("inherited", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ClassSingletonOps.Inherited), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassSingletonOps.Initialize), }); - module.DefineMethod("initialize_copy", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize_copy", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassSingletonOps.InitializeCopy), }); - module.DefineMethod("new", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("new", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.ClassSingletonOps.New), }); - module.DefineMethod("superclass", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("superclass", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassSingletonOps.GetSuperClass), }); @@ -257,11 +249,11 @@ private void Load__ClassSingletonSingleton_Instance(Ruby.Builtins.RubyModule/*!*/ module) { Load__ClassSingleton_Instance(module); - module.DefineMethod("constants", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("constants", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassSingletonSingletonOps.GetConstants), }); - module.DefineMethod("nesting", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nesting", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassSingletonSingletonOps.GetNesting), }); @@ -274,23 +266,23 @@ private void Load__MainSingleton_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("include", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MainSingletonOps.Include), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MainSingletonOps.Initialize), }); - module.DefineMethod("private", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("private", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MainSingletonOps.SetPrivateVisibility), }); - module.DefineMethod("public", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("public", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MainSingletonOps.SetPublicVisibility), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MainSingletonOps.ToS), }); @@ -303,7 +295,7 @@ #if !SILVERLIGHT private void Load__Singleton_ArgFilesSingletonOps_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("filename", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("filename", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArgFilesSingletonOps.GetCurrentFileName), }); @@ -318,7 +310,7 @@ private void LoadArray_Instance(Ruby.Builtins.RubyModule/*!*/ module) { LoadSystem__Collections__IList_Instance(module); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.Initialize), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.Initialize), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.Initialize), @@ -328,27 +320,27 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.Initialize), }); - module.DefineMethod("reverse!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.InPlaceReverse), }); - module.DefineMethod("reverse_each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse_each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.ReverseEach), }); - module.DefineMethod("sort", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.Sort), }); - module.DefineMethod("sort!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.SortInPlace), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.ToArray), }); - module.DefineMethod("to_ary", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_ary", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.ToArray), }); @@ -356,7 +348,7 @@ private void LoadArray_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ArrayOps.MakeArray), }); @@ -364,148 +356,148 @@ private void LoadBignum_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("-", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Subtract), }); - module.DefineMethod("%", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("%", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.ModuloOp), }); - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.And), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.And), }); - module.DefineMethod("*", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("*", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Multiply), }); - module.DefineMethod("**", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("**", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Power), }); - module.DefineMethod("/", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("/", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Divide), }); - module.DefineMethod("-@", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-@", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Negate), }); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Bit), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Bit), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Bit), }); - module.DefineMethod("^", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("^", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Xor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Xor), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.BitwiseOr), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.BitwiseOr), }); - module.DefineMethod("~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Invert), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Add), }); - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.LeftShift), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.LeftShift), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Compare), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Equal), }); - module.DefineMethod(">>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.RightShift), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.RightShift), }); - module.DefineMethod("abs", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("abs", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Abs), }); - module.DefineMethod("coerce", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("coerce", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Coerce), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Coerce), }); - module.DefineMethod("div", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("div", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Div), }); - module.DefineMethod("divmod", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("divmod", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.DivMod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.DivMod), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Eql), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Eql), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Eql), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Hash), }); - module.DefineMethod("modulo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("modulo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Modulo), }); - module.DefineMethod("quo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("quo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Quotient), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Quotient), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Quotient), }); - module.DefineMethod("remainder", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("remainder", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Remainder), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Remainder), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.Size), }); - module.DefineMethod("to_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.ToFloat), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.ToString), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.BignumOps.ToString), }); @@ -514,34 +506,34 @@ private void LoadClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.UndefineMethod("append_features"); - module.UndefineMethod("extend_object"); - module.UndefineMethod("module_function"); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.UndefineLibraryMethod("append_features"); + module.UndefineLibraryMethod("extend_object"); + module.UndefineLibraryMethod("module_function"); + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassOps.Of), }); - module.DefineRuleGenerator("allocate", 0x9, Ruby.Builtins.ClassOps.GetInstanceAllocator()); + module.DefineRuleGenerator("allocate", 0x29, Ruby.Builtins.ClassOps.GetInstanceAllocator()); - module.DefineMethod("inherited", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("inherited", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ClassOps.Inherited), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ClassOps.Reinitialize), }); - module.DefineMethod("initialize_copy", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize_copy", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ClassOps.InitializeCopy), }); - module.DefineRuleGenerator("new", 0x9, Ruby.Builtins.ClassOps.GetInstanceConstructor()); + module.DefineRuleGenerator("new", 0x29, Ruby.Builtins.ClassOps.GetInstanceConstructor()); - module.DefineMethod("of", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("of", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassOps.Of), }); - module.DefineMethod("superclass", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("superclass", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ClassOps.GetSuperclass), }); @@ -553,27 +545,27 @@ private void LoadClrString_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.Equals), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.Equals), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.Inspect), }); - module.DefineMethod("to_clr_string", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_clr_string", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.ToClrString), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.ToStr), }); - module.DefineMethod("to_str", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_str", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringOps.ToStr), }); @@ -581,27 +573,27 @@ private void LoadComparable_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.Less), }); - module.DefineMethod("<=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.LessOrEqual), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.Equal), }); - module.DefineMethod(">", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.Greater), }); - module.DefineMethod(">=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.GreaterOrEqual), }); - module.DefineMethod("between?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("between?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Comparable.Between), }); @@ -609,39 +601,39 @@ private void LoadDir_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("close", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.RubyDir.Close), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Each), }); - module.DefineMethod("path", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("path", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetPath), }); - module.DefineMethod("pos", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pos", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetCurrentPosition), }); - module.DefineMethod("pos=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pos=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.SetPosition), }); - module.DefineMethod("read", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("read", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Read), }); - module.DefineMethod("rewind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rewind", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Rewind), }); - module.DefineMethod("seek", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("seek", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Seek), }); - module.DefineMethod("tell", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tell", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetCurrentPosition), }); @@ -649,39 +641,39 @@ private void LoadDir_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), }); - module.DefineMethod("chdir", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("chdir", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.ChangeDirectory), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.ChangeDirectory), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.ChangeDirectory), }); - module.DefineMethod("chroot", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("chroot", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.ChangeRoot), }); - module.DefineMethod("delete", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("delete", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.RemoveDirectory), }); - module.DefineMethod("entries", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("entries", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetEntries), }); - module.DefineMethod("foreach", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("foreach", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyDir.ForEach), }); - module.DefineMethod("getwd", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("getwd", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetCurrentDirectory), }); - module.DefineMethod("glob", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("glob", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), @@ -690,24 +682,24 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Glob), }); - module.DefineMethod("mkdir", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("mkdir", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.MakeDirectory), }); - module.DefineMethod("open", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("open", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Open), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.Open), }); - module.DefineMethod("pwd", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("pwd", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.GetCurrentDirectory), }); - module.DefineMethod("rmdir", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("rmdir", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.RemoveDirectory), }); - module.DefineMethod("unlink", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("unlink", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyDir.RemoveDirectory), }); @@ -715,91 +707,91 @@ private void LoadEnumerable_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("all?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("all?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.TrueForAll), }); - module.DefineMethod("any?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("any?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.TrueForAny), }); - module.DefineMethod("collect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("collect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Map), }); - module.DefineMethod("detect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("detect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Find), }); - module.DefineMethod("each_with_index", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_with_index", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.EachWithIndex), }); - module.DefineMethod("entries", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("entries", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.ToArray), }); - module.DefineMethod("find", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("find", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Find), }); - module.DefineMethod("find_all", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("find_all", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Select), }); - module.DefineMethod("grep", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("grep", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Grep), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Contains), }); - module.DefineMethod("inject", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inject", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Inject), }); - module.DefineMethod("map", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("map", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Map), }); - module.DefineMethod("max", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("max", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.GetMaximum), }); - module.DefineMethod("member?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("member?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Contains), }); - module.DefineMethod("min", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("min", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.GetMinimum), }); - module.DefineMethod("partition", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("partition", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Partition), }); - module.DefineMethod("reject", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reject", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Reject), }); - module.DefineMethod("select", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("select", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Select), }); - module.DefineMethod("sort", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Sort), }); - module.DefineMethod("sort_by", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort_by", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.SortBy), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.ToArray), }); - module.DefineMethod("zip", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("zip", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Enumerable.Zip), }); @@ -808,11 +800,11 @@ #if !SILVERLIGHT private void Load__Singleton_EnvironmentSingletonOps_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.EnvironmentSingletonOps.GetVariable), }); - module.DefineMethod("[]=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.EnvironmentSingletonOps.GetVariable), }); @@ -821,38 +813,38 @@ private void LoadException_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("backtrace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("backtrace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetBacktrace), }); - module.DefineMethod("exception", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("exception", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetException), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetException), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.Reinitialize), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.Reinitialize), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.Inspect), }); - module.DefineMethod("message", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("message", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetMessage), }); - module.DefineMethod("set_backtrace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("set_backtrace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.SetBacktrace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.SetBacktrace), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetMessage), }); - module.DefineMethod("to_str", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_str", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.GetMessage), }); @@ -860,7 +852,7 @@ private void LoadException_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("exception", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exception", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.CreateException), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ExceptionOps.CreateException), }); @@ -869,40 +861,26 @@ private void LoadFalseClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.And), }); - module.DefineMethod("^", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("^", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.Xor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.Xor), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.Or), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.Or), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FalseClass.ToString), }); } - private void LoadFcntl_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.SetConstant("F_SETFL", Ruby.Builtins.Fcntl.F_SETFL); - module.SetConstant("O_ACCMODE", Ruby.Builtins.Fcntl.O_ACCMODE); - module.SetConstant("O_APPEND", Ruby.Builtins.Fcntl.O_APPEND); - module.SetConstant("O_CREAT", Ruby.Builtins.Fcntl.O_CREAT); - module.SetConstant("O_EXCL", Ruby.Builtins.Fcntl.O_EXCL); - module.SetConstant("O_NONBLOCK", Ruby.Builtins.Fcntl.O_NONBLOCK); - module.SetConstant("O_RDONLY", Ruby.Builtins.Fcntl.O_RDONLY); - module.SetConstant("O_RDWR", Ruby.Builtins.Fcntl.O_RDWR); - module.SetConstant("O_TRUNC", Ruby.Builtins.Fcntl.O_TRUNC); - module.SetConstant("O_WRONLY", Ruby.Builtins.Fcntl.O_WRONLY); - - } - private void LoadFile_Instance(Ruby.Builtins.RubyModule/*!*/ module) { module.SetConstant("ALT_SEPARATOR", Ruby.Builtins.RubyFileOps.ALT_SEPARATOR); module.SetConstant("APPEND", Ruby.Builtins.RubyFileOps.APPEND); @@ -930,11 +908,11 @@ module.SetConstant("TRUNC", Ruby.Builtins.RubyFileOps.TRUNC); module.SetConstant("WRONLY", Ruby.Builtins.RubyFileOps.WRONLY); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Inspect), }); - module.DefineMethod("path", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("path", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Path), }); @@ -967,72 +945,72 @@ module.SetConstant("TRUNC", Ruby.Builtins.RubyFileOps.TRUNC); module.SetConstant("WRONLY", Ruby.Builtins.RubyFileOps.WRONLY); - module.DefineMethod("basename", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("basename", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Basename), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Basename), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Basename), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Basename), }); - module.DefineMethod("chmod", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("chmod", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Chmod), }); - module.DefineMethod("delete", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("delete", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Delete), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Delete), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Delete), }); - module.DefineMethod("directory?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("directory?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsDirectory), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsDirectory), }); - module.DefineMethod("dirname", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("dirname", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.DirName), }); - module.DefineMethod("exist?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exist?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Exists), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Exists), }); - module.DefineMethod("exists?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exists?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Exists), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Exists), }); - module.DefineMethod("expand_path", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("expand_path", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.ExpandPath), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.ExpandPath), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.ExpandPath), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.ExpandPath), }); - module.DefineMethod("file?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("file?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsAFile), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsAFile), }); - module.DefineMethod("fnmatch", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("fnmatch", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.FnMatch), }); - module.DefineMethod("fnmatch?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("fnmatch?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.FnMatch), }); - module.DefineMethod("join", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("join", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.Join), }); - module.DefineMethod("writable?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("writable?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsWritable), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsWritable), }); - module.DefineMethod("writable_real?", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("writable_real?", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsWritable), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyFileOps.IsWritable), }); @@ -1041,159 +1019,159 @@ private void LoadFixnum_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("-", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Subtract), }); - module.DefineMethod("%", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("%", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ModuloOp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ModuloOp), }); - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseAnd), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseAnd), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseAnd), }); - module.DefineMethod("*", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("*", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Multiply), }); - module.DefineMethod("**", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("**", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Power), }); - module.DefineMethod("/", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("/", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.DivideOp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.DivideOp), }); - module.DefineMethod("-@", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-@", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.UnaryMinus), }); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Bit), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Bit), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Bit), }); - module.DefineMethod("^", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("^", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseXor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseXor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseXor), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseOr), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseOr), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.BitwiseOr), }); - module.DefineMethod("~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.OnesComplement), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Add), }); - module.DefineMethod("<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LessThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LessThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LessThan), }); - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LeftShift), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LeftShift), }); - module.DefineMethod("<=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LessThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.LessThanOrEqual), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Compare), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Equal), }); - module.DefineMethod(">", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.GreaterThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.GreaterThan), }); - module.DefineMethod(">=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.GreaterThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.GreaterThanOrEqual), }); - module.DefineMethod(">>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.RightShift), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.RightShift), }); - module.DefineMethod("abs", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("abs", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Abs), }); - module.DefineMethod("div", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("div", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.DivideOp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Div), }); - module.DefineMethod("divmod", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("divmod", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.DivMod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.DivMod), }); - module.DefineMethod("id2name", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("id2name", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Id2Name), }); - module.DefineMethod("modulo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("modulo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ModuloOp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Modulo), }); - module.DefineMethod("quo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("quo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Quotient), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Quotient), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.Size), }); - module.DefineMethod("to_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ToFloat), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ToString), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ToString), }); - module.DefineMethod("to_sym", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_sym", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.ToSymbol), }); - module.DefineMethod("zero?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("zero?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.IsZero), }); @@ -1201,7 +1179,7 @@ private void LoadFixnum_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("induced_from", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("induced_from", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FixnumOps.InducedFrom), @@ -1222,159 +1200,159 @@ module.SetConstant("RADIX", Ruby.Builtins.FloatOps.RADIX); module.SetConstant("ROUNDS", Ruby.Builtins.FloatOps.ROUNDS); - module.DefineMethod("-", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Subtract), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Subtract), }); - module.DefineMethod("%", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("%", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ModuloOp), }); - module.DefineMethod("*", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("*", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Multiply), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Multiply), }); - module.DefineMethod("**", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("**", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Power), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Power), }); - module.DefineMethod("/", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("/", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Divide), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Divide), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Add), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Add), }); - module.DefineMethod("<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThan), }); - module.DefineMethod("<=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.LessThanOrEqual), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Compare), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Equal), }); - module.DefineMethod(">", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThan), }); - module.DefineMethod(">=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThanOrEqual), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.GreaterThanOrEqual), }); - module.DefineMethod("abs", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("abs", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Abs), }); - module.DefineMethod("ceil", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ceil", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Ceil), }); - module.DefineMethod("coerce", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("coerce", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Coerce), }); - module.DefineMethod("divmod", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("divmod", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.DivMod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.DivMod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.DivMod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.DivMod), }); - module.DefineMethod("finite?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("finite?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.IsFinite), }); - module.DefineMethod("floor", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("floor", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Floor), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Hash), }); - module.DefineMethod("infinite?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("infinite?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.IsInfinite), }); - module.DefineMethod("modulo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("modulo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Modulo), }); - module.DefineMethod("nan?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nan?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.IsNan), }); - module.DefineMethod("round", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("round", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.Round), }); - module.DefineMethod("to_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ToFloat), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ToInt), }); - module.DefineMethod("to_int", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_int", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ToInt), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ToString), }); - module.DefineMethod("truncate", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("truncate", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.ToInt), }); - module.DefineMethod("zero?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("zero?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.IsZero), }); @@ -1393,7 +1371,7 @@ module.SetConstant("RADIX", Ruby.Builtins.FloatOps.RADIX); module.SetConstant("ROUNDS", Ruby.Builtins.FloatOps.ROUNDS); - module.DefineMethod("induced_from", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("induced_from", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.FloatOps.InducedFrom), @@ -1405,28 +1383,28 @@ private void LoadHash_Instance(Ruby.Builtins.RubyModule/*!*/ module) { LoadSystem__Collections__Generic__IDictionary_Instance(module); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.GetElement), }); - module.DefineMethod("default", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("default", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.GetDefaultValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.GetDefaultValue), }); - module.DefineMethod("default_proc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("default_proc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.GetDefaultProc), }); - module.DefineMethod("default=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("default=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.SetDefaultValue), }); - module.DefineMethod("replace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("replace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.Replace), }); - module.DefineMethod("shift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shift", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.Shift), }); @@ -1434,7 +1412,7 @@ private void LoadHash_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.HashOps.CreateHash), }); @@ -1442,59 +1420,59 @@ private void LoadInteger_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("ceil", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ceil", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("chr", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("chr", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToChr), }); - module.DefineMethod("downto", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("downto", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.DownTo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.DownTo), }); - module.DefineMethod("floor", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("floor", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("integer?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("integer?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.IsInteger), }); - module.DefineMethod("next", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("next", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Next), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Next), }); - module.DefineMethod("round", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("round", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("succ", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("succ", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Next), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Next), }); - module.DefineMethod("times", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("times", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Times), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.Times), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("to_int", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_int", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("truncate", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("truncate", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.ToInteger), }); - module.DefineMethod("upto", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("upto", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.UpTo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.UpTo), }); @@ -1503,7 +1481,7 @@ private void LoadInteger_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("induced_from", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("induced_from", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.InducedFrom), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Integer.InducedFrom), @@ -1517,160 +1495,160 @@ module.SetConstant("SEEK_END", Ruby.Builtins.RubyIOOps.SEEK_END); module.SetConstant("SEEK_SET", Ruby.Builtins.RubyIOOps.SEEK_SET); - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Output), }); - module.DefineMethod("binmode", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("binmode", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Binmode), }); - module.DefineMethod("close", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.RubyIOOps.Close), }); - module.DefineMethod("closed?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("closed?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Closed), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.Each), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.Each), }); - module.DefineMethod("each_byte", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_byte", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.EachByte), }); - module.DefineMethod("each_line", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_line", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.Each), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.Each), }); - module.DefineMethod("eof", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eof", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Eof), }); - module.DefineMethod("eof?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eof?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Eof), }); - module.DefineMethod("fileno", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("fileno", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.FileNo), }); - module.DefineMethod("fsync", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("fsync", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.RubyIOOps.Flush), }); - module.DefineMethod("getc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("getc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Getc), }); - module.DefineMethod("gets", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gets", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Gets), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Gets), }); - module.DefineMethod("isatty", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("isatty", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.IsAtty), }); - module.DefineMethod("lineno", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("lineno", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.LineNo), }); - module.DefineMethod("lineno=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("lineno=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.LineNo), }); - module.DefineMethod("pid", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pid", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Pid), }); - module.DefineMethod("pos", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pos", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Pos), }); - module.DefineMethod("pos=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pos=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.Pos), }); - module.DefineMethod("print", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("print", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Print), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Print), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Print), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Print), }); - module.DefineMethod("putc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("putc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Putc), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Putc), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Putc), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Putc), }); - module.DefineMethod("puts", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("puts", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.PutsEmptyLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Puts), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Puts), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Puts), }); - module.DefineMethod("read", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("read", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), }); - module.DefineMethod("readchar", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("readchar", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.ReadChar), }); - module.DefineMethod("readline", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("readline", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.ReadLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.ReadLine), }); - module.DefineMethod("readlines", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("readlines", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.RubyIOOps.ReadLines), new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.RubyIOOps.ReadLines), }); - module.DefineMethod("rewind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rewind", 0x29, new System.Delegate[] { new System.Action(Ruby.Builtins.RubyIOOps.Rewind), }); - module.DefineMethod("seek", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("seek", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Seek), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Seek), }); - module.DefineMethod("sync", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sync", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Sync), }); - module.DefineMethod("sync=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sync=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Sync), }); - module.DefineMethod("tell", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tell", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Pos), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.FileNo), }); - module.DefineMethod("to_io", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_io", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.ToIO), }); - module.DefineMethod("tty?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tty?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.IsAtty), }); - module.DefineMethod("write", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("write", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Write), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Write), }); @@ -1682,21 +1660,21 @@ module.SetConstant("SEEK_END", Ruby.Builtins.RubyIOOps.SEEK_END); module.SetConstant("SEEK_SET", Ruby.Builtins.RubyIOOps.SEEK_SET); - module.DefineMethod("for_fd", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("for_fd", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.ForFd), }); - module.DefineMethod("foreach", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("foreach", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.ForEach), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.ForEach), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.RubyIOOps.ForEach), }); - module.DefineMethod("open", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("open", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Open), }); - module.DefineMethod("read", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("read", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), @@ -1705,7 +1683,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyIOOps.Read), }); - module.DefineMethod("readlines", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("readlines", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.RubyIOOps.ReadLines), new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.RubyIOOps.ReadLines), }); @@ -1714,282 +1692,282 @@ private void LoadKernel_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("__id__", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("__id__", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetObjectId), }); - module.DefineMethod("__send__", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("__send__", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), }); - module.DefineMethod("=~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("=~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Match), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ValueEquals), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.HashEquals), }); - module.DefineMethod("Array", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("Array", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToArray), }); - module.DefineMethod("at_exit", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("at_exit", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.AtExit), }); - module.DefineMethod("binding", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("binding", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetLocalScope), }); - module.DefineMethod("block_given?", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("block_given?", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.HasBlock), }); - module.DefineMethod("class", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("class", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetClass), }); - module.DefineMethod("clone", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clone", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Clone), }); - module.DefineMethod("dup", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("dup", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Duplicate), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ValueEquals), }); - module.DefineMethod("equal?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("equal?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Equal), }); - module.DefineMethod("eval", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("eval", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Evaluate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Evaluate), }); - module.DefineMethod("exit", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("exit", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), }); - module.DefineMethod("exit!", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("exit!", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), }); - module.DefineMethod("extend", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("extend", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Extend), }); - module.DefineMethod("fail", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("fail", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action>(Ruby.Builtins.Kernel.RaiseException), }); - module.DefineMethod("Float", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("Float", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToFloat), }); - module.DefineMethod("freeze", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("freeze", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Freeze), }); - module.DefineMethod("frozen?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("frozen?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Frozen), }); - module.DefineMethod("gets", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("gets", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ReadInputLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ReadInputLine), }); - module.DefineMethod("global_variables", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("global_variables", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetGlobalVariableNames), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Hash), }); - module.DefineMethod("id", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("id", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetId), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Inspect), }); - module.DefineMethod("instance_eval", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_eval", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceEval), }); - module.DefineMethod("instance_of?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_of?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.IsOfClass), }); - module.DefineMethod("instance_variable_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_variable_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableDefined), }); - module.DefineMethod("instance_variable_get", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_variable_get", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableGet), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableGet), }); - module.DefineMethod("instance_variable_set", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_variable_set", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableSet), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariableSet), }); - module.DefineMethod("instance_variables", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_variables", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.InstanceVariables), }); - module.DefineMethod("Integer", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("Integer", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToInteger), }); - module.DefineMethod("is_a?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("is_a?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.IsKindOf), }); - module.DefineMethod("iterator?", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("iterator?", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.HasBlock), }); - module.DefineMethod("kind_of?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("kind_of?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.IsKindOf), }); - module.DefineMethod("lambda", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("lambda", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.CreateLambda), }); - module.DefineMethod("load", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("load", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), }); - module.DefineMethod("load_assembly", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("load_assembly", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.LoadAssembly), }); - module.DefineMethod("local_variables", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("local_variables", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetLocalVariableNames), }); - module.DefineMethod("method", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("method", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetMethod), }); - module.DefineMethod("method_missing", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("method_missing", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.MethodMissing), }); - module.DefineMethod("methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetMethods), }); - module.DefineMethod("nil?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nil?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.IsNil), }); - module.DefineMethod("object_id", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("object_id", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetObjectId), }); - module.DefineMethod("p", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("p", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.PrintInspect), }); - module.DefineMethod("print", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("print", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Print), }); - module.DefineMethod("proc", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("proc", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.CreateLambda), }); - module.DefineMethod("putc", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("putc", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Putc), }); - module.DefineMethod("puts", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("puts", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.PutString), }); - module.DefineMethod("raise", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("raise", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action>(Ruby.Builtins.Kernel.RaiseException), }); - module.DefineMethod("require", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("require", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Require), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Require), }); - module.DefineMethod("respond_to?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("respond_to?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.RespondTo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.RespondTo), }); - module.DefineMethod("send", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("send", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.SendMessage), }); - module.DefineMethod("singleton_methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("singleton_methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetSingletonMethods), }); - module.DefineMethod("sleep", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("sleep", 0x2a, new System.Delegate[] { new System.Action(Ruby.Builtins.Kernel.Sleep), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sleep), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sleep), }); - module.DefineMethod("sprintf", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("sprintf", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sprintf), }); - module.DefineMethod("String", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("String", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToString), }); - module.DefineMethod("taint", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taint", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Taint), }); - module.DefineMethod("tainted?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tainted?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Tainted), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToString), }); - module.DefineMethod("untaint", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("untaint", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Untaint), }); @@ -1997,121 +1975,121 @@ private void LoadKernel_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("Array", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("Array", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToArray), }); - module.DefineMethod("at_exit", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("at_exit", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.AtExit), }); - module.DefineMethod("eval", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("eval", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Evaluate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Evaluate), }); - module.DefineMethod("exit", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exit", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Exit), }); - module.DefineMethod("exit!", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exit!", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.TerminateExecution), }); - module.DefineMethod("fail", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("fail", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action>(Ruby.Builtins.Kernel.RaiseException), }); - module.DefineMethod("Float", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("Float", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToFloat), }); - module.DefineMethod("gets", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gets", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ReadInputLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ReadInputLine), }); - module.DefineMethod("global_variables", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("global_variables", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetGlobalVariableNames), }); - module.DefineMethod("Integer", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("Integer", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToInteger), }); - module.DefineMethod("lambda", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("lambda", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.CreateLambda), }); - module.DefineMethod("load", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("load", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Load), }); - module.DefineMethod("load_assembly", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("load_assembly", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.LoadAssembly), }); - module.DefineMethod("local_variables", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("local_variables", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.GetLocalVariableNames), }); - module.DefineMethod("method_missing", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("method_missing", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.MethodMissing), }); - module.DefineMethod("p", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("p", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.PrintInspect), }); - module.DefineMethod("print", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("print", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Print), }); - module.DefineMethod("proc", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("proc", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.CreateLambda), }); - module.DefineMethod("putc", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("putc", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.Putc), }); - module.DefineMethod("puts", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("puts", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.PutString), }); - module.DefineMethod("raise", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("raise", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.Kernel.RaiseException), new Microsoft.Scripting.Utils.Action>(Ruby.Builtins.Kernel.RaiseException), }); - module.DefineMethod("require", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("require", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Require), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Require), }); - module.DefineMethod("sleep", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sleep", 0x31, new System.Delegate[] { new System.Action(Ruby.Builtins.Kernel.Sleep), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sleep), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sleep), }); - module.DefineMethod("sprintf", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sprintf", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.Sprintf), }); - module.DefineMethod("String", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("String", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Kernel.ToString), }); @@ -2127,20 +2105,20 @@ module.SetConstant("MAJOR_VERSION", Ruby.Builtins.RubyMarshal.MAJOR_VERSION); module.SetConstant("MINOR_VERSION", Ruby.Builtins.RubyMarshal.MINOR_VERSION); - module.DefineMethod("dump", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("dump", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Dump), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Dump), new Microsoft.Scripting.Utils.Function, System.Object>(Ruby.Builtins.RubyMarshal.Dump), new Microsoft.Scripting.Utils.Function, System.Object>(Ruby.Builtins.RubyMarshal.Dump), }); - module.DefineMethod("load", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("load", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), }); - module.DefineMethod("restore", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("restore", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMarshal.Load), @@ -2150,7 +2128,7 @@ private void LoadMatchData_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.GetGroup), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.GetGroup), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.GetGroup), @@ -2158,62 +2136,62 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.GetGroup), }); - module.DefineMethod("begin", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("begin", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Begin), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Begin), }); - module.DefineMethod("captures", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("captures", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Captures), }); - module.DefineMethod("end", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("end", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.End), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.End), }); - module.DefineMethod("initialize_copy", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize_copy", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.InitializeCopy), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Length), }); - module.DefineMethod("offset", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("offset", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Offset), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Offset), }); - module.DefineMethod("post_match", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("post_match", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.PostMatch), }); - module.DefineMethod("pre_match", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pre_match", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.PreMatch), }); - module.DefineMethod("select", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("select", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Select), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.Length), }); - module.DefineMethod("string", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("string", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.ReturnFrozenString), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.ToArray), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.ToString), }); - module.DefineMethod("values_at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values_at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MatchDataOps.ValuesAt), }); @@ -2223,59 +2201,59 @@ module.SetConstant("E", Ruby.Builtins.RubyMath.E); module.SetConstant("PI", Ruby.Builtins.RubyMath.PI); - module.DefineMethod("acos", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("acos", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Acos), }); - module.DefineMethod("asin", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("asin", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Asin), }); - module.DefineMethod("atan", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("atan", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Atan), }); - module.DefineMethod("atan2", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("atan2", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Atan2), }); - module.DefineMethod("cos", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("cos", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Cos), }); - module.DefineMethod("cosh", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("cosh", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Cosh), }); - module.DefineMethod("exp", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("exp", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Exp), }); - module.DefineMethod("log", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("log", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Log), }); - module.DefineMethod("log10", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("log10", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Log10), }); - module.DefineMethod("sin", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("sin", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sin), }); - module.DefineMethod("sinh", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("sinh", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sinh), }); - module.DefineMethod("sqrt", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("sqrt", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sqrt), }); - module.DefineMethod("tan", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("tan", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Tan), }); - module.DefineMethod("tanh", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("tanh", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Tanh), }); @@ -2285,59 +2263,59 @@ module.SetConstant("E", Ruby.Builtins.RubyMath.E); module.SetConstant("PI", Ruby.Builtins.RubyMath.PI); - module.DefineMethod("acos", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("acos", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Acos), }); - module.DefineMethod("asin", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("asin", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Asin), }); - module.DefineMethod("atan", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("atan", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Atan), }); - module.DefineMethod("atan2", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("atan2", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Atan2), }); - module.DefineMethod("cos", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("cos", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Cos), }); - module.DefineMethod("cosh", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("cosh", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Cosh), }); - module.DefineMethod("exp", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("exp", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Exp), }); - module.DefineMethod("log", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("log", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Log), }); - module.DefineMethod("log10", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("log10", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Log10), }); - module.DefineMethod("sin", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sin", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sin), }); - module.DefineMethod("sinh", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sinh", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sinh), }); - module.DefineMethod("sqrt", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sqrt", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Sqrt), }); - module.DefineMethod("tan", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("tan", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Tan), }); - module.DefineMethod("tanh", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("tanh", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyMath.Tanh), }); @@ -2345,32 +2323,32 @@ private void LoadMethod_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineRuleGenerator("[]", 0x9, Ruby.Builtins.MethodOps.Call()); + module.DefineRuleGenerator("[]", 0x29, Ruby.Builtins.MethodOps.Call()); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.Equal), }); - module.DefineMethod("arity", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("arity", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.GetArity), }); - module.DefineRuleGenerator("call", 0x9, Ruby.Builtins.MethodOps.Call()); + module.DefineRuleGenerator("call", 0x29, Ruby.Builtins.MethodOps.Call()); - module.DefineMethod("clone", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clone", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.Clone), }); - module.DefineMethod("to_proc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_proc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.ToProc), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.ToS), }); - module.DefineMethod("unbind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("unbind", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MethodOps.Unbind), }); @@ -2378,11 +2356,11 @@ private void LoadMicrosoft__Scripting__Actions__TypeTracker_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_class", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_class", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TypeTrackerOps.ToClass), }); - module.DefineMethod("to_module", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_module", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TypeTrackerOps.ToModule), }); @@ -2390,56 +2368,56 @@ private void LoadModule_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsSubclassOrIncluded), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.InvalidComparison), }); - module.DefineMethod("<=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsSubclassSameOrIncluded), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.InvalidComparison), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Comparison), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Comparison), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.CaseEquals), }); - module.DefineMethod(">", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsNotSubclassOrIncluded), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.InvalidComparison), }); - module.DefineMethod(">=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod(">=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsNotSubclassSameOrIncluded), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.InvalidComparison), }); - module.DefineMethod("alias_method", 0xa, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.AliasMethod), + module.DefineLibraryMethod("alias_method", 0x2a, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.AliasMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.AliasMethod), }); - module.DefineMethod("ancestors", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ancestors", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Ancestors), }); - module.DefineMethod("append_features", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("append_features", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.AppendFeatures), }); - module.DefineMethod("attr", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("attr", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Attr), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Attr), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Attr), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Attr), }); - module.DefineMethod("attr_accessor", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("attr_accessor", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrAccessor), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrAccessor), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrAccessor), @@ -2447,7 +2425,7 @@ new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AccessorNoOperation), }); - module.DefineMethod("attr_reader", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("attr_reader", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrReader), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrReader), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrReader), @@ -2455,7 +2433,7 @@ new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AccessorNoOperation), }); - module.DefineMethod("attr_writer", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("attr_writer", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrWriter), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrWriter), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AttrWriter), @@ -2463,196 +2441,208 @@ new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.AccessorNoOperation), }); - module.DefineMethod("class_eval", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("class_eval", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Evaluate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Evaluate), }); - module.DefineMethod("class_variable_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("class_variable_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ClassVariableDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ClassVariableDefined), }); - module.DefineMethod("class_variable_get", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("class_variable_get", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetClassVariable), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetClassVariable), }); - module.DefineMethod("class_variable_set", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("class_variable_set", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ClassVariableSet), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ClassVariableSet), }); - module.DefineMethod("class_variables", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("class_variables", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ClassVariables), }); - module.DefineMethod("const_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("const_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsConstantDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IsConstantDefined), }); - module.DefineMethod("const_get", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("const_get", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetConstantValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetConstantValue), }); - module.DefineMethod("const_missing", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("const_missing", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.ConstantMissing), new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.ConstantMissing), }); - module.DefineMethod("const_set", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("const_set", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.SetConstantValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.SetConstantValue), }); - module.DefineMethod("constants", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("constants", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetDefinedConstants), }); - module.DefineMethod("define_method", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("define_method", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.DefineMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.DefineMethod), }); - module.DefineMethod("extend_object", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("extend_object", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ExtendObject), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ExtendObject), }); - module.DefineMethod("extended", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("extended", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.ObjectExtended), }); - module.DefineMethod("include", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("include", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Include), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.IncludesModule), }); - module.DefineMethod("included", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("included", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Included), }); - module.DefineMethod("included_modules", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("included_modules", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetIncludedModules), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.Reinitialize), }); - module.DefineMethod("initialize_copy", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize_copy", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.InitializeCopy), }); - module.DefineMethod("instance_method", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_method", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetInstanceMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetInstanceMethod), }); - module.DefineMethod("instance_methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("instance_methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetInstanceMethods), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetInstanceMethods), }); - module.DefineMethod("method_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("method_added", 0x2a, new System.Delegate[] { + new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.MethodAdded), + }); + + module.DefineLibraryMethod("method_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MethodDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MethodDefined), }); - module.DefineMethod("module_eval", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("method_removed", 0x2a, new System.Delegate[] { + new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.MethodRemoved), + }); + + module.DefineLibraryMethod("method_undefined", 0x2a, new System.Delegate[] { + new Microsoft.Scripting.Utils.Action(Ruby.Builtins.ModuleOps.MethodUndefined), + }); + + module.DefineLibraryMethod("module_eval", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Evaluate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.Evaluate), }); - module.DefineMethod("module_function", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("module_function", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.CopyMethodsToModuleSingleton), }); - module.DefineMethod("name", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("name", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetName), }); - module.DefineMethod("private", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("private", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.SetPrivateVisibility), }); - module.DefineMethod("private_class_method", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("private_class_method", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MakeClassMethodsPrivate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MakeClassMethodsPrivate), }); - module.DefineMethod("private_instance_methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("private_instance_methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetPrivateInstanceMethods), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetPrivateInstanceMethods), }); - module.DefineMethod("private_method_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("private_method_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.PrivateMethodDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.PrivateMethodDefined), }); - module.DefineMethod("protected", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("protected", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.SetProtectedVisibility), }); - module.DefineMethod("protected_instance_methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("protected_instance_methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetProtectedInstanceMethods), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetProtectedInstanceMethods), }); - module.DefineMethod("protected_method_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("protected_method_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ProtectedMethodDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ProtectedMethodDefined), }); - module.DefineMethod("public", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("public", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.SetPublicVisibility), }); - module.DefineMethod("public_class_method", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("public_class_method", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MakeClassMethodsPublic), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.MakeClassMethodsPublic), }); - module.DefineMethod("public_instance_methods", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("public_instance_methods", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetPublicInstanceMethods), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetPublicInstanceMethods), }); - module.DefineMethod("public_method_defined?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("public_method_defined?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.PublicMethodDefined), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.PublicMethodDefined), }); - module.DefineMethod("remove_class_variable", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("remove_class_variable", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveClassVariable), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveClassVariable), }); - module.DefineMethod("remove_const", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("remove_const", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveConstant), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveConstant), }); - module.DefineMethod("remove_method", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("remove_method", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.RemoveMethod), }); - module.DefineMethod("to_clr_type", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_clr_type", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.ToClrType), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetName), }); - module.DefineMethod("undef_method", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("undef_method", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.UndefineMethod), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.UndefineMethod), }); @@ -2661,11 +2651,11 @@ private void LoadModule_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("constants", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("constants", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetGlobalConstants), }); - module.DefineMethod("nesting", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("nesting", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ModuleOps.GetLexicalModuleNesting), }); @@ -2673,41 +2663,41 @@ private void LoadNilClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.And), }); - module.DefineMethod("^", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("^", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.Xor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.Xor), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.Or), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.Or), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.Inspect), }); - module.DefineMethod("nil?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nil?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.IsNil), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.ToArray), }); - module.DefineMethod("to_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.ToDouble), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.ToInteger), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.NilClassOps.ToString), }); @@ -2720,71 +2710,71 @@ private void LoadNumeric_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("-@", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-@", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.UnaryMinus), }); - module.DefineMethod("+@", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+@", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.UnaryPlus), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Compare), }); - module.DefineMethod("abs", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("abs", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Abs), }); - module.DefineMethod("ceil", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ceil", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Ceil), }); - module.DefineMethod("coerce", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("coerce", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Coerce), }); - module.DefineMethod("div", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("div", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Div), }); - module.DefineMethod("divmod", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("divmod", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.DivMod), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Eql), }); - module.DefineMethod("floor", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("floor", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Floor), }); - module.DefineMethod("integer?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("integer?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.IsInteger), }); - module.DefineMethod("modulo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("modulo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Modulo), }); - module.DefineMethod("nonzero?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nonzero?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.IsNonZero), }); - module.DefineMethod("quo", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("quo", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Quo), }); - module.DefineMethod("remainder", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("remainder", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Remainder), }); - module.DefineMethod("round", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("round", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Round), }); - module.DefineMethod("step", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("step", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Step), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Step), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Step), @@ -2792,15 +2782,15 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Step), }); - module.DefineMethod("to_int", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_int", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.ToInt), }); - module.DefineMethod("truncate", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("truncate", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.Truncate), }); - module.DefineMethod("zero?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("zero?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Numeric.IsZero), }); @@ -2808,7 +2798,7 @@ private void LoadObject_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new System.Action(Ruby.Builtins.ObjectOps.Reinitialize), }); @@ -2820,15 +2810,15 @@ private void LoadPrecision_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("prec", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("prec", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Precision.Prec), }); - module.DefineMethod("prec_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("prec_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Precision.PrecFloat), }); - module.DefineMethod("prec_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("prec_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Precision.PrecInteger), }); @@ -2836,7 +2826,7 @@ private void LoadPrecision_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("included", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("included", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.Precision.Included), }); @@ -2844,23 +2834,23 @@ private void LoadProc_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineRuleGenerator("[]", 0x9, Ruby.Builtins.ProcOps.GetProcCaller()); + module.DefineRuleGenerator("[]", 0x29, Ruby.Builtins.ProcOps.GetProcCaller()); - module.DefineRuleGenerator("call", 0x9, Ruby.Builtins.ProcOps.GetProcCaller()); + module.DefineRuleGenerator("call", 0x29, Ruby.Builtins.ProcOps.GetProcCaller()); } private void LoadProcess_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("pid", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("pid", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyProcess.GetPid), }); - module.DefineMethod("ppid", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("ppid", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyProcess.GetParentPid), }); - module.DefineMethod("times", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("times", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyProcess.GetTimes), }); @@ -2868,70 +2858,70 @@ private void LoadRange_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Equals), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Equals), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.CaseEquals), }); - module.DefineMethod("begin", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("begin", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Begin), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Each), }); - module.DefineMethod("end", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("end", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.End), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Equals), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Eql), }); - module.DefineMethod("exclude_end?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("exclude_end?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.ExcludeEnd), }); - module.DefineMethod("first", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("first", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Begin), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.GetHashCode), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.CaseEquals), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Reinitialize), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Inspect), }); - module.DefineMethod("last", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("last", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.End), }); - module.DefineMethod("member?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("member?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.CaseEquals), }); - module.DefineMethod("step", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("step", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Step), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.Step), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RangeOps.ToS), }); @@ -2947,46 +2937,46 @@ module.SetConstant("IGNORECASE", Ruby.Builtins.RegexpOps.IGNORECASE); module.SetConstant("MULTILINE", Ruby.Builtins.RegexpOps.MULTILINE); - module.DefineMethod("~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.ImplicitMatch), }); - module.DefineMethod("=~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("=~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.MatchIndex), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.MatchIndex), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.CaseCompare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.CaseCompare), }); - module.DefineMethod("casefold?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("casefold?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.IsCaseInsensitive), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Inspect), }); - module.DefineMethod("kcode", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("kcode", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.GetEncoding), }); - module.DefineMethod("match", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("match", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Match), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Match), }); - module.DefineMethod("options", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("options", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.GetOptions), }); - module.DefineMethod("source", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("source", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Source), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.ToS), }); @@ -2997,7 +2987,7 @@ module.SetConstant("IGNORECASE", Ruby.Builtins.RegexpOps.IGNORECASE); module.SetConstant("MULTILINE", Ruby.Builtins.RegexpOps.MULTILINE); - module.DefineMethod("compile", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("compile", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Compile), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Compile), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Compile), @@ -3006,18 +2996,18 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Compile), }); - module.DefineMethod("escape", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("escape", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Escape), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Escape), }); - module.DefineMethod("last_match", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("last_match", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.LastMatch), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.LastMatch), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.LastMatch), }); - module.DefineMethod("quote", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("quote", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Escape), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RegexpOps.Escape), }); @@ -3026,16 +3016,16 @@ private void LoadString_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("%", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("%", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Format), }); - module.DefineMethod("*", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("*", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Repeat), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Repeat), }); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChars), @@ -3049,7 +3039,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChars), }); - module.DefineMethod("[]=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SetChar), @@ -3060,132 +3050,132 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SetChar), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Concatenate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Concatenate), }); - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Compare), }); - module.DefineMethod("=~", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("=~", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Match), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Match), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Match), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.StringEquals), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Equals), }); - module.DefineMethod("===", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("===", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.StringEquals), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Equals), }); - module.DefineMethod("capitalize", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("capitalize", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Capitalize), }); - module.DefineMethod("capitalize!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("capitalize!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.CapitalizeInPlace), }); - module.DefineMethod("casecmp", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("casecmp", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Casecmp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Casecmp), }); - module.DefineMethod("center", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("center", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Center), }); - module.DefineMethod("chomp", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("chomp", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Chomp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Chomp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Chomp), }); - module.DefineMethod("chomp!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("chomp!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ChompInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ChompInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ChompInPlace), }); - module.DefineMethod("chop", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("chop", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Chop), }); - module.DefineMethod("chop!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("chop!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ChopInPlace), }); - module.DefineMethod("concat", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("concat", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Append), }); - module.DefineMethod("count", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("count", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Count), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Count), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Count), }); - module.DefineMethod("delete", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Delete), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Delete), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Delete), }); - module.DefineMethod("delete!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.DeleteInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.DeleteInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.DeleteInPlace), }); - module.DefineMethod("downcase", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("downcase", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.DownCase), }); - module.DefineMethod("downcase!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("downcase!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.DownCaseInPlace), }); - module.DefineMethod("dump", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("dump", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Dump), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), }); - module.DefineMethod("each_byte", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_byte", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachByte), }); - module.DefineMethod("each_line", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_line", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.EachLine), }); - module.DefineMethod("empty?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("empty?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Empty), }); - module.DefineMethod("gsub", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gsub", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.BlockReplaceAll), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAll), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAll), @@ -3193,7 +3183,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAll), }); - module.DefineMethod("gsub!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gsub!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.BlockReplaceAllInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAllInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAllInPlace), @@ -3201,13 +3191,13 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceAllInPlace), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Include), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Include), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Include), }); - module.DefineMethod("index", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("index", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Index), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Index), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Index), @@ -3222,33 +3212,33 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Index), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Reinitialize), }); - module.DefineMethod("initialize_copy", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize_copy", 0x2a, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.InitializeCopy), }); - module.DefineMethod("insert", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("insert", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Insert), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Insert), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Insert), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Dump), }); - module.DefineMethod("intern", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("intern", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToSym), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.MutableStringLength), }); - module.DefineMethod("ljust", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ljust", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.LeftJustify), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.LeftJustify), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.LeftJustify), @@ -3256,25 +3246,25 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.LeftJustify), }); - module.DefineMethod("match", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("match", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.MatchRegexp), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.MatchObject), }); - module.DefineMethod("replace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("replace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Replace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Replace), }); - module.DefineMethod("reverse", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetReversed), }); - module.DefineMethod("reverse!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Reverse), }); - module.DefineMethod("rindex", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rindex", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReverseIndex), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReverseIndex), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReverseIndex), @@ -3289,7 +3279,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReverseIndex), }); - module.DefineMethod("rjust", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rjust", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RightJustify), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RightJustify), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RightJustify), @@ -3297,7 +3287,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RightJustify), }); - module.DefineMethod("scan", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("scan", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Scan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Scan), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Scan), @@ -3306,11 +3296,11 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Scan), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.MutableStringLength), }); - module.DefineMethod("slice", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("slice", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChar), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChars), @@ -3324,7 +3314,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.GetChars), }); - module.DefineMethod("slice!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("slice!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RemoveCharInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RemoveCharInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RemoveCharInPlace), @@ -3338,7 +3328,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.RemoveCharInPlace), }); - module.DefineMethod("split", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("split", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Split), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Split), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Split), @@ -3349,15 +3339,15 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Split), }); - module.DefineMethod("strip", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("strip", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Strip), }); - module.DefineMethod("strip!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("strip!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.StripInPlace), }); - module.DefineMethod("sub", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sub", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.BlockReplaceFirst), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirst), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirst), @@ -3365,7 +3355,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirst), }); - module.DefineMethod("sub!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sub!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.BlockReplaceFirstInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirstInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirstInPlace), @@ -3373,362 +3363,138 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ReplaceFirstInPlace), }); - module.DefineMethod("succ", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("succ", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Succ), }); - module.DefineMethod("succ!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("succ!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SuccInPlace), }); - module.DefineMethod("swapcase", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("swapcase", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SwapCase), }); - module.DefineMethod("swapcase!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("swapcase!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.SwapCaseInPlace), }); - module.DefineMethod("to_clr_string", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_clr_string", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToClrString), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToInteger), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToInteger), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToInteger), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToS), }); - module.DefineMethod("to_str", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_str", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToS), }); - module.DefineMethod("to_sym", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_sym", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.ToSym), }); - module.DefineMethod("tr", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tr", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Tr), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.Tr), }); - module.DefineMethod("tr!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tr!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.TrInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.TrInPlace), }); - module.DefineMethod("upcase", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("upcase", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.UpCase), }); - module.DefineMethod("upcase!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("upcase!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.UpCaseInPlace), }); - module.DefineMethod("upto", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("upto", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.UpTo), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.MutableStringOps.UpTo), }); } - private void LoadStringIO_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - - module.DefineMethod("length", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.Length), - }); - - module.DefineMethod("path", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.Path), - }); - - module.DefineMethod("size", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.Length), - }); - - module.DefineMethod("string", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.GetString), - }); - - module.DefineMethod("string=", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.SetString), - }); - - module.DefineMethod("truncate", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.Length), - }); - - } - - private void LoadStringIO_Class(Ruby.Builtins.RubyModule/*!*/ module) { - - module.DefineMethod("open", 0x11, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringIO.OpenIO), - }); - - } - - private void LoadStringScanner_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - - module.DefineMethod("[]", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetMatchSubgroup), - }); - - module.DefineMethod("<<", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Concat), - }); - - module.DefineMethod("beginning_of_line?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.BeginningOfLine), - }); - - module.DefineMethod("bol?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.BeginningOfLine), - }); - - module.DefineMethod("check", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Check), - }); - - module.DefineMethod("check_until", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.CheckUntil), - }); - - module.DefineMethod("clear", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Clear), - }); - - module.DefineMethod("concat", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Concat), - }); - - module.DefineMethod("empty?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.EndOfLine), - }); - - module.DefineMethod("eos?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.EndOfLine), - }); - - module.DefineMethod("exist?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.Exist), - }); - - module.DefineMethod("get_byte", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetByte), - }); - - module.DefineMethod("getbyte", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetByte), - }); - - module.DefineMethod("getch", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetChar), - }); - - module.DefineMethod("inspect", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.ToString), - }); - - module.DefineMethod("match?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.Match), - }); - - module.DefineMethod("matched", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Matched), - }); - - module.DefineMethod("matched?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.WasMatched), - }); - - module.DefineMethod("matched_size", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.MatchedSize), - }); - - module.DefineMethod("matchedsize", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.MatchedSize), - }); - - module.DefineMethod("peek", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Peek), - }); - - module.DefineMethod("peep", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Peek), - }); - - module.DefineMethod("pointer", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetCurrentPosition), - }); - - module.DefineMethod("pointer=", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.SetCurrentPosition), - }); - - module.DefineMethod("pos", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetCurrentPosition), - }); - - module.DefineMethod("pos=", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.SetCurrentPosition), - }); - - module.DefineMethod("post_match", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.PostMatch), - }); - - module.DefineMethod("pre_match", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.PreMatch), - }); - - module.DefineMethod("reset", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Reset), - }); - - module.DefineMethod("rest", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Rest), - }); - - module.DefineMethod("rest?", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.IsRestLeft), - }); - - module.DefineMethod("rest_size", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.RestSize), - }); - - module.DefineMethod("restsize", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.RestSize), - }); - - module.DefineMethod("scan", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Scan), - }); - - module.DefineMethod("scan_full", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.ScanFull), - }); - - module.DefineMethod("scan_until", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.ScanUntil), - }); - - module.DefineMethod("search_full", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.SearchFull), - }); - - module.DefineMethod("skip", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.Skip), - }); - - module.DefineMethod("skip_until", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.StringScanner.SkipUntil), - }); - - module.DefineMethod("string", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.GetString), - }); - - module.DefineMethod("string=", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.SetString), - }); - - module.DefineMethod("terminate", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Clear), - }); - - module.DefineMethod("to_s", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.ToString), - }); - - module.DefineMethod("unscan", 0x9, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.Unscan), - }); - - } - - private void LoadStringScanner_Class(Ruby.Builtins.RubyModule/*!*/ module) { - - module.DefineMethod("must_C_version", 0x11, new System.Delegate[] { - new Microsoft.Scripting.Utils.Function(Ruby.Builtins.StringScanner.MustCVersion), - }); - - } - private void LoadStruct_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetValue), }); - module.DefineMethod("[]=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.SetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.SetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.SetValue), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.SetValue), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Equals), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Each), }); - module.DefineMethod("each_pair", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_pair", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.EachPair), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Equal), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Hash), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Inspect), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetSize), }); - module.DefineMethod("members", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("members", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.RubyStructOps.GetMembers), }); - module.DefineMethod("select", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("select", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Select), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.GetSize), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Values), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Inspect), }); - module.DefineMethod("values", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.Values), }); - module.DefineMethod("values_at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values_at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.RubyStructOps.ValuesAt), }); @@ -3736,27 +3502,27 @@ private void LoadSymbol_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("id2name", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("id2name", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.ToString), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.Inspect), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.ToInteger), }); - module.DefineMethod("to_int", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_int", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.ToInteger), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.ToString), }); - module.DefineMethod("to_sym", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_sym", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SymbolOps.ToSymbol), }); @@ -3764,7 +3530,7 @@ private void LoadSymbol_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("all_symbols", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("all_symbols", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.Builtins.SymbolOps.GetAllSymbols), }); @@ -3772,179 +3538,179 @@ private void LoadSystem__Collections__Generic__IDictionary_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.GetElement), }); - module.DefineMethod("[]=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.SetElement), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.Equals), }); - module.DefineMethod("clear", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clear", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Collections.Generic.IDictionary>(Ruby.Builtins.IDictionaryOps.Clear), }); - module.DefineMethod("default", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("default", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.GetDefaultValue), }); - module.DefineMethod("default_proc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("default_proc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.Proc>(Ruby.Builtins.IDictionaryOps.GetDefaultProc), }); - module.DefineMethod("delete", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Delete), }); - module.DefineMethod("delete_if", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete_if", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.DeleteIf), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.Each), }); - module.DefineMethod("each_key", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_key", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.EachKey), }); - module.DefineMethod("each_pair", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_pair", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.EachPair), }); - module.DefineMethod("each_value", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_value", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.EachValue), }); - module.DefineMethod("empty?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("empty?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Boolean>(Ruby.Builtins.IDictionaryOps.Empty), }); - module.DefineMethod("fetch", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("fetch", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Fetch), }); - module.DefineMethod("has_key?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("has_key?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasKey), }); - module.DefineMethod("has_value?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("has_value?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasValue), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasKey), }); - module.DefineMethod("index", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("index", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Index), }); - module.DefineMethod("indexes", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("indexes", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object[], Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.Indexes), }); - module.DefineMethod("indices", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("indices", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object[], Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.Indexes), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.MutableString>(Ruby.Builtins.IDictionaryOps.Inspect), }); - module.DefineMethod("invert", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("invert", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.Hash>(Ruby.Builtins.IDictionaryOps.Invert), }); - module.DefineMethod("key?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("key?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasKey), }); - module.DefineMethod("keys", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("keys", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.GetKeys), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Int32>(Ruby.Builtins.IDictionaryOps.Length), }); - module.DefineMethod("member?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("member?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasKey), }); - module.DefineMethod("merge", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("merge", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Merge), }); - module.DefineMethod("merge!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("merge!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Update), }); - module.DefineMethod("rehash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rehash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Collections.Generic.IDictionary>(Ruby.Builtins.IDictionaryOps.Rehash), }); - module.DefineMethod("reject", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reject", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.Reject), }); - module.DefineMethod("reject!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reject!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.RejectMutate), }); - module.DefineMethod("replace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("replace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Collections.Generic.IDictionary>(Ruby.Builtins.IDictionaryOps.Replace), }); - module.DefineMethod("select", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("select", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.Select), }); - module.DefineMethod("shift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shift", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object>(Ruby.Builtins.IDictionaryOps.Shift), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Int32>(Ruby.Builtins.IDictionaryOps.Length), }); - module.DefineMethod("sort", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object>(Ruby.Builtins.IDictionaryOps.Sort), }); - module.DefineMethod("store", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("store", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.SetElement), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.ToArray), }); - module.DefineMethod("to_hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Collections.Generic.IDictionary>(Ruby.Builtins.IDictionaryOps.ToHash), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.MutableString>(Ruby.Builtins.IDictionaryOps.ToString), }); - module.DefineMethod("update", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("update", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Runtime.BlockParam, System.Object, System.Object>(Ruby.Builtins.IDictionaryOps.Update), }); - module.DefineMethod("value?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("value?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object, System.Boolean>(Ruby.Builtins.IDictionaryOps.HasValue), }); - module.DefineMethod("values", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.GetValues), }); - module.DefineMethod("values_at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values_at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function, System.Object[], Ruby.Builtins.RubyArray>(Ruby.Builtins.IDictionaryOps.ValuesAt), }); @@ -3952,7 +3718,7 @@ private void LoadSystem__Collections__IEnumerable_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IEnumerableOps.Each), }); @@ -3960,24 +3726,24 @@ private void LoadSystem__Collections__IList_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("-", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Difference), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Difference), }); - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Intersection), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Intersection), }); - module.DefineMethod("*", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("*", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Repetition), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Repetition), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Repetition), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Repetition), }); - module.DefineMethod("[]", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElements), @@ -3987,7 +3753,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), }); - module.DefineMethod("[]=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("[]=", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SetElement), @@ -3997,95 +3763,95 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SetElement), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Union), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Union), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Concatenate), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Concatenate), }); - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Append), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Compare), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Compare), }); - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Equals), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Equals), }); - module.DefineMethod("assoc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("assoc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetContainerOfFirstItem), }); - module.DefineMethod("at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.At), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.At), }); - module.DefineMethod("clear", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clear", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Clear), }); - module.DefineMethod("collect!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("collect!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.CollectInPlace), }); - module.DefineMethod("compact", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("compact", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Compact), }); - module.DefineMethod("compact!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("compact!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.CompactInPlace), }); - module.DefineMethod("concat", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("concat", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Concat), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Concat), }); - module.DefineMethod("delete", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Delete), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Delete), }); - module.DefineMethod("delete_at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete_at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.DeleteAt), }); - module.DefineMethod("delete_if", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("delete_if", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.DeleteIf), }); - module.DefineMethod("each", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Each), }); - module.DefineMethod("each_index", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("each_index", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.EachIndex), }); - module.DefineMethod("empty?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("empty?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Empty), }); - module.DefineMethod("eql?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("eql?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.HashEquals), }); - module.DefineMethod("fetch", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("fetch", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fetch), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fetch), }); - module.DefineMethod("fill", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("fill", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fill), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fill), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fill), @@ -4096,110 +3862,110 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Fill), }); - module.DefineMethod("first", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("first", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.First), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.First), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.First), }); - module.DefineMethod("flatten", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("flatten", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Flatten), }); - module.DefineMethod("flatten!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("flatten!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.FlattenInPlace), }); - module.DefineMethod("hash", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hash", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetHashCode), }); - module.DefineMethod("include?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("include?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Include), }); - module.DefineMethod("index", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("index", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Index), }); - module.DefineMethod("indexes", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("indexes", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Indexes), }); - module.DefineMethod("indices", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("indices", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Indexes), }); - module.DefineMethod("insert", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("insert", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Insert), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Inspect), }); - module.DefineMethod("join", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("join", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Join), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Join), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Join), }); - module.DefineMethod("last", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("last", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Last), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Last), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Last), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Length), }); - module.DefineMethod("map!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("map!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.CollectInPlace), }); - module.DefineMethod("nitems", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("nitems", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.NumberOfNonNilItems), }); - module.DefineMethod("pop", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pop", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Pop), }); - module.DefineMethod("push", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("push", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Push), }); - module.DefineMethod("rassoc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rassoc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetContainerOfSecondItem), }); - module.DefineMethod("replace", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("replace", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Replace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Replace), }); - module.DefineMethod("reverse", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Reverse), }); - module.DefineMethod("reverse!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reverse!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.InPlaceReverse), }); - module.DefineMethod("rindex", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("rindex", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.ReverseIndex), }); - module.DefineMethod("shift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shift", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Shift), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Length), }); - module.DefineMethod("slice", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("slice", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElements), @@ -4209,7 +3975,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.GetElement), }); - module.DefineMethod("slice!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("slice!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SliceInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SliceInPlace), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SliceInPlace), @@ -4217,43 +3983,43 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SliceInPlace), }); - module.DefineMethod("sort", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Sort), }); - module.DefineMethod("sort!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sort!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.SortInPlace), }); - module.DefineMethod("to_a", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_a", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.ToArray), }); - module.DefineMethod("to_ary", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_ary", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.ToArray), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Join), }); - module.DefineMethod("transpose", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("transpose", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Transpose), }); - module.DefineMethod("uniq", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("uniq", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Unique), }); - module.DefineMethod("uniq!", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("uniq!", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.UniqueSelf), }); - module.DefineMethod("unshift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("unshift", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.Unshift), }); - module.DefineMethod("values_at", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("values_at", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IListOps.ValuesAt), }); @@ -4261,7 +4027,7 @@ private void LoadSystem__IComparable_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.IComparableOps.Compare), }); @@ -4269,11 +4035,11 @@ private void LoadSystem__Type_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_class", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_class", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TypeOps.ToClass), }); - module.DefineMethod("to_module", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_module", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TypeOps.ToModule), }); @@ -4281,11 +4047,11 @@ private void LoadSystemExit_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("status", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("status", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemExitOps.GetStatus), }); - module.DefineMethod("success?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("success?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.SystemExitOps.IsSuccessful), }); @@ -4293,7 +4059,7 @@ private void LoadThread_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("join", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("join", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ThreadOps.Join), }); @@ -4301,19 +4067,19 @@ private void LoadThread_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("critical", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("critical", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ThreadOps.Critical), }); - module.DefineMethod("critical=", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("critical=", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ThreadOps.Critical), }); - module.DefineMethod("current", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("current", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ThreadOps.Current), }); - module.DefineMethod("new", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("new", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.ThreadOps.CreateThread), }); @@ -4321,130 +4087,130 @@ private void LoadTime_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("-", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("-", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.SubtractSeconds), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.SubtractTime), }); - module.DefineMethod("+", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("+", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.AddSeconds), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.AddTime), }); - module.DefineMethod("<=>", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<=>", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CompareSeconds), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CompareTo), }); - module.DefineMethod("asctime", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("asctime", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToString), }); - module.DefineMethod("ctime", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("ctime", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToString), }); - module.DefineMethod("day", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("day", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Day), }); - module.DefineMethod("dst?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("dst?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.IsDST), }); - module.DefineMethod("dup", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("dup", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Clone), }); - module.DefineMethod("gmt?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gmt?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.IsUTC), }); - module.DefineMethod("gmt_offset", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gmt_offset", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Offset), }); - module.DefineMethod("gmtime", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("gmtime", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToUTC), }); - module.DefineMethod("hour", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hour", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Hour), }); - module.DefineMethod("inspect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inspect", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToString), }); - module.DefineMethod("isdst", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("isdst", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.IsDST), }); - module.DefineMethod("localtime", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("localtime", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToLocalTime), }); - module.DefineMethod("mday", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("mday", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Day), }); - module.DefineMethod("min", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("min", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Minute), }); - module.DefineMethod("mon", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("mon", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Month), }); - module.DefineMethod("month", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("month", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Month), }); - module.DefineMethod("sec", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sec", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Second), }); - module.DefineMethod("succ", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("succ", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.SuccessiveSecond), }); - module.DefineMethod("to_f", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_f", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToFloatSeconds), }); - module.DefineMethod("to_i", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_i", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToSeconds), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToString), }); - module.DefineMethod("tv_sec", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tv_sec", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToSeconds), }); - module.DefineMethod("tv_usec", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("tv_usec", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.GetMicroSeconds), }); - module.DefineMethod("usec", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("usec", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.GetMicroSeconds), }); - module.DefineMethod("utc", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("utc", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.ToUTC), }); - module.DefineMethod("utc?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("utc?", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.IsUTC), }); - module.DefineMethod("yday", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("yday", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.DayOfYear), }); - module.DefineMethod("year", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("year", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Year), }); @@ -4452,13 +4218,13 @@ private void LoadTime_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("at", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("at", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Create), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Create), }); - module.DefineMethod("gm", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gm", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), @@ -4467,7 +4233,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), }); - module.DefineMethod("local", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("local", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), @@ -4476,7 +4242,7 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), }); - module.DefineMethod("mktime", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("mktime", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), @@ -4485,15 +4251,15 @@ new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.createLocalTime), }); - module.DefineMethod("now", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("now", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateTime), }); - module.DefineMethod("today", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("today", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.Today), }); - module.DefineMethod("utc", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("utc", 0x31, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TimeOps.CreateGmtTime), @@ -4506,21 +4272,21 @@ private void LoadTrueClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("&", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("&", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.And), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.And), }); - module.DefineMethod("^", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("^", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.Xor), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.Xor), }); - module.DefineMethod("|", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("|", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.Or), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.TrueClass.ToString), }); @@ -4528,24 +4294,24 @@ private void LoadUnboundMethod_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("==", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("==", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.Equal), new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.Equal), }); - module.DefineMethod("arity", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("arity", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.GetArity), }); - module.DefineMethod("bind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("bind", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.Bind), }); - module.DefineMethod("clone", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clone", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.Clone), }); - module.DefineMethod("to_s", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_s", 0x29, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.Builtins.UnboundMethod.ToS), }); @@ -4568,15 +4334,15 @@ private void LoadConditionVariable_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("broadcast", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("broadcast", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyConditionVariable.Broadcast), }); - module.DefineMethod("signal", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("signal", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyConditionVariable.Signal), }); - module.DefineMethod("wait", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("wait", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyConditionVariable.Wait), }); @@ -4584,27 +4350,27 @@ private void LoadMutex_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("exclusive_unlock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("exclusive_unlock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.ExclusiveUnlock), }); - module.DefineMethod("lock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("lock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.Lock), }); - module.DefineMethod("locked?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("locked?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.IsLocked), }); - module.DefineMethod("synchronize", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("synchronize", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.Synchronize), }); - module.DefineMethod("try_lock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("try_lock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.TryLock), }); - module.DefineMethod("unlock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("unlock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyMutex.Unlock), }); @@ -4612,47 +4378,47 @@ private void LoadQueue_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Enqueue), }); - module.DefineMethod("clear", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("clear", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Clear), }); - module.DefineMethod("deq", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("deq", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Dequeue), }); - module.DefineMethod("empty?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("empty?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.IsEmpty), }); - module.DefineMethod("enq", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("enq", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Enqueue), }); - module.DefineMethod("length", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("length", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.GetCount), }); - module.DefineMethod("num_waiting", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("num_waiting", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.GetNumberOfWaitingThreads), }); - module.DefineMethod("pop", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pop", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Dequeue), }); - module.DefineMethod("push", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("push", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Enqueue), }); - module.DefineMethod("shift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shift", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.Dequeue), }); - module.DefineMethod("size", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("size", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.RubyQueue.GetCount), }); @@ -4660,40 +4426,40 @@ private void LoadSizedQueue_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Enqueue), }); - module.DefineMethod("deq", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("deq", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Dequeue), }); - module.DefineMethod("enq", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("enq", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Enqueue), }); - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0xa, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Reinitialize), }); - module.DefineMethod("max", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("max", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.GetLimit), }); - module.DefineMethod("max=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("max=", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Threading.SizedQueue.SetLimit), new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Threading.SizedQueue.SetLimit), }); - module.DefineMethod("pop", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("pop", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Dequeue), }); - module.DefineMethod("push", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("push", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Enqueue), }); - module.DefineMethod("shift", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shift", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Threading.SizedQueue.Dequeue), }); @@ -4746,48 +4512,48 @@ #if !SILVERLIGHT private void LoadBasicSocket_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("close_read", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close_read", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.CloseRead), }); - module.DefineMethod("close_write", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close_write", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.CloseWrite), }); - module.DefineMethod("getpeername", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("getpeername", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.GetPeerName), }); - module.DefineMethod("getsockname", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("getsockname", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.GetSocketName), }); - module.DefineMethod("getsockopt", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("getsockopt", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.GetSocketOption), }); - module.DefineMethod("recv", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("recv", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Receive), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Receive), }); - module.DefineMethod("recv_nonblock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("recv_nonblock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.ReceiveNonBlocking), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.ReceiveNonBlocking), }); - module.DefineMethod("send", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("send", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Send), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Send), }); - module.DefineMethod("setsockopt", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("setsockopt", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.SetSocketOption), new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.SetSocketOption), new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.SetSocketOption), }); - module.DefineMethod("shutdown", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("shutdown", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Shutdown), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Shutdown), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.Shutdown), @@ -4799,15 +4565,15 @@ #if !SILVERLIGHT private void LoadBasicSocket_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("do_not_reverse_lookup", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("do_not_reverse_lookup", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.GetDoNotReverseLookup), }); - module.DefineMethod("do_not_reverse_lookup=", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("do_not_reverse_lookup=", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.RubyBasicSocket.SetDoNotReverseLookup), }); - module.DefineMethod("for_fd", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("for_fd", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubyBasicSocket.ForFileDescriptor), }); @@ -4817,15 +4583,15 @@ #if !SILVERLIGHT private void LoadIPSocket_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("addr", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("addr", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.IPSocket.GetLocalAddress), }); - module.DefineMethod("peeraddr", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("peeraddr", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.IPSocket.GetPeerAddress), }); - module.DefineMethod("recvfrom", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("recvfrom", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.IPSocket.ReceiveFrom), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.IPSocket.ReceiveFrom), }); @@ -4836,7 +4602,7 @@ #if !SILVERLIGHT private void LoadIPSocket_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("getaddress", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("getaddress", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.IPSocket.GetAddress), }); @@ -4967,36 +4733,36 @@ module.SetConstant("SOL_SOCKET", Ruby.StandardLibrary.Sockets.RubySocket.SOL_SOCKET); module.SetConstant("TCP_NODELAY", Ruby.StandardLibrary.Sockets.RubySocket.TCP_NODELAY); - module.DefineMethod("accept", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("accept", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.Accept), }); - module.DefineMethod("accept_nonblock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("accept_nonblock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.AcceptNonBlocking), }); - module.DefineMethod("bind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("bind", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.Bind), }); - module.DefineMethod("connect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("connect", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.Connect), }); - module.DefineMethod("connect_nonblock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("connect_nonblock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.ConnectNonBlocking), }); - module.DefineMethod("listen", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("listen", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.Listen), }); - module.DefineMethod("recvfrom", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("recvfrom", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.ReceiveFrom), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.ReceiveFrom), }); - module.DefineMethod("sysaccept", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sysaccept", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.SysAccept), }); @@ -5127,48 +4893,48 @@ module.SetConstant("SOL_SOCKET", Ruby.StandardLibrary.Sockets.RubySocket.SOL_SOCKET); module.SetConstant("TCP_NODELAY", Ruby.StandardLibrary.Sockets.RubySocket.TCP_NODELAY); - module.DefineMethod("getaddrinfo", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("getaddrinfo", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetAddressInfo), }); - module.DefineMethod("gethostbyaddr", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gethostbyaddr", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetHostByAddress), }); - module.DefineMethod("gethostbyname", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gethostbyname", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetHostByName), }); - module.DefineMethod("gethostname", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gethostname", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetHostname), }); - module.DefineMethod("getnameinfo", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("getnameinfo", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetNameInfo), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetNameInfo), }); - module.DefineMethod("getservbyname", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("getservbyname", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.GetServiceByName), }); - module.DefineMethod("pack_sockaddr_in", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("pack_sockaddr_in", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.PackInetSockAddr), }); - module.DefineMethod("pair", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("pair", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.CreateSocketPair), }); - module.DefineMethod("sockaddr_in", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("sockaddr_in", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.PackInetSockAddr), }); - module.DefineMethod("socketpair", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("socketpair", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.CreateSocketPair), }); - module.DefineMethod("unpack_sockaddr_in", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("unpack_sockaddr_in", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.RubySocket.UnPackInetSockAddr), }); @@ -5185,19 +4951,19 @@ #if !SILVERLIGHT private void LoadTCPServer_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("accept", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("accept", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.TCPServer.Accept), }); - module.DefineMethod("accept_nonblock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("accept_nonblock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.TCPServer.AcceptNonBlocking), }); - module.DefineMethod("listen", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("listen", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Sockets.TCPServer.Listen), }); - module.DefineMethod("sysaccept", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("sysaccept", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.TCPServer.SysAccept), }); @@ -5207,7 +4973,7 @@ #if !SILVERLIGHT private void LoadTCPSocket_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("gethostbyname", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("gethostbyname", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.TCPSocket.GetHostByName), }); @@ -5217,20 +4983,20 @@ #if !SILVERLIGHT private void LoadUDPSocket_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("bind", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("bind", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.Bind), }); - module.DefineMethod("connect", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("connect", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.Connect), }); - module.DefineMethod("recvfrom_nonblock", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("recvfrom_nonblock", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.ReceiveFromNonBlocking), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.ReceiveFromNonBlocking), }); - module.DefineMethod("send", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("send", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.Send), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.Send), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Sockets.UDPSocket.Send), @@ -5266,7 +5032,7 @@ private void LoadOpenSSL__Digest__Digest_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("initialize", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("initialize", 0xa, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.OpenSsl.OpenSsl.DigestFactory.Digest.Initialize), }); @@ -5274,7 +5040,7 @@ private void LoadOpenSSL__HMAC_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("hexdigest", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("hexdigest", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.OpenSsl.OpenSsl.HMAC.HexDigest), }); @@ -5312,11 +5078,11 @@ private void LoadDigest_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("const_missing", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("const_missing", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.ConstantMissing), }); - module.DefineMethod("hexencode", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("hexencode", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.HexEncode), }); @@ -5324,19 +5090,19 @@ private void LoadDigest__Base_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("<<", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("<<", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Base.Update), }); - module.DefineMethod("finish", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("finish", 0xa, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Base.Finish), }); - module.DefineMethod("reset", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reset", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Base.Reset), }); - module.DefineMethod("update", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("update", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Base.Update), }); @@ -5344,11 +5110,11 @@ private void LoadDigest__Class_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("digest", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("digest", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Class.Digest), }); - module.DefineMethod("hexdigest", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("hexdigest", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Class.HexDigest), }); @@ -5356,11 +5122,11 @@ private void LoadDigest__Instance_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("digest", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("digest", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Instance.Digest), }); - module.DefineMethod("hexdigest", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("hexdigest", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Digest.Digest.Instance.HexDigest), }); @@ -5412,23 +5178,23 @@ private void LoadZlib__GzipReader_Instance(Ruby.Builtins.RubyModule/*!*/ module) { module.SetConstant("OSES", Ruby.StandardLibrary.Zlib.Zlib.GZipReader.OSES); - module.DefineMethod("comment", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("comment", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Comment), }); - module.DefineMethod("open", 0xa, new System.Delegate[] { + module.DefineLibraryMethod("open", 0xa, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Open), }); - module.DefineMethod("original_name", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("original_name", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.OriginalName), }); - module.DefineMethod("read", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("read", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Read), }); - module.DefineMethod("xtra_field", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("xtra_field", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.ExtraField), }); @@ -5437,7 +5203,7 @@ private void LoadZlib__GzipReader_Class(Ruby.Builtins.RubyModule/*!*/ module) { module.SetConstant("OSES", Ruby.StandardLibrary.Zlib.Zlib.GZipReader.OSES); - module.DefineMethod("open", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("open", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Open), new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Open), new Microsoft.Scripting.Utils.Action(Ruby.StandardLibrary.Zlib.Zlib.GZipReader.Open), @@ -5448,11 +5214,11 @@ private void LoadZlib__Inflate_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("close", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.Inflate.Close), }); - module.DefineMethod("inflate", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("inflate", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.Inflate.InflateStream), }); @@ -5460,7 +5226,7 @@ private void LoadZlib__Inflate_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("inflate", 0x11, new System.Delegate[] { + module.DefineLibraryMethod("inflate", 0x11, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.Inflate.InflateStream), }); @@ -5468,63 +5234,63 @@ private void LoadZlib__ZStream_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("adler", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("adler", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.Adler), }); - module.DefineMethod("avail_in", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("avail_in", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.AvailIn), }); - module.DefineMethod("avail_out", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("avail_out", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.GetAvailOut), }); - module.DefineMethod("avail_out=", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("avail_out=", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.SetAvailOut), }); - module.DefineMethod("close", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("close", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.Close), }); - module.DefineMethod("closed?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("closed?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.IsClosed), }); - module.DefineMethod("data_type", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("data_type", 0x9, new System.Delegate[] { new System.Action(Ruby.StandardLibrary.Zlib.Zlib.ZStream.DataType), }); - module.DefineMethod("finish", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("finish", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.Close), }); - module.DefineMethod("finished?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("finished?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.IsClosed), }); - module.DefineMethod("flush_next_in", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("flush_next_in", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.Zlib.Zlib.ZStream.FlushNextIn), }); - module.DefineMethod("flush_next_out", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("flush_next_out", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.Zlib.Zlib.ZStream.FlushNextOut), }); - module.DefineMethod("reset", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("reset", 0x9, new System.Delegate[] { new System.Action(Ruby.StandardLibrary.Zlib.Zlib.ZStream.Reset), }); - module.DefineMethod("stream_end?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("stream_end?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.IsClosed), }); - module.DefineMethod("total_in", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("total_in", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.TotalIn), }); - module.DefineMethod("total_out", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("total_out", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Zlib.Zlib.ZStream.TotalOut), }); @@ -5533,3 +5299,282 @@ } } +namespace Ruby.StandardLibrary.StringIO { + public sealed class StringIOLibraryInitializer : Ruby.Builtins.LibraryInitializer { + protected override void LoadModules() { + Ruby.Builtins.RubyClass classRef0 = GetClass(typeof(Ruby.Builtins.RubyIO)); + + + DefineGlobalClass("StringIO", typeof(Ruby.StandardLibrary.StringIO.StringIO), classRef0, new System.Action(LoadStringIO_Instance), new System.Action(LoadStringIO_Class), Ruby.Builtins.RubyModule.EmptyArray, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.CreateIO), + }); + } + + private void LoadStringIO_Instance(Ruby.Builtins.RubyModule/*!*/ module) { + + module.DefineLibraryMethod("length", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.Length), + }); + + module.DefineLibraryMethod("path", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.Path), + }); + + module.DefineLibraryMethod("size", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.Length), + }); + + module.DefineLibraryMethod("string", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.GetString), + }); + + module.DefineLibraryMethod("string=", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.SetString), + }); + + module.DefineLibraryMethod("truncate", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.Length), + }); + + } + + private void LoadStringIO_Class(Ruby.Builtins.RubyModule/*!*/ module) { + + module.DefineLibraryMethod("open", 0x11, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringIO.StringIO.OpenIO), + }); + + } + + } +} + +namespace Ruby.StandardLibrary.StringScanner { + public sealed class StringScannerLibraryInitializer : Ruby.Builtins.LibraryInitializer { + protected override void LoadModules() { + Ruby.Builtins.RubyClass classRef0 = GetClass(typeof(System.Object)); + + + DefineGlobalClass("StringScanner", typeof(Ruby.StandardLibrary.StringScanner.StringScanner), classRef0, new System.Action(LoadStringScanner_Instance), new System.Action(LoadStringScanner_Class), Ruby.Builtins.RubyModule.EmptyArray, null); + } + + private void LoadStringScanner_Instance(Ruby.Builtins.RubyModule/*!*/ module) { + + module.DefineLibraryMethod("[]", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetMatchSubgroup), + }); + + module.DefineLibraryMethod("<<", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Concat), + }); + + module.DefineLibraryMethod("beginning_of_line?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.BeginningOfLine), + }); + + module.DefineLibraryMethod("bol?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.BeginningOfLine), + }); + + module.DefineLibraryMethod("check", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Check), + }); + + module.DefineLibraryMethod("check_until", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.CheckUntil), + }); + + module.DefineLibraryMethod("clear", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Clear), + }); + + module.DefineLibraryMethod("concat", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Concat), + }); + + module.DefineLibraryMethod("empty?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.EndOfLine), + }); + + module.DefineLibraryMethod("eos?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.EndOfLine), + }); + + module.DefineLibraryMethod("exist?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.Exist), + }); + + module.DefineLibraryMethod("get_byte", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetByte), + }); + + module.DefineLibraryMethod("getbyte", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetByte), + }); + + module.DefineLibraryMethod("getch", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetChar), + }); + + module.DefineLibraryMethod("inspect", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.ToString), + }); + + module.DefineLibraryMethod("match?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.Match), + }); + + module.DefineLibraryMethod("matched", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Matched), + }); + + module.DefineLibraryMethod("matched?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.WasMatched), + }); + + module.DefineLibraryMethod("matched_size", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.MatchedSize), + }); + + module.DefineLibraryMethod("matchedsize", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.MatchedSize), + }); + + module.DefineLibraryMethod("peek", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Peek), + }); + + module.DefineLibraryMethod("peep", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Peek), + }); + + module.DefineLibraryMethod("pointer", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetCurrentPosition), + }); + + module.DefineLibraryMethod("pointer=", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.SetCurrentPosition), + }); + + module.DefineLibraryMethod("pos", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetCurrentPosition), + }); + + module.DefineLibraryMethod("pos=", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.SetCurrentPosition), + }); + + module.DefineLibraryMethod("post_match", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.PostMatch), + }); + + module.DefineLibraryMethod("pre_match", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.PreMatch), + }); + + module.DefineLibraryMethod("reset", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Reset), + }); + + module.DefineLibraryMethod("rest", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Rest), + }); + + module.DefineLibraryMethod("rest?", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.IsRestLeft), + }); + + module.DefineLibraryMethod("rest_size", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.RestSize), + }); + + module.DefineLibraryMethod("restsize", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.RestSize), + }); + + module.DefineLibraryMethod("scan", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Scan), + }); + + module.DefineLibraryMethod("scan_full", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.ScanFull), + }); + + module.DefineLibraryMethod("scan_until", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.ScanUntil), + }); + + module.DefineLibraryMethod("search_full", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.SearchFull), + }); + + module.DefineLibraryMethod("skip", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.Skip), + }); + + module.DefineLibraryMethod("skip_until", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function>(Ruby.StandardLibrary.StringScanner.StringScanner.SkipUntil), + }); + + module.DefineLibraryMethod("string", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.GetString), + }); + + module.DefineLibraryMethod("string=", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.SetString), + }); + + module.DefineLibraryMethod("terminate", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Clear), + }); + + module.DefineLibraryMethod("to_s", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.ToString), + }); + + module.DefineLibraryMethod("unscan", 0x9, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.Unscan), + }); + + } + + private void LoadStringScanner_Class(Ruby.Builtins.RubyModule/*!*/ module) { + + module.DefineLibraryMethod("must_C_version", 0x11, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.StringScanner.StringScanner.MustCVersion), + }); + + } + + } +} + +namespace Ruby.StandardLibrary.Enumerator { + public sealed class EnumeratorLibraryInitializer : Ruby.Builtins.LibraryInitializer { + protected override void LoadModules() { + Ruby.Builtins.RubyClass classRef0 = GetClass(typeof(System.Object)); + + + Ruby.Builtins.RubyModule def1 = ExtendModule(typeof(Ruby.Builtins.Enumerable), null, null, Ruby.Builtins.RubyModule.EmptyArray); + Ruby.Builtins.RubyClass def2 = DefineClass("Ruby::Builtins::Enumerable::Enumerator", typeof(Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator), classRef0, null, null, new Ruby.Builtins.RubyModule[] {def1, }, new System.Delegate[] { + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator.CreateForEach), + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator.Create), + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator.Create), + new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator.Create), + }); + def1.SetConstant("Enumerator", def2); + } + + } +} + +namespace Ruby.StandardLibrary.FunctionControl { + public sealed class FunctionControlLibraryInitializer : Ruby.Builtins.LibraryInitializer { + protected override void LoadModules() { + + + } + + } +} + =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/IronRuby.Libraries.csproj;C443985 File: IronRuby.Libraries.csproj =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/IronRuby.Libraries.csproj;C443985 (server) 5/20/2008 11:41 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/IronRuby.Libraries.csproj;events @@ -86,7 +86,6 @@ - @@ -111,9 +110,7 @@ - - @@ -121,12 +118,14 @@ + + @@ -139,6 +138,8 @@ + + @@ -201,6 +202,20 @@ PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/stringio.rb File: stringio.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/stringio.rb;events @@ -1,0 +1,1 @@ +?load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.StringIO' =================================================================== add: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/strscan.rb File: strscan.rb =================================================================== --- [no source file] +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/strscan.rb;events @@ -1,0 +1,1 @@ +?load_assembly 'IronRuby.Libraries', 'Ruby.StandardLibrary.StringScanner' =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Enumerable.cs;C442741 File: Enumerable.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Enumerable.cs;C442741 (server) 5/20/2008 11:55 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Enumerable.cs;events @@ -22,6 +22,7 @@ using Microsoft.Scripting.Ast; using Microsoft.Scripting.Runtime; using Ruby.Runtime; +using Enumerator = Ruby.StandardLibrary.Enumerator.Enumerable.Enumerator; namespace Ruby.Builtins { @@ -62,8 +63,6 @@ } } - #region Public Instance Methods - #region all?, any? [RubyMethod("all?")] @@ -442,81 +441,5 @@ } #endregion - - #endregion - - [RubyClass("Enumerator"), Includes(typeof(Enumerable))] - public abstract class Enumerator { - - private static readonly Dictionary> _siteCache = - new Dictionary>(); - private readonly object/*!*/ _obj; - - protected Enumerator(object/*!*/ obj) { - _obj = obj; - } - - protected DynamicSite GetSite(SymbolId name) { - DynamicSite result; - lock (_siteCache) { - if (!_siteCache.TryGetValue(name, out result)) { - result = DynamicSite.Create(RubySites.InstanceCallAction(name, ArgumentKind.Block)); - _siteCache[name] = result; - } - } - return result; - } - - internal abstract DynamicSite GetSite(); - - internal object Each(CodeContext/*!*/ context, Proc/*!*/ block) { - return GetSite().Invoke(context, _obj, block); - } - - [RubyConstructor] - public static Enumerator CreateForEach(CodeContext/*!*/ context, object/*!*/ obj) { - return new EnumeratorWithSymbolName(context, obj, SymbolTable.StringToId("each")); - } - - [RubyConstructor] - public static Enumerator Create(CodeContext/*!*/ context, object/*!*/ obj, SymbolId enumerator) { - return new EnumeratorWithSymbolName(context, obj, enumerator); - } - - [RubyConstructor] - public static Enumerator Create(CodeContext/*!*/ context, object/*!*/ obj, [NotNull]MutableString/*!*/ enumerator) { - return new EnumeratorWithStringName(context, obj, enumerator); - } - - [RubyConstructor] - public static Enumerator Create(CodeContext/*!*/ context, object/*!*/ obj, object enumerator) { - return new EnumeratorWithStringName(context, obj, Protocols.CastToString(context, enumerator)); - } - } - - internal class EnumeratorWithStringName : Enumerator { - private readonly MutableString/*!*/ _name; - - internal override DynamicSite GetSite() { - return GetSite(_name.ToSymbol()); - } - - internal EnumeratorWithStringName(CodeContext/*!*/ context, object/*!*/ obj, MutableString/*!*/ name) - : base(obj) { - _name = name; - } - } - internal class EnumeratorWithSymbolName : Enumerator { - private readonly SymbolId _name; - - internal override DynamicSite GetSite() { - return GetSite(_name); - } - - internal EnumeratorWithSymbolName(CodeContext/*!*/ context, object/*!*/ obj, SymbolId name) - : base(obj) { - _name = name; - } - } } } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;C443395 File: ModuleOps.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;C443395 (server) 5/19/2008 4:48 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;events @@ -226,17 +226,19 @@ ContractUtils.RequiresNotNull(context, "context"); ContractUtils.RequiresNotNull(methodNames, "methodNames"); + RubyScope scope = RubyUtils.GetScope(context); + if (methodNames.Length == 0) { - RubyUtils.GetScope(context).MethodAttributes = attributes; + scope.MethodAttributes = attributes; } else { - foreach (SymbolId methodName in CastToSymbols(context, methodNames)) { + foreach (SymbolId methodName in CastToSymbols(scope, methodNames)) { RubyMemberInfo method = module.ResolveMethod(methodName); if (method == null) { - throw RubyExceptions.CreateMethodMissing(context, module, methodName); + throw RubyExceptions.CreateMethodMissing(scope, module, methodName); } if ((attributes & RubyMethodAttributes.Singleton) != 0) { - module.SingletonClass.SetMethod(methodName, method); + module.SingletonClass.AddMethod(methodName, method); } method.Visibility = (RubyMethodVisibility)(attributes & RubyMethodAttributes.VisibilityMask); @@ -246,13 +248,16 @@ private static SymbolId[]/*!*/ CastToSymbols(CodeContext/*!*/ context, object[]/*!*/ objects) { SymbolId[] result = new SymbolId[objects.Length]; - for (int i = 0; i < objects.Length; i++) + for (int i = 0; i < objects.Length; i++) { result[i] = Protocols.CastToSymbol(context, objects[i]); + } return result; } #endregion + #region define_method + [RubyMethod("define_method", RubyMethodAttributes.PrivateInstance)] public static Proc/*!*/ DefineMethod(CodeContext/*!*/ context, RubyModule/*!*/ self, BlockParam/*!*/ block, SymbolId methodName) { // TODO: [NotNull] attribute should work for BlockParams but doesn't @@ -263,7 +268,7 @@ RubyScope scope = RubyUtils.GetScope(context); Proc lambda = block.Proc.ToLambda(); - self.SetMethod(methodName, Proc.ToLambdaMethodInfo(lambda, methodName, scope.Visibility, self)); + self.AddMethod(methodName, Proc.ToLambdaMethodInfo(lambda, methodName, scope.Visibility, self)); return lambda; } @@ -272,10 +277,29 @@ return DefineMethod(context, self, block, Protocols.CastToSymbol(context, methodName)); } - // method_added - // method_removed - // method_undefined + #endregion + #region method_(added|removed|undefined) + + [RubyMethod("method_added", RubyMethodAttributes.PrivateInstance)] + public static void MethodAdded(RubyModule/*!*/ self, object methodName) { + // nop + } + + [RubyMethod("method_removed", RubyMethodAttributes.PrivateInstance)] + public static void MethodRemoved(RubyModule/*!*/ self, object methodName) { + // nop + } + + [RubyMethod("method_undefined", RubyMethodAttributes.PrivateInstance)] + public static void MethodUndefined(RubyModule/*!*/ self, object methodName) { + // nop + } + + #endregion + + #region attr, attr_(reader,writer,accessor) + private static Function/*!*/ CreateGetter(CodeContext/*!*/ context, SymbolId name) { return delegate(object self) { return RubyOps.GetInstanceVariable(context, self, name); }; } @@ -290,10 +314,10 @@ SymbolId instanceVariableName = SymbolTable.StringToId("@" + getterMethodName); if (readable) - self.DefineMethod(getterMethodName, (int)RubyMethodAttributes.PublicInstance, CreateGetter(context, instanceVariableName)); + self.DefineLibraryMethod(getterMethodName, (int)RubyMethodAttributes.PublicInstance, CreateGetter(context, instanceVariableName)); if (writable) - self.DefineMethod(setterMethodName, (int)RubyMethodAttributes.PublicInstance, CreateSetter(context, instanceVariableName)); + self.DefineLibraryMethod(setterMethodName, (int)RubyMethodAttributes.PublicInstance, CreateSetter(context, instanceVariableName)); } [RubyMethod("attr", RubyMethodAttributes.PrivateInstance)] @@ -389,22 +413,24 @@ [RubyMethod("attr_writer", RubyMethodAttributes.PrivateInstance)] public static void AccessorNoOperation(CodeContext/*!*/ context, RubyModule/*!*/ self) { } + #endregion + #region alias_method [RubyMethod("alias_method", RubyMethodAttributes.PrivateInstance)] - public static RubyModule/*!*/ AliasMethod(RubyModule/*!*/ self, SymbolId newName, SymbolId oldName) { + public static RubyModule/*!*/ AliasMethod(CodeContext/*!*/ context, RubyModule/*!*/ self, SymbolId newName, SymbolId oldName) { RubyMemberInfo method = self.ResolveMethod(oldName); if (method == null) { throw RubyExceptions.CreateUndefinedMethodError(self, oldName); } - self.SetMethod(newName, method); + self.AddMethod(newName, method); return self; } [RubyMethod("alias_method", RubyMethodAttributes.PrivateInstance)] public static RubyModule/*!*/ AliasMethod(CodeContext/*!*/ context, RubyModule/*!*/ self, object newName, object oldName) { - return AliasMethod(self, Protocols.CastToSymbol(context, newName), Protocols.CastToSymbol(context, oldName)); + return AliasMethod(context, self, Protocols.CastToSymbol(context, newName), Protocols.CastToSymbol(context, oldName)); } #endregion =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Precision.cs;C390406 File: Precision.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Precision.cs;C390406 (server) 5/20/2008 1:57 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Precision.cs;events @@ -55,7 +55,7 @@ /// The host class including the module [RubyMethod("included", RubyMethodAttributes.PublicSingleton)] public static object Included(CodeContext/*!*/ context, RubyModule/*!*/ module, RubyModule/*!*/ includedIn) { - includedIn.SingletonClass.DefineMethod("induced_from", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function(InducedFrom)); + includedIn.SingletonClass.DefineLibraryMethod("induced_from", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function(InducedFrom)); return module; } private static readonly SymbolId inducedFromSymbol = SymbolTable.StringToId("induced_from"); =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Struct.cs;C443985 File: Struct.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Struct.cs;C443985 (server) 5/20/2008 1:57 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Struct.cs;events @@ -460,14 +460,14 @@ // add methods to the generated class private static void AddClassMembers(RubyClass/*!*/ cls, SymbolId[]/*!*/ structMembers) { cls.SingletonClass.Factories = new Delegate[] { new Function(CreateInstance) }; - cls.SingletonClass.DefineMethod("[]", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function(CreateInstance)); - cls.SingletonClass.DefineMethod("members", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function>(GetMembers)); - cls.DefineMethod("initialize", (int)RubyMethodAttributes.PrivateInstance, (Delegate)new Function(Initialize)); + cls.SingletonClass.DefineLibraryMethod("[]", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function(CreateInstance)); + cls.SingletonClass.DefineLibraryMethod("members", (int)RubyMethodAttributes.PublicSingleton, (Delegate)new Function>(GetMembers)); + cls.DefineLibraryMethod("initialize", (int)RubyMethodAttributes.PrivateInstance, (Delegate)new Function(Initialize)); for (int i = 0; i < structMembers.Length; i++) { string getter = SymbolTable.IdToString(structMembers[i]); - cls.DefineMethod(getter, (int)RubyMethodAttributes.PublicInstance, CreateGetter(i)); - cls.DefineMethod(getter + '=', (int)RubyMethodAttributes.PublicInstance, CreateSetter(i)); + cls.DefineLibraryMethod(getter, (int)RubyMethodAttributes.PublicInstance, CreateGetter(i)); + cls.DefineLibraryMethod(getter + '=', (int)RubyMethodAttributes.PublicInstance, CreateSetter(i)); } } =================================================================== branch, edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Enumerator/Enumerator.cs File: Enumerator.cs =================================================================== --- Enumerable.cs (server) 5/20/2008 11:55 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Enumerator/Enumerator.cs;events @@ -17,435 +17,23 @@ using System.Collections.Generic; using System.Reflection; using System.Runtime.InteropServices; + using Microsoft.Scripting; using Microsoft.Scripting.Actions; using Microsoft.Scripting.Ast; using Microsoft.Scripting.Runtime; + using Ruby.Runtime; +using Ruby.Builtins; +using EnumerableModule = Ruby.Builtins.Enumerable; -namespace Ruby.Builtins { +namespace Ruby.StandardLibrary.Enumerator { - // TODO: All of these methods use RubySites.Each, which is not ideal (shared DynamicSite). - // We could have one DynamicSite per method, but what we really want is for the - // "each" site to be merged into the calling site (e.g. maybe use ActionOnCallable) - [RubyModule("Enumerable")] + [RubyModule(Extends = typeof(EnumerableModule))] public static class Enumerable { - - #region Sites - - private static DynamicSite/*!*/ - _AllAnySite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _CollectMapSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _DetectFindSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _GrepSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _PartitionSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _SelectRejectSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _SortBySite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder); - - private static DynamicSite/*!*/ - _ZipSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder); - - private static DynamicSite/*!*/ - _InjectSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder), - _MinMaxSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder); - - private static DynamicSite/*!*/ - _EachWithIndexSite = CallSiteFactory.CreateSimpleCallSite(RubyContext.RubyBinder); - - #endregion - - private static object Each(CodeContext/*!*/ context, object self, Proc/*!*/ block) { - if (self is Enumerator) { - return ((Enumerator)self).Each(context, block); - } else { - return RubySites.Each(context, self, block); - } - } - - #region Public Instance Methods - - #region all?, any? - - [RubyMethod("all?")] - public static bool TrueForAll(CodeContext/*!*/ context, object self, BlockParam predicate) { - return TrueForItems(context, self, predicate, true); - } - - [RubyMethod("any?")] - public static bool TrueForAny(CodeContext/*!*/ context, object self, BlockParam predicate) { - return TrueForItems(context, self, predicate, false); - } - - private static bool TrueForItems(CodeContext/*!*/ context, object self, BlockParam predicate, bool expected) { - bool result = expected; - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (predicate != null) { - item = _AllAnySite.Invoke(context, predicate, item); - if (predicate.BlockJumped(result)) return item; - } - - bool isTrue = Protocols.IsTrue(item); - if (isTrue != result) { - result = isTrue; - return RuntimeFlowControl.BlockBreak(selfBlock, result); - } - - return null; - })); - return result; - } - - #endregion - - #region collect, map - - [RubyMethod("collect")] - [RubyMethod("map")] - public static RubyArray Map(CodeContext/*!*/ context, object self, BlockParam collector) { - RubyArray result = new RubyArray(); - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (collector != null) { - item = _CollectMapSite.Invoke(context, collector, item); - if (collector.BlockJumped(item)) return item; - } - result.Add(item); - return null; - })); - return result; - } - - #endregion - - #region detect, find - - [RubyMethod("detect")] - [RubyMethod("find")] - public static object Find(CodeContext/*!*/ context, object self, BlockParam predicate, [Optional]object ifNone) { - object result = Missing.Value; - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (predicate == null) throw new LocalJumpError("no block given"); - - object blockResult = _DetectFindSite.Invoke(context, predicate, item); - if (predicate.BlockJumped(blockResult)) return blockResult; - - if (Protocols.IsTrue(blockResult)) { - result = item; - return RuntimeFlowControl.BlockBreak(selfBlock, result); - } - - return null; - })); - - if (result == Missing.Value) { - if (ifNone == Missing.Value || ifNone == null) { - return null; - } - result = RubySites.Call(context, ifNone); - } - return result; - } - - #endregion - - #region each_with_index - - [RubyMethod("each_with_index")] - public static object EachWithIndex(CodeContext/*!*/ context, object self, BlockParam/*!*/ block) { - // for some reason each_with_index always checks for a block, even if there's nothing to yield - if (block == null) throw new LocalJumpError("no block given"); - - int index = 0; - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - object blockResult = _EachWithIndexSite.Invoke(context, block, item, index); - if (block.BlockJumped(blockResult)) return blockResult; - index += 1; - return null; - })); - - return self; - } - - #endregion - - #region entries, to_a - - [RubyMethod("entries")] - [RubyMethod("to_a")] - public static RubyArray/*!*/ ToArray(CodeContext/*!*/ context, object self) { - RubyArray data = new RubyArray(); - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - data.Add(item); - return null; - })); - - return data; - } - - #endregion - - #region find_all, select, reject - - [RubyMethod("find_all")] - [RubyMethod("select")] - public static RubyArray/*!*/ Select(CodeContext/*!*/ context, object self, BlockParam predicate) { - return Filter(context, self, predicate, true); - } - - [RubyMethod("reject")] - public static RubyArray/*!*/ Reject(CodeContext/*!*/ context, object self, BlockParam predicate) { - return Filter(context, self, predicate, false); - } - - private static RubyArray/*!*/ Filter(CodeContext/*!*/ context, object self, BlockParam predicate, bool acceptingValue) { - RubyArray result = new RubyArray(); - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (predicate == null) throw new LocalJumpError("no block given"); - - object blockResult = _SelectRejectSite.Invoke(context, predicate, item); - if (predicate.BlockJumped(blockResult)) return blockResult; - - // Check if the result is what we expect (use true to select, false to reject) - if (Protocols.IsTrue(blockResult) == acceptingValue) { - result.Add(item); - } - return null; - })); - - return result; - } - - #endregion - - #region grep - - [RubyMethod("grep")] - public static RubyArray Grep(CodeContext/*!*/ context, object self, BlockParam action, object pattern) { - RubyArray result = new RubyArray(); - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (RubySites.CaseEqual(context, pattern, item)) { - if (action != null) { - item = _GrepSite.Invoke(context, action, item); - if (action.BlockJumped(item)) return item; - } - result.Add(item); - } - return null; - })); - - return result; - } - - #endregion - - #region include?, member? - - [RubyMethod("include?")] - [RubyMethod("member?")] - public static bool Contains(CodeContext/*!*/ context, object self, object value) { - bool result = false; - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (Protocols.IsEqual(context, item, value)) { - result = true; - return RuntimeFlowControl.BlockBreak(selfBlock, result); - } - return null; - })); - - return result; - } - - #endregion - - #region inject - - [RubyMethod("inject")] - public static object Inject(CodeContext/*!*/ context, object self, BlockParam operation, [Optional]object initial) { - object result = initial; - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (result == Missing.Value) { - result = item; - return null; - } - - if (operation == null) throw new LocalJumpError("no block given"); - - result = _InjectSite.Invoke(context, operation, result, item); - if (operation.BlockJumped(result)) return result; - - return null; - })); - - return result != Missing.Value ? result : null; - } - - #endregion - - #region max, min - - [RubyMethod("max")] - public static object GetMaximum(CodeContext/*!*/ context, object self, BlockParam comparer) { - return GetExtreme(context, self, comparer, -1/*look for max*/); - } - [RubyMethod("min")] - public static object GetMinimum(CodeContext/*!*/ context, object self, BlockParam comparer) { - return GetExtreme(context, self, comparer, 1/*look for min*/); - } - - private static object GetExtreme(CodeContext/*!*/ context, object self, BlockParam comparer, int comparisonValue) { - bool firstItem = true; - object result = null; - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - // Check for first element - if (firstItem) { - result = item; - firstItem = false; - return null; - } - - int compareResult; - if (comparer != null) { - object blockResult = _MinMaxSite.Invoke(context, comparer, result, item); - if (comparer.BlockJumped(blockResult)) return blockResult; - - if (blockResult == null) - throw RubyExceptions.MakeComparisonError(context, result, item); - - compareResult = Protocols.ConvertCompareResult(context, blockResult); - } else { - compareResult = Protocols.Compare(context, result, item); - } - - // Check if we have found the new minimum or maximum (-1 to select max, 1 to select min) - if (compareResult == comparisonValue) { - result = item; - } - - return null; - })); - return result; - } - #endregion - - #region partition - - [RubyMethod("partition")] - public static RubyArray/*!*/ Partition(CodeContext/*!*/ context, object self, BlockParam predicate) { - RubyArray trueSet = new RubyArray(); - RubyArray falseSet = new RubyArray(); - - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (predicate == null) throw new LocalJumpError("no block given"); - - object result = _PartitionSite.Invoke(context, predicate, item); - if (predicate.BlockJumped(result)) return result; - - if (Protocols.IsTrue(result)) { - trueSet.Add(item); - } else { - falseSet.Add(item); - } - return null; - })); - - RubyArray pair = new RubyArray(2); - pair.Add(trueSet); - pair.Add(falseSet); - return pair; - } - - #endregion - - #region sort, sort_by - - [RubyMethod("sort")] - public static object Sort(CodeContext/*!*/ context, object self, BlockParam keySelector) { - return ArrayOps.SortInPlace(context, ToArray(context, self), keySelector); - } - - [RubyMethod("sort_by")] - public static RubyArray/*!*/ SortBy(CodeContext/*!*/ context, object self, BlockParam keySelector) { - // collect key, value pairs - List> keyValuePairs = new List>(); - - // Collect the key, value pairs - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - if (keySelector == null) throw new LocalJumpError("no block given"); - - object key = _SortBySite.Invoke(context, keySelector, item); - if (keySelector.BlockJumped(key)) return key; - - keyValuePairs.Add(new KeyValuePair(key, item)); - return null; - })); - - // sort by keys - keyValuePairs.Sort(delegate(KeyValuePair x, KeyValuePair y) { - return Protocols.Compare(context, x.Key, y.Key); - }); - - // return values - RubyArray result = new RubyArray(keyValuePairs.Count); - foreach (KeyValuePair pair in keyValuePairs) { - result.Add(pair.Value); - } - - return result; - } - - #endregion - - #region zip - - [RubyMethod("zip")] - public static RubyArray/*!*/ Zip(CodeContext/*!*/ context, object self, BlockParam block, [NotNull]params object[] args) { - RubyArray results = (block == null) ? new RubyArray() : null; - - // Call to_a on each argument - IList[] otherArrays = new IList[args.Length]; - for (int i = 0; i < args.Length; i++) { - otherArrays[i] = Protocols.ConvertToArray(context, args[i]); - } - - int index = 0; - Each(context, self, Proc.Create(context, delegate(BlockParam/*!*/ selfBlock, object item) { - // Collect items - RubyArray array = new RubyArray(otherArrays.Length + 1); - array.Add(item); - foreach (IList otherArray in otherArrays) { - if (index < otherArray.Count) { - array.Add(otherArray[index]); - } else { - array.Add(null); - } - } - - index += 1; - - if (block != null) { - object blockResult = _ZipSite.Invoke(context, block, array); - if (block.BlockJumped(blockResult)) return blockResult; - } else { - results.Add(array); - } - return null; - })); - - return results; - } - - #endregion - - #endregion - - [RubyClass("Enumerator"), Includes(typeof(Enumerable))] + + // TODO: shouldn't be abstract class + [RubyClass("Enumerator"), Includes(typeof(EnumerableModule))] public abstract class Enumerator { private static readonly Dictionary> _siteCache = =================================================================== rename, edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/FileControl/Fcntl.cs;C442741 File: Fcntl.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/FileControl/Fcntl.cs;C442741 (server) 5/20/2008 11:52 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/FileControl/Fcntl.cs;events @@ -13,7 +13,8 @@ * * ***************************************************************************/ -namespace Ruby.Builtins { +namespace Ruby.StandardLibrary.FileControl { + [RubyModule("Fcntl")] public class Fcntl { =================================================================== rename, edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringIO/StringIO.cs;C440068 File: StringIO.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringIO/StringIO.cs;C440068 (server) 5/20/2008 11:46 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringIO/StringIO.cs;events @@ -13,22 +13,16 @@ * * ***************************************************************************/ -using System; -using System.Collections.Generic; using System.IO; -using System.Diagnostics; using System.Runtime.InteropServices; -using System.Text; -using System.Text.RegularExpressions; -using Microsoft.Scripting; using Microsoft.Scripting.Actions; using Microsoft.Scripting.Runtime; -using Microsoft.Scripting.Utils; using Ruby.Runtime; +using Ruby.Builtins; -namespace Ruby.Builtins { +namespace Ruby.StandardLibrary.StringIO { [RubyClass("StringIO")] public class StringIO : RubyIO { =================================================================== rename, edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringScanner/StringScanner.cs;C435539 File: StringScanner.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringScanner/StringScanner.cs;C435539 (server) 5/20/2008 11:42 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/StringScanner/StringScanner.cs;events @@ -13,31 +13,20 @@ * * ***************************************************************************/ -using System; -using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; -using System.IO; using System.Runtime.InteropServices; -using Microsoft.Scripting; -using Microsoft.Scripting.Math; -using Microsoft.Scripting.Actions; +using Microsoft.Scripting.Utils; +using Microsoft.Scripting.Runtime; using Ruby.Runtime; -using System.Diagnostics; -using Microsoft.Scripting.Utils; -using Microsoft.Scripting.Runtime; +using Ruby.Builtins; -// TODO: this should be in the 'strscan' library but we don't have support for that yet -namespace Ruby.Builtins { +namespace Ruby.StandardLibrary.StringScanner { [RubyClass("StringScanner")] - public class StringScanner : IDuplicable -#if !SILVERLIGHT - , ICloneable -#endif - { + public class StringScanner : IDuplicable { #region Private fields @@ -378,18 +367,6 @@ return true; } - #region ICloneable members - - public virtual object Clone() { - StringScanner scanner = new StringScanner(null, _scanString, false); - scanner._previousPosition = _previousPosition; - scanner._currentPosition = _currentPosition; - scanner._foundPosition = _foundPosition; - scanner._lastMatch = _lastMatch; - scanner._lastMatchingGroups = _lastMatchingGroups; - return scanner; - } - #endregion #region IDuplicable Members @@ -447,7 +424,6 @@ _lastMatch = null; _lastMatchingGroups = null; } - #endregion public override string ToString() { // # =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Attributes.cs;C429806 File: Attributes.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Attributes.cs;C429806 (server) 5/20/2008 1:15 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Attributes.cs;events @@ -106,7 +106,23 @@ } } +#if TODO [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)] + public class RubyExtensionAttribute : RubyAttribute { + private readonly Type/*!*/ _extends; + + public Type/*!*/ Extends { + get { return _extends; } + } + + public RubyExtensionAttribute(Type/*!*/ extends) { + ContractUtils.RequiresNotNull(extends, "extends"); + _extends = extends; + } + } +#endif + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)] public class RubyModuleAttribute : RubyAttribute { private readonly string _name; =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyClass.cs;C443395 File: RubyClass.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyClass.cs;C443395 (server) 5/20/2008 11:35 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyClass.cs;events @@ -361,7 +361,7 @@ binder, Ast.Call( typeof(RubyOps).GetMethod("CreateDelegate").MakeGenericMethod(systemType), - Ast.Null(), + rule.Context, Ast.Convert(args.Expressions[blockIndex], typeof(Proc)) ) ); =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;C443395 File: RubyModule.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;C443395 (server) 5/19/2008 4:22 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;events @@ -494,9 +494,15 @@ _singletonClass.ForEachInstanceMethod(inherited, action); } - public void SetMethod(SymbolId name, RubyMemberInfo/*!*/ method) { + public void AddMethod(SymbolId name, RubyMemberInfo/*!*/ method) { ContractUtils.RequiresNotNull(method, "method"); + SetMethodNoEvent(name, method); + _executionContext.MethodAdded(this, name); + } + + internal void SetMethodNoEvent(SymbolId name, RubyMemberInfo/*!*/ method) { + Assert.NotNull(method); EnsureInitialized(); _methods[name] = method; @@ -504,23 +510,32 @@ } public bool RemoveMethod(SymbolId name) { + if (RemoveMethodNoEvent(name)) { + _executionContext.MethodRemoved(this, name); + return true; + } + return false; + } + + internal bool RemoveMethodNoEvent(SymbolId name) { EnsureInitialized(); bool result = _methods.Remove(name); Updated(); return result; } - public void UndefineMethod(SymbolId name) { + internal void UndefineMethodNoEvent(SymbolId name) { EnsureInitialized(); _methods[name] = RubyMethodInfo.UndefinedMethod; Updated(); } - public void UndefineMethod(string/*!*/ name) { - UndefineMethod(SymbolTable.StringToId(name)); + public void UndefineMethod(SymbolId name) { + UndefineMethodNoEvent(name); + _executionContext.MethodUndefined(this, name); } - public void HideMethod(SymbolId name) { + public void HideMethod(SymbolId name) { EnsureInitialized(); _methods[name] = RubyMethodInfo.HiddenMethod; Updated(); @@ -530,15 +545,30 @@ HideMethod(SymbolTable.StringToId(name)); } - public void DefineMethod(string/*!*/ name, int attributes, params Delegate[]/*!*/ overloads) { - SetMethod(SymbolTable.StringToId(name), MakeMethodGroupInfo(attributes, overloads)); + public void UndefineLibraryMethod(string/*!*/ name) { + SymbolId symbol = SymbolTable.StringToId(name); + UndefineMethod(symbol); } + public void DefineLibraryMethod(string/*!*/ name, int attributes, params Delegate[]/*!*/ overloads) { + bool skipEvent = ((RubyMethodAttributes)attributes & RubyMethodAttributes.NoEvent) != 0; + SetLibraryMethod(SymbolTable.StringToId(name), MakeMethodGroupInfo(attributes, overloads), skipEvent); + } + public void DefineRuleGenerator(string/*!*/ name, int attributes, RuleGenerator/*!*/ generator) { Assert.NotNull(generator); + RubyMethodVisibility visibility = (RubyMethodVisibility)(attributes & (int)RubyMethodAttributes.VisibilityMask); + bool skipEvent = ((RubyMethodAttributes)attributes & RubyMethodAttributes.NoEvent) != 0; + SetLibraryMethod(SymbolTable.StringToId(name), new RubyCustomMethodInfo(generator, visibility, this), skipEvent); + } - RubyMethodVisibility visibility = (RubyMethodVisibility)(attributes & (int)RubyMethodAttributes.VisibilityMask); - SetMethod(SymbolTable.StringToId(name), new RubyCustomMethodInfo(generator, visibility, this)); + private void SetLibraryMethod(SymbolId name, RubyMemberInfo/*!*/ method, bool noEvent) { + // trigger event only for non-builtins: + if (noEvent) { + SetMethodNoEvent(name, method); + } else { + AddMethod(name, method); + } } private RubyMethodGroupInfo/*!*/ MakeMethodGroupInfo(int attributes, params Delegate[]/*!*/ overloads) { =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/Declarations/MethodDeclaration.cs;C429806 File: MethodDeclaration.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/Declarations/MethodDeclaration.cs;C429806 (server) 5/19/2008 6:04 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/Declarations/MethodDeclaration.cs;events @@ -134,7 +134,7 @@ SymbolTable.StringToId("#method_" + SymbolTable.IdToString(_name)), typeof(RubyMethodInfo) ); - return Ast.Comma( + return AstFactory.OpCall("MethodDefined", Ast.Assign(methodDefinitionVariable, AstFactory.OpCall("DefineMethod", (_target != null) ? _target.TransformRead(gen) : gen.CurrentSelfVariable, // target @@ -146,8 +146,7 @@ Ast.Constant(_parameters.OptionalCount), Ast.Constant(_parameters.Array != null) // hasParamsArray ) - ), - Ast.Null() + ) ); } } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Parser/Symbols.cs;C438696 File: Symbols.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Parser/Symbols.cs;C438696 (server) 5/19/2008 4:30 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Parser/Symbols.cs;events @@ -27,6 +27,9 @@ public static readonly SymbolId RestArgsLocal = SymbolTable.StringToId("?rest?"); public static readonly SymbolId MethodMissing = SymbolTable.StringToId("method_missing"); + public static readonly SymbolId MethodAdded = SymbolTable.StringToId("method_added"); + public static readonly SymbolId MethodRemoved = SymbolTable.StringToId("method_removed"); + public static readonly SymbolId MethodUndefined = SymbolTable.StringToId("method_undefined"); public static readonly SymbolId RespondTo = SymbolTable.StringToId("respond_to?"); public static readonly SymbolId ToProc = SymbolTable.StringToId("to_proc"); public static readonly SymbolId ToS = SymbolTable.StringToId("to_s"); =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Converter.cs;C443523 File: Converter.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Converter.cs;C443523 (server) 5/20/2008 11:33 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Converter.cs;events @@ -728,7 +728,7 @@ public static object ConvertToDelegate(object value, Type to) { if (value == null) return null; - return RuntimeHelpers.GetDelegate(RubyContext.DefaultContext.CodeContext, value, to); + return RuntimeHelpers.GetDelegate(RubyContext.DefaultContext.EmptyContext, value, to); } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Loader.cs;C443395 File: Loader.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Loader.cs;C443395 (server) 5/20/2008 12:01 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Loader.cs;events @@ -91,20 +91,6 @@ _unfinishedFiles = new Stack(); } - static string[] preloaded_modules = new string[] { - "enumerator", - "enumerator.so", - "fcntl", - "fcntl.so", - "socket", - "socket.so", - "stringio", - "stringio.so", - "strscan", - "strscan.so", - "thread.so" - }; - /// /// Returns true if a Ruby file is successfully loaded, false if it is already loaded. /// @@ -114,10 +100,6 @@ string assemblyName, typeName; string strPath = path.ConvertToString(); - if (Array.IndexOf(preloaded_modules, strPath) >= 0) { - return false; - } - if (TryParseAssemblyName(strPath, out typeName, out assemblyName)) { if (AlreadyLoaded(context, path, flags)) { @@ -313,8 +295,12 @@ // MRI doesn't load file w/o .rb extension: if (IsKnownExtension(extension, knownExtensions)) { return GetSourceUnit(path, extension, false); - } else if (Utils.Array.IndexOf(_LibraryExtensions, extension, StringComparer.OrdinalIgnoreCase) != -1 && Platform.FileExists(path)) { - return new ResolvedFile(path, null); + } else if (Utils.Array.IndexOf(_LibraryExtensions, extension, StringComparer.OrdinalIgnoreCase) != -1) { + if (Platform.FileExists(path)) { + return new ResolvedFile(path, null); + } + } else if (!appendExtensions) { + return GetSourceUnit(path, extension, false); } if (appendExtensions) { =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/MethodVisibility.cs;C429806 File: MethodVisibility.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/MethodVisibility.cs;C429806 (server) 5/20/2008 2:30 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/MethodVisibility.cs;events @@ -38,6 +38,11 @@ /// Singleton = 16, + /// + /// Do not trigger method_added when the method is defined. + /// + NoEvent = 32, + PublicInstance = Public | Instance, PrivateInstance = Private | Instance, ProtectedInstance = Protected | Instance, =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cs;C443523 File: RubyContext.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cs;C443523 (server) 5/20/2008 11:32 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cs;events @@ -47,7 +47,7 @@ internal static RubyContext _Default; private RubyExecutionContext/*!*/ _executionContext; // TODO: should be readonly - private readonly CodeContext/*!*/ _codeContext; + private readonly CodeContext/*!*/ _emptyContext; private RubyEngineOptions/*!*/ _engineOptions; public override EngineOptions Options { @@ -58,9 +58,9 @@ get { return _engineOptions; } } - internal CodeContext/*!*/ CodeContext { + internal CodeContext/*!*/ EmptyContext { get { - return _codeContext; + return _emptyContext; } } @@ -88,10 +88,7 @@ InitializeExecutionContext(); - // TODO: remove, we shouldn't have global static state - Scope scope = new Scope(); - _codeContext = new CodeContext(scope, this); - + _emptyContext = new CodeContext(null, this); Binder = new RubyBinder(manager, this); // TODO: @@ -129,7 +126,7 @@ RubyClass singletonClass = _executionContext.CreateMainSingleton(mainObject); // method_missing: - singletonClass.SetMethod(Symbols.MethodMissing, new RubyMethodGroupInfo(new Delegate[] { + singletonClass.SetMethodNoEvent(Symbols.MethodMissing, new RubyMethodGroupInfo(new Delegate[] { new Function(RubyTopLevelScope.TopMethodMissing) }, RubyMethodVisibility.Private, singletonClass, false)); @@ -212,7 +209,7 @@ for (int i = handlers.Count - 1; i >= 0; --i) { try { - _AtExitSite.Invoke(_codeContext, handlers[i]); + _AtExitSite.Invoke(_emptyContext, handlers[i]); } catch (SystemExit) { // ignored } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyExecutionContext.cs;C443395 File: RubyExecutionContext.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyExecutionContext.cs;C443395 (server) 5/19/2008 3:16 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyExecutionContext.cs;events @@ -28,6 +28,7 @@ using System.Collections.ObjectModel; using System.Text; using System.IO; +using Microsoft.Scripting.Ast; namespace Ruby.Runtime { /// @@ -126,6 +127,10 @@ private InstanceDataDictionary/*!*/ _instanceDataDict = new InstanceDataDictionary(); private RubyInstanceData/*!*/ _nilInstanceData = new RubyInstanceData(RubyUtils.NilObjectId); + private DynamicSite _methodAddedCallbackSite; + private DynamicSite _methodRemovedCallbackSite; + private DynamicSite _methodUndefinedCallbackSite; + public Exception CurrentException { get { return _currentException; } set { _currentException = value; } @@ -196,7 +201,7 @@ public EqualityComparer EqualityComparer { get { if (_equalityComparer == null) { - Interlocked.CompareExchange(ref _equalityComparer, new EqualityComparer(_context.CodeContext), null); + Interlocked.CompareExchange(ref _equalityComparer, new EqualityComparer(_context.EmptyContext), null); } return _equalityComparer; } @@ -1213,5 +1218,50 @@ } #endregion + + #region Callbacks + + // Ruby 1.8: called after method is added, except for alias_method which calls it before + // Ruby 1.9: called before method is added + internal void MethodAdded(RubyModule/*!*/ module, SymbolId name) { + // not called on singleton classes: + if (!module.IsSingletonClass) { + if (!_methodAddedCallbackSite.IsInitialized) { + _methodAddedCallbackSite.EnsureInitialized(InvokeMemberAction.Make(_context.Binder, Symbols.MethodAdded, + new CallSignature(ArgumentKind.Instance, ArgumentKind.Simple) + )); + } + + _methodAddedCallbackSite.Invoke(_context.EmptyContext, module, name); + } + } + + internal void MethodRemoved(RubyModule/*!*/ module, SymbolId name) { + // not called on singleton classes: + if (!module.IsSingletonClass) { + if (!_methodRemovedCallbackSite.IsInitialized) { + _methodRemovedCallbackSite.EnsureInitialized(InvokeMemberAction.Make(_context.Binder, Symbols.MethodRemoved, + new CallSignature(ArgumentKind.Instance, ArgumentKind.Simple) + )); + } + + _methodRemovedCallbackSite.Invoke(_context.EmptyContext, module, name); + } + } + + internal void MethodUndefined(RubyModule/*!*/ module, SymbolId name) { + // not called on singleton classes: + if (!module.IsSingletonClass) { + if (!_methodUndefinedCallbackSite.IsInitialized) { + _methodUndefinedCallbackSite.EnsureInitialized(InvokeMemberAction.Make(_context.Binder, Symbols.MethodUndefined, + new CallSignature(ArgumentKind.Instance, ArgumentKind.Simple) + )); + } + + _methodUndefinedCallbackSite.Invoke(_context.EmptyContext, module, name); + } + } + + #endregion } } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;C444052 File: RubyOps.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;C444052 (server) 5/19/2008 4:34 PM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;events @@ -318,7 +318,9 @@ RubyMethodInfo method = new RubyMethodInfo(clrMethod, scope, owner, name, mandatory, optional, hasParamsArray, scope.Visibility); - owner.SetMethod(name, method); + // Do not trigger the add-method event just yet, we need to assign the result into closure before executing any user code. + // If the method being defined is "method_added" itself, we would call that method before the info gets assigned to the closure. + owner.SetMethodNoEvent(name, method); // expose RubyMethod in the scope (the method is bound to the main singleton instance): if (owner.GlobalScope != null) { @@ -328,15 +330,21 @@ return method; } + // emitted: + public static object MethodDefined(RubyMethodInfo/*!*/ method) { + method.DeclaringModule.ExecutionContext.MethodAdded(method.DeclaringModule, method.DefinitionName); + return null; + } + // emitted (AliasStatement): public static void AliasMethod(CodeContext/*!*/ context, SymbolId newName, SymbolId oldName) { - RubyScope scope = (RubyScope)context; + RubyScope scope = RubyUtils.GetScope(context); // lexical lookup: RubyModule innerMostModule = scope.ExecutionContext.GetInnerMostModule(scope); RubyMemberInfo method = innerMostModule.ResolveMethod(oldName); if (method != null) { - innerMostModule.SetMethod(newName, method); + innerMostModule.AddMethod(newName, method); return; } @@ -345,7 +353,7 @@ if (scope.Top.Module != null) { method = scope.Top.Module.ResolveMethod(oldName); if (method != null) { - innerMostModule.SetMethod(newName, method); + innerMostModule.AddMethod(newName, method); return; } } @@ -353,7 +361,7 @@ // Object and its ancestors: method = scope.ExecutionContext.ObjectClass.ResolveMethod(oldName); if (method != null) { - innerMostModule.SetMethod(newName, method); + innerMostModule.AddMethod(newName, method); return; } @@ -1226,11 +1234,11 @@ /// Hooks up an event to call a proc at hand. /// EventInfo is passed in as object since it is an internal type. /// - public static object HookupEvent(EventInfo/*!*/ eventInfo, object target, Proc/*!*/ proc) { + public static object HookupEvent(CodeContext/*!*/ context, EventInfo/*!*/ eventInfo, object target, Proc/*!*/ proc) { Assert.NotNull(eventInfo, proc); BlockParam bp = BlockParam.CreateForProcCall(proc); - Delegate eh = RuntimeHelpers.GetDelegate(RubyContext.DefaultContext.CodeContext, bp, eventInfo.EventHandlerType); + Delegate eh = RuntimeHelpers.GetDelegate(context, bp, eventInfo.EventHandlerType); MethodInfo mi = eventInfo.GetAddMethod(); mi.Invoke(target, new object[] { eh }); @@ -1238,12 +1246,14 @@ return null; } - public static Delegate/*!*/ CreateDelegate(object target, Proc/*!*/ proc) { + // emitted: + public static Delegate/*!*/ CreateDelegate(CodeContext/*!*/ context, Proc/*!*/ proc) { Assert.NotNull(proc); BlockParam bp = BlockParam.CreateForProcCall(proc); - return RuntimeHelpers.GetDelegate(RubyContext.DefaultContext.CodeContext, bp, typeof(T)); + return RuntimeHelpers.GetDelegate(context, bp, typeof(T)); } + // emitted: public static void X(string marker) { } } =================================================================== edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyEventInfo.cs;C428685 File: RubyEventInfo.cs =================================================================== --- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyEventInfo.cs;C428685 (server) 5/20/2008 11:35 AM +++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyEventInfo.cs;events @@ -45,6 +45,7 @@ binder, Ast.Call( typeof(RubyOps).GetMethod("HookupEvent"), + rule.Context, Ast.Convert(Ast.RuntimeConstant(_eventInfo), typeof(EventInfo)), args.Expressions[0], Ast.Convert(args.Expressions[blockIndex], typeof(Proc)) =================================================================== edit: $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;C443395 File: Initializer.Generated.cs =================================================================== --- $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;C443395 (server) 5/20/2008 1:57 PM +++ Shelved Change: $/Merlin_External/Languages/IronRuby/yaml/IronRuby.Libraries.Yaml/Initializer.Generated.cs;events @@ -24,7 +24,7 @@ private void LoadMicrosoft__Scripting__None_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlNilOps.ToYaml), }); @@ -32,7 +32,7 @@ private void LoadMicrosoft__Scripting__SymbolId_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlSymbolOps.ToYaml), }); @@ -40,11 +40,11 @@ private void LoadRuby__Builtins__FalseClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("taguri", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlFalseOps.TagUri), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlFalseOps.ToYaml), }); @@ -52,7 +52,7 @@ private void LoadRuby__Builtins__Hash_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlHashOps.ToYamlNode), }); @@ -60,15 +60,15 @@ private void LoadRuby__Builtins__MutableString_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("is_binary_data?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("is_binary_data?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlStringOps.IsBinaryData), }); - module.DefineMethod("is_complex_yaml?", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("is_complex_yaml?", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlStringOps.IsComplexYaml), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlStringOps.ToYamlNode), }); @@ -76,7 +76,7 @@ private void LoadRuby__Builtins__Numeric_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlNumericOps.ToYaml), }); @@ -84,7 +84,7 @@ private void LoadRuby__Builtins__Range_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlRangeOps.ToYaml), }); @@ -92,7 +92,7 @@ private void LoadRuby__Builtins__RubyArray_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlArrayOps.ToYamlNode), }); @@ -100,7 +100,7 @@ private void LoadRuby__Builtins__RubyClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlClassOps.ToYamlNode), }); @@ -108,7 +108,7 @@ private void LoadRuby__Builtins__RubyRegex_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlRegexpOps.ToYaml), }); @@ -116,11 +116,11 @@ private void LoadRuby__Builtins__RubyStruct_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("taguri", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlStructOps.TagUri), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlStructOps.ToYamlNode), }); @@ -128,11 +128,11 @@ private void LoadRuby__Builtins__TrueClass_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("taguri", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlTrueOps.TagUri), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlTrueOps.ToYaml), }); @@ -140,11 +140,11 @@ private void LoadSystem__Exception_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("taguri", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlExceptionOps.TagUri), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlExceptionOps.ToYamlNode), }); @@ -152,23 +152,23 @@ private void LoadSystem__Object_Instance(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("taguri", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("taguri", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlObjectOps.TagUri), }); - module.DefineMethod("to_yaml", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlObjectOps.ToYaml), }); - module.DefineMethod("to_yaml_node", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_node", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlObjectOps.ToYamlProperties), }); - module.DefineMethod("to_yaml_properties", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_properties", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlObjectOps.ToYamlProperties), }); - module.DefineMethod("to_yaml_style", 0x9, new System.Delegate[] { + module.DefineLibraryMethod("to_yaml_style", 0x9, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.YamlObjectOps.ToYamlStyle), }); @@ -176,43 +176,43 @@ private void LoadYAML_Class(Ruby.Builtins.RubyModule/*!*/ module) { - module.DefineMethod("dump", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("dump", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.Dump), }); - module.DefineMethod("dump_all", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("dump_all", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.DumpAll), }); - module.DefineMethod("dump_stream", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("dump_stream", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.DumpStream), }); - module.DefineMethod("each_document", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("each_document", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.EachDocument), }); - module.DefineMethod("load", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("load", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.Load), }); - module.DefineMethod("load_documents", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("load_documents", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.EachDocument), }); - module.DefineMethod("load_file", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("load_file", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.LoadFile), }); - module.DefineMethod("load_stream", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("load_stream", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.LoadStream), }); - module.DefineMethod("quick_emit_node", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("quick_emit_node", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.QuickEmitNode), }); - module.DefineMethod("tagurize", 0x12, new System.Delegate[] { + module.DefineLibraryMethod("tagurize", 0x12, new System.Delegate[] { new Microsoft.Scripting.Utils.Function(Ruby.StandardLibrary.Yaml.RubyYaml.Tagurize), }); ===================================================================