thumbs up to this idea +1

Sent from my iPhone

On 24.04.2010, at 13:38, Jeff Casimir <[email protected]> wrote:

> Morning All,
>
> I've been thinking about extensions on and off for the past few
> months.  I really think installing extensions is too hard, here are
> three ideas to ease the process.  These assume that the work Jim has
> done to gem-ify extensions is good and that all extensions should be
> distributed as gems.
>
> Sneaky Asset Management =====
>
> I want to get rid of radiant:extensions:xyz:update and the Rails
> router does most of the hard work.  Let's establish that assets for
> extensions are held in a place like "/public/extensions/xyz/assets/".
> We'd need a route and controller that listened for that route, then
> just pull the assets from within the gem (stored in some similarly
> structured folder within the library).
>
> Of course a few users will want to customize the assets.  So we need a
> radiant:extensions:xyz:unpack_assets (basically the same as the old
> "update") that copies the assets to the same place in
> /public/extensions/xyz/assets.  The Rails router will pickup these
> static files with a higher precedence than the asset-finding-in-gems
> route, so there is nothing complicated.
>
> Why do this?  Reducing the steps and complexity for the installation.
> Drop the gem in, require it, and you might be ready to go.  It'd be
> almost exactly like installing a normal gem for use in a Rails app.
>
> Explicit Migrations ======
>
> Migrations, I think, need to go the other way.  Rather than being
> hidden away they should be in plain view.  I think there should be a
> generator that create the migration files and puts them in a normal
> place, like /db/migrate/9318938_radiant_xyz_add_my_secret_table.
>
> Migrations, I find, are the area most in need of debugging when issues
> arise with extensions.  If we're moving towards the idea of Rails 3
> embeddable apps, I would want to have all my migrations in one place,
> clearly organized, where I can understand what's going on.
>
> Interactive Install Manager =====
>
> Here's the install process I'd like to see:
>
>>> gem install radiant-xyz-extension
>>> rake radiant:setup_extensions
>
> Welcome to the RadiantCMS Extension Management System.
> The following extensions are available in the system:
>
> 1. XYZ [inactive]
> 2. YAJ [inactive]
> 3. LDU [inactive]
> 4 OLD [active]
>
> Which extension would you like to activate / deactivate?  (q to quit)
>
>>> 2
>
> To activate extension YAJ I need to require the gem in your
> /config/environment.rb, is that ok? (Y or N)
>
>>> Y
>
> Gem "YAJ" is now required.
>
> The extension also needs to make changes to your database with
> migrations, would you like to generate those now? (Y or N)
>
>>> Y
>
> Generating migrations for extension "YAJ"...
> /db/migrate/91830_radiant_yaj_create_table_for_yaj
> /db/migrate/91830_radiant_yaj_modify_pages_for_yaj
>
> Migrations generated. Would you like to RUN the migrations now? (Y  
> or N)
>
>>> Y
>
> (blah blah migration output)
>
> Extension YAJ has been setup.
>
> The following extensions are available in the system:
>
> 1. XYZ [inactive]
> 2. YAJ [active]
> 3. LDU [inactive]
> 4 OLD [active]
>
> Which extension would you like to activate / deactivate?  (q to quit)
>
>
> ==============
>
> That's my brainstorm for this morning.  FYI, in my head I modeled this
> install process after the EXCELLENT experience of installing Phusion
> Passenger.
>
> - Jeff
>
> ---
> Jeff Casimir
> Jumpstart Lab by Casimir Creative, LLC
> http://jumpstartlab.com
> @jumpstartlab on twitter
> _______________________________________________
> Radiant mailing list
> Post: [email protected]
> Search: http://radiantcms.org/mailing-list/search/
> List Site: http://lists.radiantcms.org/mailman/listinfo/radiant
> Radiant: http://radiantcms.org
> Extensions: http://ext.radiantcms.org
_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
List Site: http://lists.radiantcms.org/mailman/listinfo/radiant
Radiant: http://radiantcms.org
Extensions: http://ext.radiantcms.org

Reply via email to