Cool. I'll write something up

Sent from my iPhone

On 16 Feb 2011, at 10:33, Prem Sichanugrist <[email protected]> wrote:

> Nice find. Yes, I think we should check that :cover? is defined then use it 
> on 1.9.
> 
> Can you make the patch and create a ticket on Lighthouse? I'll review the 
> patch and ask someone to get it in.
> 
> Prem
> 
> On 16 ?.?. 2554, at 17:26, Frederick Cheung wrote:
> 
>> I found out today that Range#include? behaves differently on 1.9 than on 1.8 
>> ( http://rhnh.net/2009/08/03/range-include-in-ruby-1-9 )
>> In order to deal with various edge cases, instead of just checking whether 
>> range.first <= value <= range.last, in ruby 1.9 include? steps through all 
>> the values in the range, checking for equality.
>> 
>> This is of course a lot slower - in my case, checking a date for inclusion 
>> in a 100 year Date range (via a validates_inclusion_of) went from 
>> instantaneous to over 100ms. I think this sort of thing is probably pretty 
>> common in rails apps and that the edge cases this change was designed to 
>> address are extremely unlikely to crop up with validates_inclusion_of - 
>> people are almost always going to be validating plain old strings, dates etc.
>> 
>> The old include? logic is available as cover? in ruby 1.9. What should (if 
>> anything) rails do? Options include
>> - change validates_inclusion_of to use cover? for ranges on ruby 1.9
>> - add an option to validates_inclusion_of to use cover? instead of include
>> - add a new validation
>> 
>> Personally, in the interest of squashing hidden gotchas when migrating to 
>> 1.9, I'd be inclined to go for the first of the above options (and maybe let 
>> people force the use of include? if they need it for one of these special 
>> edge cases).
>> 
>> Fred
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/rubyonrails-core?hl=en.
>> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-core?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to