# /lib/rack/request.rb in my gem - is this reserved?

**URL:** <https://www.ruby-forum.com/t/lib-rack-request-rb-in-my-gem-is-this-reserved/187583>\
**Category:** Rails\
**Created:** [April 26, 2010, 9:58am UTC](https://www.ruby-forum.com/t/lib-rack-request-rb-in-my-gem-is-this-reserved/187583 "2010-04-26T09:58:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![k-b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/db5fbb/32.png) [@k-b](https://www.ruby-forum.com/u/k-b)\
**Post date:** [April 26, 2010, 9:58am UTC](https://www.ruby-forum.com/t/lib-rack-request-rb-in-my-gem-is-this-reserved/187583/1 "2010-04-26T09:58:50Z")

</div>

Hi!

I write a gem at the moment. The Gem need to register during the  
process in the rack middleware.  
So I make an folder “rack” inside my “lib” folder. I called the file  
“request.rb” because it keeps track of requests.

So we speaking about the file /lib/rack/request.rb

But even if I place an empty file on this, I get the following:

/Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.0.0.beta3/lib/  
action\_dispatch/http/request.rb:10:in `<module:ActionDispatch>': uninitialized constant Rack::Request (NameError) from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_dispatch/http/request.rb:9:in`\<top  
(required)\>’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
actionpack-3.0.0.beta3/lib/action\_controller/metal/rack\_delegation.rb:  
1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/metal/redirecting.rb: 14:in`module:Redirecting’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
actionpack-3.0.0.beta3/lib/action\_controller/metal/redirecting.rb:  
10:in `<module:ActionController>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/metal/redirecting.rb:1:in`\<top (required)\>’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
actionpack-3.0.0.beta3/lib/action\_controller/base.rb:20:in  
`<class:Base>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/base.rb:2:in`module:ActionController’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
actionpack-3.0.0.beta3/lib/action\_controller/base.rb:1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/ buddy/rails/controller_extensions.rb:2:in`module:ActionController’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/  
buddy/rails/controller\_extensions.rb:1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/ buddy.rb:63:in`require’  
from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/  
buddy.rb:63:in `<top (required)>' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 286:in`require’  
from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
286:in `block (2 levels) in require' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 281:in`each’  
from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
281:in `block in require' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 280:in`each’  
from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
280:in `require' from /Users/kb1/code/rails/gemtestapp/config/application.rb: 7:in`\<top (required)\>’  
from /Users/kb1/code/rails/gemtestapp/config/environment.rb:  
2:in `require' from /Users/kb1/code/rails/gemtestapp/config/environment.rb: 2:in`\<top (required)\>’  
from /Users/kb1/code/rails/gemtestapp/config.ru:3:in `require' from /Users/kb1/code/rails/gemtestapp/config.ru:3:in`block in

' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/rack-1.1.0/lib/ rack/builder.rb:46:in `instance_eval' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/rack-1.1.0/lib/ rack/builder.rb:46:in `initialize' from /Users/kb1/code/rails/gemtestapp/config.ru:1:in `new' from /Users/kb1/code/rails/gemtestapp/config.ru:1:in `' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:36:in `eval' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:36:in `load' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:45:in `for' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/controllers/controller.rb:163:in `load\_adapter' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/controllers/controller.rb:67:in `start' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/runner.rb:177:in `run\_command' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/runner.rb:143:in `run!' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/bin/ thin:6:in `' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/bin/thin:19:in `load' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/bin/thin:19:in `'

If I make my Content in this file, which is like: module Rack; module  
Request; … I get:

> > Using rack adapter  
> > /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/actionpack-3.0.0.beta3/lib/  
> > action\_dispatch/http/request.rb:10:in `<module:ActionDispatch>': wrong argument type Module (expected Class) (TypeError) from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_dispatch/http/request.rb:9:in`\<top  
> > (required)\>’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > activesupport-3.0.0.beta3/lib/active\_support/dependencies.rb:209:in  
> > `require' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ activesupport-3.0.0.beta3/lib/active_support/dependencies.rb:209:in`block in require’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > activesupport-3.0.0.beta3/lib/active\_support/dependencies.rb:195:in  
> > `block in load_dependency' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ activesupport-3.0.0.beta3/lib/active_support/dependencies.rb:523:in`new\_constants\_in’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > activesupport-3.0.0.beta3/lib/active\_support/dependencies.rb:195:in  
> > `load_dependency' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ activesupport-3.0.0.beta3/lib/active_support/dependencies.rb:209:in`require’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > actionpack-3.0.0.beta3/lib/action\_controller/metal/rack\_delegation.rb:  
> > 1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/metal/redirecting.rb: 14:in`module:Redirecting’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > actionpack-3.0.0.beta3/lib/action\_controller/metal/redirecting.rb:  
> > 10:in `<module:ActionController>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/metal/redirecting.rb:1:in`\<top (required)\>’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > actionpack-3.0.0.beta3/lib/action\_controller/base.rb:20:in  
> > `<class:Base>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/ actionpack-3.0.0.beta3/lib/action_controller/base.rb:2:in`module:ActionController’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/  
> > actionpack-3.0.0.beta3/lib/action\_controller/base.rb:1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/ buddy/rails/controller_extensions.rb:2:in`module:ActionController’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/  
> > buddy/rails/controller\_extensions.rb:1:in `<top (required)>' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/ buddy.rb:63:in`require’  
> > from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/buddy-0.1.0/lib/  
> > buddy.rb:63:in `<top (required)>' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 286:in`require’  
> > from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
> > 286:in `block (2 levels) in require' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 281:in`each’  
> > from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
> > 281:in `block in require' from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb: 280:in`each’  
> > from /Users/kb1/code/rails/gemtestapp/.bundle/environment.rb:  
> > 280:in `require' from /Users/kb1/code/rails/gemtestapp/config/application.rb: 7:in`\<top (required)\>’  
> > from /Users/kb1/code/rails/gemtestapp/config/environment.rb:  
> > 2:in `require' from /Users/kb1/code/rails/gemtestapp/config/environment.rb: 2:in`\<top (required)\>’  
> > from /Users/kb1/code/rails/gemtestapp/config.ru:3:in `require' from /Users/kb1/code/rails/gemtestapp/config.ru:3:in`block in

' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/rack-1.1.0/lib/ rack/builder.rb:46:in `instance_eval' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/rack-1.1.0/lib/ rack/builder.rb:46:in `initialize' from /Users/kb1/code/rails/gemtestapp/config.ru:1:in `new' from /Users/kb1/code/rails/gemtestapp/config.ru:1:in `' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:36:in `eval' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:36:in `load' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ rack/adapter/loader.rb:45:in `for' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/controllers/controller.rb:163:in `load\_adapter' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/controllers/controller.rb:67:in `start' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/runner.rb:177:in `run\_command' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/lib/ thin/runner.rb:143:in `run!' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/gems/thin-1.2.7/bin/ thin:6:in `' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/bin/thin:19:in `load' from /Users/kb1/.rvm/gems/ruby-1.9.2-head/bin/thin:19:in `'

It seems like something does require a module Rack; class Request;  
inside of this file.  
What is the cause of this? Where can I find ressources concerning this  
issue?

This works perfectly find, if I put this file under:

Greetings form Germany,  
Klaus

---

<div class="post-metadata">

**Author:** ![k-b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/db5fbb/32.png) [@k-b](https://www.ruby-forum.com/u/k-b)\
**Post date:** [April 26, 2010, 11:19am UTC](https://www.ruby-forum.com/t/lib-rack-request-rb-in-my-gem-is-this-reserved/187583/2 "2010-04-26T11:19:01Z")

</div>

On Apr 26, 8:57 am, kb [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> It seems like something does require a module Rack; class Request;  
> inside of this file.  
> What is the cause of this? Where can I find ressources concerning this  
> issue?

You’re probably shadowing rack’s own request.rb

Fred

---

<div class="post-metadata">

**Author:** ![k-b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/db5fbb/32.png) [@k-b](https://www.ruby-forum.com/u/k-b)\
**Post date:** [April 27, 2010, 8:33am UTC](https://www.ruby-forum.com/t/lib-rack-request-rb-in-my-gem-is-this-reserved/187583/3 "2010-04-27T08:33:27Z")

</div>

Hi Fred,

thanks for your response!  
Can you give me some hints where I can read more absout filenames  
which I should avoid? Or how to determine such a thing. This was a  
pain for a couple of hours to find out!

Regards,  
Klaus

On 26 Apr., 11:09, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
