13
Vote

Allow marking Ruby methods as data members

description

. I have noticed that if I define a property in Ruby using attr_accessor, it is presented to C# as a property. If, on the other hand, I create the exact same code manually, it comes back as a method.
 
For example, take this code:
 
var engine = IronRuby.Ruby.CreateEngine();
string script = @"
  class Test
    attr_accessor :automatic

    def manual
      @manual
    end

    def manual=(val)
      @manual = val
    end

    def initialize
      @automatic = ""testing""
      @manual = ""testing""
    end
  end

  Test.new
";
var testObject = engine.Execute(script);

var automatic = testObject.automatic;
var manual = testObject.manual;
 
When you look at the C# automatic variable, the value is a string of "testing". If you look at the C# manual variable, it is type IronRuby.Builtins.RubyMethod.
 
Ultimately, I want to create my own properties in Ruby that can be used in C#, but I can't seem to make them be visible as properties like attr_accessor does.

comments