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 -~----------~----~----~----~------~----~------~--~---