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

Davy Brion ralinx at davybrion.com
Tue Sep 7 08:50:55 EDT 2010


Hey Brian,

i saw that thread, but didn't really see a definitive answer as to how to
work around it until it's implemented (though i might've missed it), which
is why i thought i'd raise the question again :)

On Tue, Sep 7, 2010 at 2:47 PM, Brian Genisio <briangenisio at gmail.com>wrote:

> 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
>>
>>
>
> _______________________________________________
> 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/eced8233/attachment.html>


More information about the Ironruby-core mailing list