# How do you include lib files

**URL:** <https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978>\
**Category:** Rails\
**Created:** [August 27, 2008, 8:25am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978 "2008-08-27T08:25:00Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 8:25am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/1 "2008-08-27T08:25:00Z")

</div>

I have some additional Array methods I would like to make available, but  
I can’t figure out how to load them.

Thanks for the help.

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 8:39am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/2 "2008-08-27T08:39:47Z")

</div>

On 27 Aug 2008, at 07:25, Chris O. wrote:

> I have some additional Array methods I would like to make available,  
> but  
> I can’t figure out how to load them.

require the file containing them.

Fred

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 9:03am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/3 "2008-08-27T09:03:20Z")

</div>

Frederick C. wrote:

> On 27 Aug 2008, at 07:25, Chris O. wrote:
> 
> > I have some additional Array methods I would like to make available,  
> > but  
> > I can’t figure out how to load them.
> 
> require the file containing them.
> 
> Fred

Which is what I did. I thought rails provided a way to auto load them  
at startup.

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 9:09am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/4 "2008-08-27T09:09:39Z")

</div>

On 27 Aug 2008, at 08:03, Chris O. wrote:

> > Fred
> 
> Which is what I did. I thought rails provided a way to auto load them  
> at startup.

Well files in config/initializers are run on startup, you could  
require it from there, other than that you are going to have to put  
that require statement somewhere.

Fred

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 9:11am UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/5 "2008-08-27T09:11:41Z")

</div>

Frederick C. wrote:

> On 27 Aug 2008, at 08:03, Chris O. wrote:
> 
> > > Fred
> > 
> > Which is what I did. I thought rails provided a way to auto load them  
> > at startup.
> 
> Well files in config/initializers are run on startup, you could  
> require it from there, other than that you are going to have to put  
> that require statement somewhere.
> 
> Fred

Ah, I see. I was trying to add it to the load paths.

Thanks for the help

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 1:28pm UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/6 "2008-08-27T13:28:22Z")

</div>

Chris O. wrote:

> Which is what I did. I thought rails provided a way to auto load them  
> at startup.

The auto loader only works like this. Here’s the first time the  
interpreter sees  
Foo:

foo = Foo.new

That raises an exception which Rails catches. Then it tries to require  
‘foo’,  
based on the missing constant name.

That trick works only for things with a name. If foo.rb contains Bar,  
then the  
first instance of Bar, before a Foo, for any given interpretation, will  
not load  
foo.rb, and will propagate the exception.

You gotta remember this rule when building libraries. You could ensure  
Foo  
appears above Bar in every module, or you could require ‘foo’  
explicitly.

And we put extensions to Ruby classes in environment.rb, but that might  
just be  
laziness!

–  
Phlip

---

<div class="post-metadata">

**Author:** ![chrisolsen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c6cbf5/32.png) [@chrisolsen](https://www.ruby-forum.com/u/chrisolsen)\
**Post date:** [August 27, 2008, 9:24pm UTC](https://www.ruby-forum.com/t/how-do-you-include-lib-files/146978/7 "2008-08-27T21:24:38Z")

</div>

did you try with require ‘lib/yourfile’ in the application.html.erb  
file?

On Aug 27, 2:25 am, Chris O. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
