# File lib/merb_datamapper/connection.rb, line 19 def config @config ||= Merb::Plugins.config[:merb_datamapper][:connection] ||= (get_config_for_environment) end
# File lib/merb_datamapper/connection.rb, line 7 def config_file() Merb.dir_for(:config) / "database.yml" end
Database connects as soon as the gem is loaded
# File lib/merb_datamapper/connection.rb, line 24 def connect if File.exists?(config_file) start_logging setup_connections else copy_sample_config Merb.logger.error! "No database.yml file found in #{Merb.root}/config." Merb.logger.error! "A sample file was created called database.sample.yml for you to copy and edit." exit(1) end end
# File lib/merb_datamapper/connection.rb, line 11 def copy_sample_config FileUtils.cp sample_source, sample_dest unless File.exists?(sample_dest) end
# File lib/merb_datamapper/connection.rb, line 15 def full_config @full_config ||= Erubis.load_yaml_file(config_file) end
Registering this ORM lets the user choose DataMapper as a session store in merb.yml’s session_store: option.
# File lib/merb_datamapper/connection.rb, line 50 def register_session_type Merb.register_session_type("datamapper", "merb/session/data_mapper_session", "Using DataMapper database sessions") end
# File lib/merb_datamapper/connection.rb, line 8 def sample_dest() Merb.dir_for(:config) / "database.yml.sample" end
# File lib/merb_datamapper/connection.rb, line 9 def sample_source() File.dirname(__FILE__) / "database.yml.sample" end
# File lib/merb_datamapper/connection.rb, line 41 def setup_connections conf = config.dup repositories = conf.delete(:repositories) ::DataMapper.setup(:default, conf) unless conf.empty? repositories.each { |name, opts| ::DataMapper.setup(name, opts) } if repositories end
# File lib/merb_datamapper/connection.rb, line 36 def start_logging ::DataMapper.logger = Merb.logger ::DataMapper.logger.info("Connecting to database...") end
# File lib/merb_datamapper/connection.rb, line 56 def symbolize_keys(h) config = {} h.each do |k, v| if k == 'port' config[k.to_sym] = v.to_i elsif k == 'adapter' && v == 'postgresql' config[k.to_sym] = 'postgres' elsif v.is_a?(Hash) config[k.to_sym] = symbolize_keys(v) else config[k.to_sym] = v end end config end
Generated with the Darkfish Rdoc Generator 2.