If there is a better way to do this I am open: I am trying to load a
yaml
config file which holds application settings (which happens to be shared
between the main app and an engine).
class Application < Rails::Application
config_file = “#{Rails.root}/config/config.yml”
if File.exists?(config_file)
::APP_CONFIG =
YAML.load_file(config_file)[Rails.env].deep_symbolize_keys
else
puts “No config.yml file found, run ‘rails g blog_engine:install’”
end
…
end
The file loads if I use #symbolize_keys, but Hash#deep_symbolize_keys is
not
available at this point. I know I could iterate the hash myself and do
this
but of course would prefer not to and makes me wonder if there is an
alternative way to load such a config file and have the values
accessible
within environment.rb so that I can assign the value.
Looks like I have answered my own question: if I do my assignments in
“config.after_initialize” then I have the CoreExtensions and
deep_symbolize_keys.
On Tuesday, May 10, 2011 12:43:16 PM UTC-5, David K. wrote:
“config.after_initialize” then I have the CoreExtensions and
deep_symbolize_keys.
Your workaround didn’t work for me, as I want to use my config hash in
application.rb directly.
A quick recursive grep through all of my gems located the offender:
i18n,
of all things. While ActiveSupport has Hash.deep_symbolize_keys defined
on
the master branch on Github, that hasn’t made into the latest release
(3.2.9). So for now, require ‘i18n/core_ext/hash’ will do the job
nicely.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.