What is the state of support for rails 2.2?

Hello,
I am trying to help get the project Adva-CMS (http://adva-cms.org/) up
to
date and ready for Rails 2.2.

Adva relies heavily on Engines and uses a fork that Sven F. made to
get
timestamped migrations to work.

I see that the incompatibility with rails 2.2 has been addressed on the
edge
branch on github:

My question is, what state is edge Engines in? and is the timestamped
migrations issue fixed in edge Engines?

I would like to re-integrate the base Engines repo into Adva-CMS if I
could,
but if it is not feasible, I could patch Sven’s fork and keep using
that.

Please advise

The simplest way to check the state of edge engines is to check out
the edge branch and run the tests:

$ git clone git://github.com/lazyatom/engines.git
$ git checkout edge
$ rake test RAILS=edge

At the moment, there seems to be an issue with the templating - one of
the ActionMailer unit tests is failing, and a bunch of functional
tests are also failing. The functional failures are due to the removal
of a method we were relying on to determine what was being rendered
(‘first_render’). I suspect that these errors might be hiding another
minor template error.

The branch which contains Samuel W.’ patch for timestamped
migrations (‘use_rails_own_migration_mechanism’) isn’t merged with
edge or master yet, although I expect to merge it soon (potentially
this afternoon).

If you have any problems running the tests, let me know. Hope that
helps!

James

well… I get one unit test error and 6 functional errors.
The unit test error is is in ./test/unit/action_mailer_test.rb:34:in

`test_should_be_able_to_create_mails_from_plugin’

ActionView::MissingTemplate: Missing template
plugin_mail/mail_from_plugin.erb

The functional test errors are all the same:

ActionView::TemplateError: undefined method `first_render’ for

#ActionView::Base:0x236b670

Here is a pastie of the full test results http://pastie.org/309061

If anyone has any idea about these that would be great… in the mean
time,
I have been trying to track them down.

Thanks all,

Ned

I have a question… the first
error, `test_should_be_able_to_create_mails_from_plugin’, seems to be
cause
by there being a missing template in
/test/plugins/test_plugin_mailing/app/views/plugin_mail/.
the error is:
ActionView::MissingTemplate: Missing template
plugin_mail/mail_from_plugin.erb in view path

What confuses me, is that there is a
standard mail_from_plugin.text.plain.erb template.

I copied this template into a file called mail_from_plugin.html.erb and
the
same test passed.

Does anyone have any idea why this is? Also I am not sure if there is a
reason that just the plain text template is in there and not the
html.erb
template. Is this test testing particularly for the plain text template?

Ned

The second series of errors were all related to #first_render being
removed
from ActionView::Base.
i noticed a ticket was opened in lighthouse about this so I responded
there:
http://engines.lighthouseapp.com/projects/10178-engines-plugin/tickets/41-view-tests-shouldnt-rely-on-first_render#ticket-41-2

however, I thought I would continue this conversation here as well.

Hi, I tried globally changing the <%= self.first_render %> to <%=
self.instance_variable_get(:@_first_render) %>

this seems to work pushing the errors to failures:

<“namespace/app_and_plugin/a_view (from app)”> expected but was
<“namespace/app_and_plugin/a_view.html.erb (from app)”>

etc.

This seems acceptable if the test condition was just changed from
assert_response_body ‘alpha_plugin/a_view’ to assert_response_body
‘alpha_plugin/a_view.html.erb’

would that still satisfy the test? are the file extensions a problem?

The test was testing the ‘default’ behaviour, but the template
overspecified that the email should be text/plain. The simplest way to
‘fix’ this test was to just rename the default template to ‘.erb’,
rather than ‘.text.plain.erb’, as this seems to be how Rails 2.2
expects ActionMailer to be used.

So… we’re now passing all tests against Edge Rails! In other words,
the engines plugin should now be compatible with Rails 2.2 (seems like
it always was, but the tests were a bit 2.1-specific).

Thanks again for your investigations here,

James

I just resolved this bug, by implementing a specific mechanism for
determining the path of the template that was rendered. This is
cleaner than relying on ActionView’s internal state, and should
hopefully be more future-proof!

Now to track down that action mailer issue…

Thanks for your help with this!

James

Great news - thanks for this James, Ned, et al :slight_smile:

2008/11/9 James A. [email protected]:

Awesome! Thanks a lot.

Wow!
This is really great news to wake up to first thing on monday! Great
news
and well done!

Ned