[Ironruby-core] accessor methods and property syntax in .NET

Brian Genisio briangenisio at gmail.com
Tue Sep 7 08:47:00 EDT 2010


Actually, we discussed this about a month ago:
http://rubyforge.org/pipermail/ironruby-core/2010-July/007154.html

<http://rubyforge.org/pipermail/ironruby-core/2010-July/007154.html>The
outcome was that a feature request was added to allow for C# properties to
be defined using getter/setter in ruby.  I was going to look at implementing
it... got into a bit, and had a baby... Haven't looked at it since.

B

On Tue, Sep 7, 2010 at 5:55 AM, Davy Brion <ralinx at davybrion.com> wrote:

> your solution does however work for the assignment accessor... in fact, you
> can do something like this:
>
> class Foo
>   attr_reader :bar
>
>
>   def bar=(val)
>     # do more stuff here for example
>     @bar = val
>   end
>
> end
>
> and then you can do the following in C#:
>
> var value = myObject.bar;
> myObject.bar = someOtherValue;
>
> for my specific scenario, i think i can actually get by with just
> overriding the assignment accessor but the thing i'm wondering is: is the
> current behavior actually a bug? and will this behavior be preserved in
> future releases?
>
>
> On Tue, Sep 7, 2010 at 11:13 AM, Davy Brion <ralinx at davybrion.com> wrote:
>
>> if i do that, calling bar as a property like this:
>>
>> var value = myObject.bar;
>>
>> leads to 'value' being an instance of IronRuby.BuiltIns.RubyMethod, and
>> not the value that is in the @bar instance field
>>
>> which
>>
>> i'm using 1.1 btw, not sure how this would behave on 1.0
>>
>> from looking at the IronRuby source code, it looks like i need to find a
>> way to change the RubyMemberInfo for a given accessor method to
>> RubyAttributeReaderInfo or RubyAttributeWriterInfo
>>
>>
>> On Tue, Sep 7, 2010 at 11:01 AM, Ivan Porto Carerro <ivan at flanders.co.nz>wrote:
>>
>>> You can just define them as attr_accessors and then implement the methods
>>>
>>> class Foo
>>>
>>>   attr_accessor :bar, :baz
>>>
>>>   def bar=(val)
>>>     # do more stuff here for example
>>>     @bar = val
>>>   end
>>>
>>>   def bar
>>>     @bar
>>>   end
>>>
>>> end
>>>
>>> On Tue, Sep 7, 2010 at 10:36 AM, Davy Brion <ralinx at davybrion.com>wrote:
>>>
>>>> Hi all,
>>>>
>>>> IronRuby has a nice trick where attributes defined by attr_reader,
>>>> attr_accessor and attr_writer are usable as properties from C#... i was just
>>>> wondering: is it possible to use the same trick in our own ruby code?
>>>>
>>>> or can anyone just point me in the right direction as to where in the
>>>> IronRuby source code i could find where this is being done?
>>>>
>>>> I have accessor methods that really need to do something specific and
>>>> ideally, i'd like them be usable as properties in .NET since it leads to a
>>>> much nicer syntax in C#
>>>>
>>>> brs,
>>>> Davy
>>>>
>>>> _______________________________________________
>>>> Ironruby-core mailing list
>>>> Ironruby-core at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Ironruby-core mailing list
>>> Ironruby-core at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>>
>>>
>>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100907/d7430835/attachment-0001.html>


More information about the Ironruby-core mailing list