I have a large class of algorithms (50-100 methods) used in calculating some results for a model class. I have created a separate algorithm.rb file which contains the class. Where should this file go ? Should it even be a module instead of a class (though I do need it to hold class variables during the calculations)? Finally, how do I call it from the model active record class ?
john wrote:
I have a large class of algorithms (50-100 methods) used in calculating some results for a model class. I have created a separate algorithm.rb file which contains the class. Where should this file go ?
If it doesn't use ActiveView or ActiveRecord, it goes in the lib/ folder.
Should it even be a module instead of a class (though I do need it to hold class variables during the calculations)?
We use Modules when we want to isolate the name of a class, and/or when we want the Module to mix-in with other classes. If you don't need those, then do what's simplest. Plop a Class into the lib/ folder, and worry about name collisions when they happen.
(If you publish this class, however, that formula no longer applies, and you should put the class in a module with a name that others are not likely to use.![]()
Finally, how do I call it from the model active record class ?
Given lib/algorithm.rb, write:
require 'algorithm'
up at the top of the Model that uses it.
And toss your test cases into test/unit . (You do _have_ test cases, don't you?![]()
If you are using your algorithms in places besides your webapp, why not make yourself an algorithms gem and install it on your system?
Phlip wrote:
If it doesn't use ActiveView or ActiveRecord, it goes in the lib/ folder.
Given lib/algorithm.rb, write:
require 'algorithm'
okay
And toss your test cases into test/unit . (You do _have_ test cases, don't you?
How do I set up a test stub for the separate class file. To get code converted to ruby, I had made it a separate controller and yes, have been testing every method.