What are your thoughts on Engines?

Love em? Hate em? Think there are better ways?

I am looking at getting involved with an open source Rails project
that is currently built using Rails Engines… and I am hesitant…
mostly because I don’t know enough about them and DHH doesn’t like em.

What are your thoughts? Do you use them in your projects? Would you
use an open-source if it was/used a Rails Engine?

On Fri, Jan 25, 2008 at 03:30:01AM -0800, mel ram wrote:

Love em? Hate em? Think there are better ways?

Yes. Yes. Yes.

I am looking at getting involved with an open source Rails project
that is currently built using Rails Engines… and I am hesitant…
mostly because I don’t know enough about them and DHH doesn’t like em.

DHH writes “opinionated” software. His domain is loudthinking.org. He
gave
a talk to a room full of professionals that included a slide with
nothing
but the words “Fuck you.” While Rails is great software, and saves me a
lot
of time, I feel no obligation to agree with or follow all of its
(primary)
author’s opinions. Don’t let DHH’s loudness sway you because he’s some
kind
of authority; take his opinions with a grain of salt and come to your
own
conclusions.

What are your thoughts? Do you use them in your projects? Would you
use an open-source if it was/used a Rails Engine?

Engines are a terrible way to design an application. They are a great
way
to design a chunk of Rails (i.e. full MVC, not just library)
functionality
to be used in multiple apps. Note that pre-2.0 engines had a lot of
hacky
nastiness around them. With the way Rails 2.0.x does things, engines are
much cleaner.

–Greg

Thanks greg!

“Engines are a terrible way to design an application. They are a great
way to design a chunk of Rails (i.e. full MVC, not just library)
functionality to be used in multiple apps.”

What do you mean by this? Can you give examples of “a chuck on Rails
functionality to be used in multiple apps” that would be better as a
Rails engine and not a standard plugin?

On Jan 25, 6:09 am, Gregory S. [email protected]

On Fri, Jan 25, 2008 at 10:22:40AM -0800, mel ram wrote:

Thanks greg!

“Engines are a terrible way to design an application. They are a great
way to design a chunk of Rails (i.e. full MVC, not just library)
functionality to be used in multiple apps.”

What do you mean by this? Can you give examples of “a chuck on Rails
functionality to be used in multiple apps” that would be better as a
Rails engine and not a standard plugin?

Consider a product that you’ll be selling to multiple clients. You sell
customization of the product, and maybe a combination of products, for
your
client’s site. So you put your products into engines, and you can put
them
together as necessary into a single Rails app, with extra customization
in
the main app, and sell it. You can also sell upgrades to the individual
pieces, since they are in separate plugins (with modifications as
necessary
to the customization code, of course), but they can be full Rails MVC
stacks.

–Greg