Forum: Ruby on Rails Additional config file like database.yml

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0bfcd61fc289de2e441929ecfd00b0ed?d=identicon&s=25 Peter Hickman (Guest)
on 2009-01-09 15:58
(Received via mailing list)
I have a web site that accesses Solr (a Lucene based search engine
accessed via REST). I would like the configuration to be handled in
the same was as database.yml. I envision a file called solr.yml that
looks something like this in the config directory:

development:
   url: http://dev.solr.example.com/search

test:
   url: http://test.solr.example.com/search

production:
   url: http://production.solr.example.com/search

If I was to write this file how would I access it?

Any pointers would be appreciated as it would aid testing and I have a
couple of other projects that could use this technique.

Thanks
Eecd295cdec2454c66e2015036a39408?d=identicon&s=25 Scott Nj (scottnj)
on 2009-01-09 17:35
(Received via mailing list)
you could code it yourself, i think there is a railscast that shows an
easy way to do it. or you could use one of the many plugins or gems
out there. i just recently used
http://github.com/binarylogic/settingslogic/tree/master
53be54e5db4dc58e4980db5a8255621b?d=identicon&s=25 Harold (Guest)
on 2009-01-09 17:44
(Received via mailing list)
You can do

solr_conf = open('path/to/solr.yml', 'r') { |f| YAML.load(f) }

solr_conf now holds a hash with your parameteres. You can access it
simply by doing something like:

url = solr_conf[RAILS_ENV][:url]
B09a3f6cdc4797532647d2d264b5df49?d=identicon&s=25 Jodi Showers (jshow)
on 2009-01-09 17:51
(Received via mailing list)
Peter

On 9-Jan-09, at 11:44 AM, Harold wrote:

> On Jan 9, 11:33 am, scott <scot...@gmail.com> wrote:
>>> looks something like this in the config directory:
>>> If I was to write this file how would I access it?
>>
>>> Any pointers would be appreciated as it would aid testing and I
>>> have a
>>> couple of other projects that could use this technique.
>>

If you take this approach, you can also embed erb in your yaml, and
get a nice little object with your config at hand:

require 'ostruct'
raw_config = File.read("#{RAILS_ROOT}/config/config.yml")
erb_config = ERB.new(raw_config).result
config = YAML.load(erb_config)[RAILS_ENV]
HomestarsConfig = OpenStruct.new(config)

so if you had a config setting of mail_server,

you could access it HomestarsConfig.mail_server

J
280b78a61a968391b7e07e912be102a8?d=identicon&s=25 Robert Walker (robert4723)
on 2009-01-09 18:05
Scott Nj wrote:
> you could code it yourself, i think there is a railscast that shows an
> easy way to do it. or you could use one of the many plugins or gems
> out there. i just recently used
> http://github.com/binarylogic/settingslogic/tree/master

Yes, I believe there is a railscast on showing just what you're looking
for:
http://railscasts.com/episodes/85-yaml-configuration-file
0bfcd61fc289de2e441929ecfd00b0ed?d=identicon&s=25 Peter Hickman (Guest)
on 2009-01-09 18:17
(Received via mailing list)
Thanks to everyone who replied. The railscast is just what I wanted.

Thanks to you all again.
This topic is locked and can not be replied to.