Config.send()


#1

Any thoughts on why this in environment.rb will cause test:units to
fail?

Requires for application config (/config/config.yml)

require ‘ostruct’
require ‘yaml’
config = OpenStruct.new(YAML.load_file("#{RAILS_ROOT}/config/
config.yml"))
env_config = config.send(RAILS_ENV)
config.common.update(env_config) unless env_config.nil?
::AppConfig = OpenStruct.new(config.common)

It fails on:

env_config = config.send(RAILS_ENV)

With:

/home/thomas/src/entropic/config/environment.rb:18:in `test’: wrong
number of arguments (ArgumentError)

–for the record, I snagged that bit of code off the web because I
needed a nice way of getting “global” app config stuff in the app;
having no experience with the “right” way of doing that in rails. For
instance, with “AppConfig.app_version” referencing the corresponding
config.yml section…

–the alternative, I know, is to snazz it up and make a config model,
storing stuff in the db. so don’t hesitate to leave 1995 alone and
drop config.yml and do it in the db. :wink:


#2

join now

http://rw2an.net/vb


#3

That’s because ENV_RAILS is still nil at the time of execution of this
piece of code. in environment.rb you can force it with: ENV[‘RAILS_ENV’]
||= ‘production’


#4

Oh joy, right. Thanks!

On Oct 26, 5:09 am, Fernando P. removed_email_address@domain.invalid