Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
## Use this for completely custom routing # /lib/routing_extensions.rb module ThongKuah module Routing module RouteExtensions def self.included(base) base.alias_method_chain :recognition_conditions, :path_regexp end # allows recognition for paths only matching the given regexp (conditions[:path]) # allows recognition for paths not matching the given regexp (conditions[:not_path]) def recognition_conditions_with_path_regexp result = recognition_conditions_without_path_regexp result << "conditions[:path] =~ path" if conditions[:path] result << "(conditions[:not_path]=~path).nil?" if conditions[:not_path] result end end end end # /config.environment.rb require 'route_extension' ActionController::Routing::Route.send :include, ThongKuah::Routing::RouteExtensions ## Example usage #match only paths starting with a map.connect '/location/:name', :controller => :locations, :path => /^a/ #match all paths not starting with z map.connect '/location/:name', :controller => :locations, :not_path => /^z/ #combine path and not_path! map.connect '/location/:name', :controller => :locations, :path => /^a/, :not_path => /^ab/ map.country ':country', :controller => :locations, :action => :show, :conditions => {:path => Regexp.new(Country.all.map(&:name).join('|'))} map.region ':country/:region', :controller => :locations, :action => :show, :conditions => {:path => Regexp.new(Country.all.each{|c| "^#{c.name}" }.join('|')) }
This paste will be private.
From the Design Piracy series on my blog: