[MacRuby-devel] Bug: NSValueTransformer receivers NSCFNumber, not fixnum
Laurent Sansonetti
lsansonetti at apple.com
Fri Feb 13 17:00:21 PST 2009
Hi Brian,
This is currently a well-known limitation of MacRuby, we will address
it in the future. In the meantime, you might have to work-around it by
doing this extra check.
Laurent
On Feb 12, 2009, at 7:03 AM, Brian Marick wrote:
> Is this a bug? I don't see anything quite like it in Trac.
>
> I have a binding to a button's state property. Here's the binding:
>
> @comboBox.bind 'enabled',
> toObject: @button,
> withKeyPath: 'state',
> options: {
> NSValueTransformerBindingOption =>
> OffStateMeansTrueTransformer.alloc.init
> }
>
> At the point the binding is made, the state of the button is a
> fixnum 0.
>
> The value transformer is immediately called to set the starting
> value. Here's the transformedValue code:
>
> def transformedValue(state)
> puts "state -> bool transforming #{state.inspect}"
> # prints #<NSCFNumber:0x1022180>
> # state.intValue is 0
>
> Because of this, I have to cast the state before making comparisons:
>
> case state.intValue
> when NSOffState then true
> when NSOnState then false
> else
> raise "The value to transform should be either NSOffState or
> NSOnState."
> end
>
>
> If this is a bug, I'll write a testcase.
>
> -----
> Brian Marick, independent consultant
> Mostly on agile methods with a testing slant
> www.exampler.com, www.exampler.com/blog, www.twitter.com/marick
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
More information about the MacRuby-devel
mailing list