# Best location for generic classes?

**URL:** <https://www.ruby-forum.com/t/best-location-for-generic-classes/48805>\
**Category:** Rails\
**Created:** [November 25, 2005, 4:20am UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805 "2005-11-25T04:20:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jjones](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/df705f/32.png) [@jjones](https://www.ruby-forum.com/u/jjones)\
**Post date:** [November 25, 2005, 4:20am UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805/1 "2005-11-25T04:20:12Z")

</div>

Say for instance, if I have a class that computes PI, where would the  
best place to locate this class so that its accessible by the  
controllers and helpers? What if I wanted to make this generic class  
accessible to multiple RoR projects?

TIA.

---

<div class="post-metadata">

**Author:** ![jjones](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/df705f/32.png) [@jjones](https://www.ruby-forum.com/u/jjones)\
**Post date:** [November 25, 2005, 9:30am UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805/2 "2005-11-25T09:30:17Z")

</div>

Make it a plugin if it’s mainly for use in Rails projects… if it’s  
generally applicable to any Ruby project, you might want to make it a  
Gem.

[http://wiki.rubyonrails.com/rails/pages/Plugins](http://wiki.rubyonrails.com/rails/pages/Plugins)  
[http://docs.rubygems.org/](http://docs.rubygems.org/)

- james

---

<div class="post-metadata">

**Author:** ![jjones](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/df705f/32.png) [@jjones](https://www.ruby-forum.com/u/jjones)\
**Post date:** [November 25, 2005, 10:38am UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805/3 "2005-11-25T10:38:58Z")

</div>

The lib folder is also viable. Remember to include it in your  
environment.

---

<div class="post-metadata">

**Author:** ![jjones](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/df705f/32.png) [@jjones](https://www.ruby-forum.com/u/jjones)\
**Post date:** [November 25, 2005, 5:32pm UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805/4 "2005-11-25T17:32:46Z")

</div>

Is it possible to create a directory somewhere outside of the project  
and include that directory in the path?

---

<div class="post-metadata">

**Author:** ![jjones](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/df705f/32.png) [@jjones](https://www.ruby-forum.com/u/jjones)\
**Post date:** [November 25, 2005, 8:23pm UTC](https://www.ruby-forum.com/t/best-location-for-generic-classes/48805/5 "2005-11-25T20:23:30Z")

</div>

Rick wrote:

> Is it possible to create a directory somewhere outside of the project  
> and include that directory in the path?

You can sym link it:

ls -s reusable\_stuff/your\_plugin  
your\_rails\_app/vendor/plugins/your\_plugin

- Scott
