using System; using System.Runtime.CompilerServices; using IronRuby.Builtins; using IronRuby.Runtime; using IronRuby.Runtime.Calls; using Microsoft.Scripting; using Microsoft.Scripting.Runtime; namespace Test { using RubyIOReadCallSite = CallSite>; [RubyModule("Nrk")] public static class Nrk { [RubyMethod("read")] public static MutableString Read(RubyIO/*!*/ source) { RubyCallSignature callSignature = RubyCallSignature.Simple(0); RubyCallAction callAction = RubyCallAction.MakeShared("read", callSignature); var readCallSite = RubyIOReadCallSite.Create(callAction); return readCallSite.Target(readCallSite, source); } } }