I''m looking for a better approach... then what I''m currently
doing.
I''m working on a generator that will help me setup my base projects
with many of my common defaults that I use internally. Now I know that
generators have the route_resources method that allows a person to
create a resource in the routes file, but is there a way to create the
map.root :controller => ''name'' entry as well?
Here is what I''ve done. I customized the route_resources method to be
something like this:
def add_root_route
sentinel = ''ActionController::Routing::Routes.draw do
|map|''
gsub_file ''config/routes.rb'',
/(#{Regexp.escape(sentinel)})/mi
do |match|
"#{match}\n map.root :controller =>
\"welcome\"\n"
end
end
And then just copied the gsub_file method to my generator (it was a
protected method and I couldn''t think of another way to execute it -
thoughts?).
I then have a bit that does:
action = File.basename($0)
case action
when "generate"
add_root_route
when "destroy"
puts
"------------------------------------------------------------"
puts "Make sure you remove the map.root from the /config/
routes.rb"
puts
"------------------------------------------------------------"
end
Which makes sure it only runs when they are running generate.
My question is this... Is there an better way to be doing this? It
seems like a lot of insanity just to add a root route.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On Mon, Dec 1, 2008 at 10:52 AM, Tim K. <jangchub-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> My question is this... Is there an better way to be doing this? It > seems like a lot of insanity just to add a root route.You would think so, but there doesn''t seem to be. `script/generate resource` also adds routes, but looking at the source, they''re doing something similar: def route_resources(*resources) resource_list = resources.map { |r| r.to_sym.inspect }.join('', '') sentinel = ''ActionController::Routing::Routes.draw do |map|'' logger.route "map.resources #{resource_list}" unless options[:pretend] gsub_file ''config/routes.rb'', /(#{Regexp.escape(sentinel)})/mi do |match| "#{match}\n map.resources #{resource_list}\n" end end end Brandon -- -------------------------------------------------------------------------------- Training by Collective Idea: Ruby on Rails training in a vacation setting http://training.collectiveidea.com – San Antonio, TX – Jan 20-23 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Okay cool. Is there a better way to call gsub_file protected method then by copying it into the generator? It''s in Rails::Generator::Commands::Base. On Dec 1, 12:35 pm, "Brandon Keepers" <bran...-NYlJC1mBhkRg9hUCZPvPmw@public.gmane.org> wrote:> On Mon, Dec 1, 2008 at 10:52 AM, Tim K. <jangc...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > My question is this... Is there an better way to be doing this? It > > seems like a lot of insanity just to add a root route. > > You would think so, but there doesn''t seem to be. `script/generate > resource` also adds routes, but looking at the source, they''re doing > something similar: > > def route_resources(*resources) > resource_list = resources.map { |r| r.to_sym.inspect }.join('', '') > sentinel = ''ActionController::Routing::Routes.draw do |map|'' > > logger.route "map.resources #{resource_list}" > unless options[:pretend] > gsub_file ''config/routes.rb'', > /(#{Regexp.escape(sentinel)})/mi do |match| > "#{match}\n map.resources #{resource_list}\n" > end > end > end > > Brandon > -- > --------------------------------------------------------------------------- ----- > Training by Collective Idea: Ruby on Rails training in a vacation settinghttp://training.collectiveidea.com– San Antonio, TX – Jan 20-23--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---