Hear, hear!

jeremy

On Tue, Sep 15, 2009 at 1:49 PM, Adam Milligan
<[email protected]> wrote:
>
> This comment example is invalid ERB, and is relatively clearly
> documented as such.  You can't reasonably expect language providers to
> support behavior that they've explicitly declared as invalid, and you
> can't reasonably expect framework providers to stick with a language
> version because you've chosen to depend on a particular incarnation of
> undefined behavior.  This is directly akin to depending on the order
> of the contents of a hash, or referencing values in freed memory.
> There are reasonable reasons to want Rails 3.0 to work on Ruby 1.8.6,
> but this isn't one of them.
>
> Incidentally, the behavior in at least some versions of 1.8.6 is
> consistent with 1.8.7.
>
> On Sep 13, 5:23 am, Will Bryant <[email protected]> wrote:
>> On Wed, Sep 9, 2009 at 7:17 PM, Yehuda Katz <[email protected]> wrote:
>> > Finally, Ruby 1.8.7 does not appear to provide backward-compatibility
>> > issues. For instance, WePlay, which has a significant, complex app, had a
>> > lot of trouble porting their app to Ruby 1.9, but basically zero problems
>> > with Ruby 1.8.7. The few issues that people did have were rapidly and
>> > diligently resolved by the Ruby team. Do you have any reason to believe
>> > otherwise?
>>
>> There is that ERB comment issue, whereby it turns out (according to
>> the official documentation) that we were not actually allowed to write
>> things like:
>>
>>   <% elsif customer.oddball? # we get lots of these guys %>
>>
>> which is pretty widely used and worked perfectly just fine most or all
>> of the way through the 1.8.6 series but doesn't on 1.8.7 
>> (seehttp://www.ruby-forum.com/topic/154835andhttps://rails.lighthouseapp.com/projects/8994/tickets/955-ruby-187-an...).
>>
>> This is a really nasty one because, really, there's no reason why this
>> shouldn't be made to work, and when it stops working, it doesn't
>> break.... you just lose a whole big chunk of output from your views.
>> A bit silent and nasty for many of us.
>>
>> The Ruby guys don't seem to be inclined to change it back, so unless
>> one already has full test coverage for each and every case/path in
>> every one of your views files, this is something important to scan for
>> when upgrading to 1.8.7.
>>
>> You could get an approximate test with just grep if you're careful
>> about the conditions (for example, <%# this is a legitimate ERB
>> comment %> but <% # this isn't %>, and be careful about multiple
>> blocks on one line), so if you are moving the whole team to 1.8.7 and
>> so just need to do a once-over pass, that's probably fine.
>>
>> But that will tend to produce false alarms, for example if you have
>> other uses of hashes on the same line, such as <% s =
>> '/test.html#anchor' %>, so it's not much help if you want an automated
>> test to run in continuous integration or need to audit a large number
>> of views.  I'm knocking up a bit of code to do it properly using
>> ruby-parser, if people are interested I'll sort out a good way to
>> package and release it.
> >
>

--~--~---------~--~----~------------~-------~--~----~
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