Skip to content

Instantly share code, notes, and snippets.

@kinopyo
Created April 20, 2012 02:13
Show Gist options
  • Save kinopyo/2425339 to your computer and use it in GitHub Desktop.
Save kinopyo/2425339 to your computer and use it in GitHub Desktop.
config.autoload_paths += %W( #{ config.root }/lib/middleware )
config.middleware.use "WwwMiddleware"
# lib/middlewares/middleware.rb
class WwwMiddleware
def initialize(app)
@app = app
end
def call(env)
request = Rack::Request.new(env)
if request.host.starts_with?("www.")
[301, {"Location" => request.url.sub("//www.", "//")}, self]
else
@app.call(env)
end
end
def each(&block)
end
end
@maxmercy
Copy link

Hello,
I would like to know what is the each block code for?

 def each(&block)
end

Could you explain?

@shivabhusal
Copy link

@max without each method I got this error

[2018-08-16 19:01:45] ERROR NoMethodError: undefined method `each' for #<MyCustomElevator:0x00000005c1cca8>
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
	/home/john/.rvm/gems/ruby-2.2.3/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'

@hdoan741
Copy link

You can use [] as the last response value

      [301, {"Location" => request.url.sub("//www.", "//")}, []]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment