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
On Jun 2, 2007, at 9:52 AM, Sean Cribbs wrote:
> The stock environment.rb and boot.rb will load Radiant from
> vendor/radiant automatically. The challenge of course, would be
> loading
> the proper routes and adding the traditional app directories to the
> load
> path. I think you guys already have that, no?
>
> The other issue is that Radiant radically alters the bootup process
> and
> needs to do so for the purpose of loading extensions. It's my guess
> that if you put it in vendor/plugins/radiant, things are going to be
> much harder to hook up.
>
> Sean
>
> Matt Parrish wrote:
>> Oh, I guess I didn't realize that vendor/radiant would be any easier
>> than vendor/plugins/radiant. How would that change things? If it's
>> in vendor/radiant, don't we have to get into config/environment.rb or
>> config/boot.rb to load radiant, whereas if it was in vendor/plugins/
>> radiant, then Rails would automatically start initializing it
>> (although I'm not sure at what part of the process it would do that)?
>>
>> Matt
>>
>> On Jun 2, 2007, at 9:41 AM, Sean Cribbs wrote:
>>
>>
>>> Why not keep Radiant in vendor/radiant? Then the startup scripts
>>> would
>>> require less modification.
>>>
>>> Sean
>>>
>>> Matt Parrish wrote:
>>>
>>>> Yes, it seems to me like that is the goal. Currently, Radiant
>>>> takes
>>>> control of the files in config/ to do its initialization. It seems
>>>> like we would want to keep the Rails files as is, and do the
>>>> initialization in plugins/radiant/init.rb. I haven't looked at it
>>>> yet, but I'm guessing there will be a few challenges to getting
>>>> this
>>>> to work properly. One challenge I immediately see is getting
>>>> Radiant's routes to coordinate with the Rails ones in config/
>>>> routes.rb.
>>>>
>>>> Matt Parrish
>>>> http://www.pearware.org
>>>>
>>>>
>>>> On Jun 1, 2007, at 9:17 PM, Meekish wrote:
>>>>
>>>>
>>>>
>>>>> Loren Johnson wrote:
>>>>>
>>>>>
>>>>>> You're absolutely right, sorry I hadn't looked closely enough.
>>>>>>
>>>>>> You could gem install Radiant and generate an instance and then
>>>>>> merge
>>>>>> the necessary bits from the environment.rb it generates into your
>>>>>> existing app.
>>>>>>
>>>>>> If I get a chance I'll try and determine what those necessary
>>>>>> bits
>>>>>> are later today and email back what I learn.
>>>>>>
>>>>>> Loren
>>>>>>
>>>>>>
>>>>> So is the goal at this point to make it possible to install
>>>>> Radiant
>>>>> as a
>>>>> plugin with the folder structure that John laid out?
>>>>>
>>>>> plugins/
>>>>> radiant/
>>>>> init.rb
>>>>> lib/
>>>>> vendor/
>>>>> radiant/ <<< an svn:external to trunk/radiant
>>>>>
>>>>> --
>>>>> Posted via http://www.ruby-forum.com/.
>>>>> _______________________________________________
>>>>> Radiant mailing list
>>>>> Post: [email protected]
>>>>> Search: http://radiantcms.org/mailing-list/search/
>>>>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Radiant mailing list
>>>> Post: [email protected]
>>>> Search: http://radiantcms.org/mailing-list/search/
>>>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Radiant mailing list
>>> Post: [email protected]
>>> Search: http://radiantcms.org/mailing-list/search/
>>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
>>>
>>
>> _______________________________________________
>> Radiant mailing list
>> Post: [email protected]
>> Search: http://radiantcms.org/mailing-list/search/
>> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
>>
>>
>
> _______________________________________________
> Radiant mailing list
> Post: [email protected]
> Search: http://radiantcms.org/mailing-list/search/
> Site: http://lists.radiantcms.org/mailman/listinfo/radiant
_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site: http://lists.radiantcms.org/mailman/listinfo/radiant