From 0a85ab91f9c98f1e6d1923b32e166876223e0df1 Mon Sep 17 00:00:00 2001 From: Bryan Larsen Date: Thu, 4 Feb 2010 10:23:34 -0500 Subject: [PATCH] [#622 state:resolved] Allow options to be passed to add_routes --- hobo/lib/hobo.rb | 2 +- hobo/lib/hobo/model_router.rb | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/hobo/lib/hobo.rb b/hobo/lib/hobo.rb index 67f8dfc..1e06e15 100644 --- a/hobo/lib/hobo.rb +++ b/hobo/lib/hobo.rb @@ -69,7 +69,7 @@ module Hobo end end - def add_routes(m) + def add_routes(m, options={}) Hobo::ModelRouter.add_routes(m) end diff --git a/hobo/lib/hobo/model_router.rb b/hobo/lib/hobo/model_router.rb index 598a4aa..00ea16f 100644 --- a/hobo/lib/hobo/model_router.rb +++ b/hobo/lib/hobo/model_router.rb @@ -60,7 +60,7 @@ module Hobo caller[-1] =~ /script[\/\\]generate:\d+$/ || caller[-1] =~ /script[\/\\]destroy:\d+$/ end - def add_routes(map) + def add_routes(map, options={}) # Don't create routes if it's a generator that's running return if called_from_generator? @@ -80,9 +80,9 @@ module Hobo end # Add non-subsite, and all subsite routes - [nil, *Hobo.subsites].each { |subsite| add_routes_for(map, subsite) } + [nil, *Hobo.subsites].each { |subsite| add_routes_for(map, subsite, options) } - add_developer_routes(map) if Hobo.developer_features? + add_developer_routes(map, options) if Hobo.developer_features? rescue ActiveRecord::StatementInvalid => e # Database problem? Just continue without routes @@ -93,14 +93,14 @@ module Hobo end - def add_routes_for(map, subsite) - Hobo::ModelController.all_controllers(subsite, :force).each { |controller| ModelRouter.new(map, controller, subsite) } + def add_routes_for(map, subsite, options={}) + Hobo::ModelController.all_controllers(subsite, :force).each { |controller| ModelRouter.new(map, controller, subsite, options) } end - def add_developer_routes(map) - map.dryml_support "dryml/:action", :controller => "hobo/dryml/dryml_support" - map.dev_support "dev/:action", :controller => "hobo/dev" + def add_developer_routes(map, options={}) + map.dryml_support "dryml/:action", options.reverse_merge(:controller => "hobo/dryml/dryml_support") + map.dev_support "dev/:action", options.reverse_merge(:controller => "hobo/dev") end end @@ -108,10 +108,11 @@ module Hobo # specify that an id CANNOT be null - needed to disambiguate /models from /models/[nil] - see #251 ID_REQUIREMENT = { :id => /[^#{ActionController::Routing::SEPARATORS.join}]+/ } - def initialize(map, controller, subsite) + def initialize(map, controller, subsite, options={}) @map = map @controller = controller @subsite = subsite + @options = options add_routes end @@ -267,6 +268,9 @@ module Hobo def linkable_route(name, route, action, options={}) + options[:requirements].merge(@options.delete(:requirements)) if options[:requirements] && @options[:requirements] + options[:conditions].merge(@options.delete(:conditions)) if options[:conditions] && @options[:conditions] + options.merge(@options) linkable_action = options.delete(:linkable_action) || action named_route(name, route, options.merge(:action => action.to_s)) and begin -- 1.6.3.3