I'm writing an app in Rails, but some modules need to work outside of Rails. In these classes, I'd like to have a common way to access configuration data. Two approaches I though of:
1. Use a Singleton class ala the Logger concept, and have
a "conf" object floating around that can provide the
"conf.root_dir" or whatever
2. Mixin a module that provides a conf() routine, so that
classes would call conf('root_dir') / etc
Opinions? In the Perl world, I would use Config::Fast and attach a $self->{conf} hashref to my classes, which all point to a shared object.
Thanks,
Nate
Nate Wiger wrote:
I'm writing an app in Rails, but some modules need to work outside of
Rails. In these classes, I'd like to have a common way to access
configuration data. Two approaches I though of:
1. Use a Singleton class ala the Logger concept, and have
a "conf" object floating around that can provide the
"conf.root_dir" or whatever
2. Mixin a module that provides a conf() routine, so that
classes would call conf('root_dir') / etc
The first option is most like the Perl solution. It's pretty
straightforward. Something along these lines might work for you,
though it's not a singleton class by design:
http://groups.google.com/group/comp.lang.ruby/msg/aba4124d4d16d6b0
Nate Wiger wrote:
I'm writing an app in Rails, but some modules need to work outside of Rails. In these classes, I'd like to have a common way to access configuration data. Two approaches I though of:
1. Use a Singleton class ala the Logger concept, and have
a "conf" object floating around that can provide the
"conf.root_dir" or whatever
2. Mixin a module that provides a conf() routine, so that
classes would call conf('root_dir') / etc
Opinions? In the Perl world, I would use Config::Fast and attach a $self->{conf} hashref to my classes, which all point to a shared object.
This was developed for GUI (specifically FXRuby) apps, but would probably work with any kind of app:
http://raa.ruby-lang.org/project/preferences/
···
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
In IOWA apps, there is a method, Iowa.config, that has a reference to the config object for the application.
This lets that config object be accessed by any code anywhere, similar to your option #1.
Kirk Haines
···
On Wed, 25 Oct 2006, Nate Wiger wrote:
I'm writing an app in Rails, but some modules need to work outside of Rails. In these classes, I'd like to have a common way to access configuration data. Two approaches I though of:
1. Use a Singleton class ala the Logger concept, and have
a "conf" object floating around that can provide the
"conf.root_dir" or whatever
2. Mixin a module that provides a conf() routine, so that
classes would call conf('root_dir') / etc
poopdeville@gmail.com wrote:
Nate Wiger wrote:
I'm writing an app in Rails, but some modules need to work outside of
Rails. In these classes, I'd like to have a common way to access
configuration data. Two approaches I though of:
1. Use a Singleton class ala the Logger concept, and have
a "conf" object floating around that can provide the
"conf.root_dir" or whatever
The first option is most like the Perl solution. It's pretty
straightforward. Something along these lines might work for you,
though it's not a singleton class by design:
http://groups.google.com/group/comp.lang.ruby/msg/aba4124d4d16d6b0
Awesome, that looks great. I think I'll tweak it into a Singleton w/o the global vars (just method accessors). I'll post a follow-up if I come up with something semi-portable.
-Nate