From 9ce77aa4f0453c21d79c4bf1729f452e181d35be Mon Sep 17 00:00:00 2001 From: Brian Turnbull Date: Tue, 17 Feb 2009 22:29:10 -0500 Subject: [PATCH] Added middleware example --- config/environment.rb | 8 +++++++- lib/middleware/django_middleware.rb | 14 ++++++++++++++ lib/middleware/no_django_middleware.rb | 14 ++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 lib/middleware/django_middleware.rb create mode 100644 lib/middleware/no_django_middleware.rb diff --git a/config/environment.rb b/config/environment.rb index 9f2570d..ba289e6 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -34,11 +34,17 @@ # config.plugins = [ :exception_notification, :ssl_requirement, :all ] # Add additional load paths for your own custom dirs - # config.load_paths += %W( #{RAILS_ROOT}/extras ) + # config.load_paths += %W( #{RAILS_ROOT}/lib/middleware ) # Force all environments to use the same logger level # (by default production uses :info, the others :debug) # config.log_level = :debug + + # Rack Middleware + require "#{RAILS_ROOT}/lib/middleware/django_middleware" + require "#{RAILS_ROOT}/lib/middleware/no_django_middleware" + config.middleware.use NoDjangoMiddleware + config.middleware.use DjangoMiddleware # Make Time.zone default to the specified zone, and make Active Record store time values # in the database in UTC, and return them converted to the specified local zone. diff --git a/lib/middleware/django_middleware.rb b/lib/middleware/django_middleware.rb new file mode 100644 index 0000000..07a0044 --- /dev/null +++ b/lib/middleware/django_middleware.rb @@ -0,0 +1,14 @@ +class DjangoMiddleware + def initialize(app) + @app = app + end + + def call(env) + status, headers, response = @app.call(env) + new_response = [] + response.each do |part| + new_response << part.gsub(/Rails/, 'Django') + end + [status, headers, new_response] + end +end diff --git a/lib/middleware/no_django_middleware.rb b/lib/middleware/no_django_middleware.rb new file mode 100644 index 0000000..3a29b9a --- /dev/null +++ b/lib/middleware/no_django_middleware.rb @@ -0,0 +1,14 @@ +class NoDjangoMiddleware + def initialize(app) + @app = app + end + + def call(env) + status, headers, response = @app.call(env) + new_response = [] + response.each do |part| + new_response << part.gsub(/Django/, 'Rails') + end + [status, headers, new_response] + end +end