Yeah, that might work, but eeewwww! :)

Wouldn't it be better to modify Radiant a bit to have it be clean?   
It's really a fairly non-invasive change to Radiant.

On Jun 2, 2007, at 11:38 AM, Sean Cribbs wrote:

> Yeah, that's why I was saying perhaps a parse-and-eval method might  
> work:
>
> 1) Load the "#{RAILS_ROOT}/config/routes.rb" file as text.
> 2) Find and strip out the lines that contain the beginning and end of
> the block.
> 3) eval the file in the local context of the define_routes block.
>
> Not elegant, I know, but effective.
>
> Sean
>
> Matt Parrish wrote:
>> Yes, that's basically what my extension is doing.  But it does
>> require a slight change to config/routes.rb, because vendor/radiant/
>> config/routes.rb is where the ActionController::Routing::Routes.draw
>> { |map| } block is.  And I don't think we can have that there and in
>> config/routes.rb
>>
>> Matt Parrish
>> http://www.pearware.org
>>
>>
>> On Jun 2, 2007, at 11:00 AM, Sean Cribbs wrote:
>>
>>
>>> Here's another option, one you may have considered already.
>>>
>>> Extension routes are loaded before the Radiant routes and all of
>>> this is
>>> taken care of by Radiant::Initializer.  You could either extend
>>> Radiant::Initializer or use the define_routes block in the
>>> extension to
>>> load the primary routes.rb.  I'm not sure whether you should parse,
>>> process, and eval it or some other method, but it is conceivably
>>> possible.  I think it has to do with generators or rake tasks, but
>>> Radiant does something similar to redefine some stock Rails stuff.
>>>
>>> Sean
>>>
>>> Matt Parrish wrote:
>>>
>>>> Okay, cool.  As for the routes, my extension currently has the user
>>>> modify config/routes.rb a bit since /vendor/radiant/config/ 
>>>> routes.rb
>>>> calls the Rails route initialization.  If we could change it so  
>>>> that
>>>> Radiant hooks into that process differently, then the developer can
>>>> write config/routes.rb as is done traditionally.  It doesn't look
>>>> like the Rails guys have given an easy way to hook into that  
>>>> process,
>>>> although it could easily be a one line call to Radiant to load its
>>>> routes at the end of the ActionController::Routing::Routes.draw { |
>>>> map| } block.  However Radiant's /vendor/radiant/config/routes.rb
>>>> would need to change slightly to be like how extensions define
>>>> routes.
>>>>
>>>> Here's the change I see.  Instead of how Radiant currently does
>>>> config/routes.rb and vendor/radiant/config/routes.rb as
>>>>
>>>> load File.join(RADIANT_ROOT, "config", "routes.rb")
>>>>
>>>> and
>>>>
>>>> ActionController::Routing::Routes.draw do |map|
>>>>
>>>>    # Admin Routes
>>>>    map.with_options(:controller => 'admin/welcome') do |welcome|
>>>>
>>>>    ...
>>>>
>>>> end
>>>>
>>>>
>>>> respectively.  It could look like this:
>>>>
>>>> ActionController::Routing::Routes.draw do |map|
>>>>
>>>>    # Place for Rails Routes
>>>>    map.with_options(:controller => 'admin/welcome') do |welcome|
>>>>    ...
>>>>
>>>>    RadiantRoutes.define_routes(map)
>>>> end
>>>>
>>>> and
>>>>
>>>> class RadiantRoutes
>>>>    def self.define_routes(map)
>>>>
>>>>    # Admin Routes
>>>>    map.with_options(:controller => 'admin/welcome') do |welcome|
>>>>
>>>>    ...
>>>>
>>>>    end
>>>> end
>>>>
>>>> What do you think about making a change like that?  We would just
>>>> need to make sure that config/routes.rb can see the RadiantRoutes
>>>> class.  It wouldn't affect the current Radiant usage, but would  
>>>> allow
>>>> for developers to work with config/routes.rb like normal.  The
>>>> RadiantOnRails extension is like the first solution, except that I
>>>> have the user create a class RailsRoutes with a define_routes  
>>>> method
>>>> that my extension calls.  I think the second solution here would be
>>>> preferred.
>>>>
>>>> Matt Parrish
>>>> http://www.pearware.org
>>>>
>>
>> _______________________________________________
>> Radiant mailing list
>> Post:   Radiant@lists.radiantcms.org
>> Search: http://radiantcms.org/mailing-list/search/
>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>
>>
>
> _______________________________________________
> Radiant mailing list
> Post:   Radiant@lists.radiantcms.org
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to