# Using functionality in /lib in initializers

**URL:** <https://www.ruby-forum.com/t/using-functionality-in-lib-in-initializers/163399>\
**Category:** Rails\
**Created:** [March 19, 2009, 11:09pm UTC](https://www.ruby-forum.com/t/using-functionality-in-lib-in-initializers/163399 "2009-03-19T23:09:17Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tekwiz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@tekwiz](https://www.ruby-forum.com/u/tekwiz)\
**Post date:** [March 19, 2009, 11:09pm UTC](https://www.ruby-forum.com/t/using-functionality-in-lib-in-initializers/163399/1 "2009-03-19T23:09:17Z")

</div>

I need to use some functionality that I’ve added to the Hash class in  
an initializer. I’ve written the functionality into /lib/hash.rb;  
however, rails apparently loads the files in /lib after the  
initializers as the methods are not there to use in the initializer.

I’ve used a require statement at the top of the initializer to get the  
functionality…  
require File.join(RAILS\_ROOT, ‘lib’, ‘hash’)

It works and no warnings are being thrown in the log; however, since  
rails doesn’t load them until after the initializers, I wanted to  
ask… Is this unsafe in some way?

– TW

---

<div class="post-metadata">

**Author:** ![tekwiz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@tekwiz](https://www.ruby-forum.com/u/tekwiz)\
**Post date:** [March 19, 2009, 11:25pm UTC](https://www.ruby-forum.com/t/using-functionality-in-lib-in-initializers/163399/2 "2009-03-19T23:25:42Z")

</div>

On Mar 19, 10:08 pm, tekwiz [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I need to use some functionality that I’ve added to the Hash class in  
> an initializer. I’ve written the functionality into /lib/hash.rb;  
> however, rails apparently loads the files in /lib after the  
> initializers as the methods are not there to use in the initializer.

Except perhaps in production mode, rails won’t magically load files  
from lib for you (and event then that loading happens before  
initializers run)

> I’ve used a require statement at the top of the initializer to get the  
> functionality…  
> require File.join(RAILS\_ROOT, ‘lib’, ‘hash’)

Just require ‘hash’ would do

Fred

---

<div class="post-metadata">

**Author:** ![tekwiz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@tekwiz](https://www.ruby-forum.com/u/tekwiz)\
**Post date:** [March 20, 2009, 1:40am UTC](https://www.ruby-forum.com/t/using-functionality-in-lib-in-initializers/163399/3 "2009-03-20T01:40:51Z")

</div>

Ahh, I see! Thanks Fred!

– TW

On Mar 19, 5:25 pm, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
