Merb::Orms::DataMapper

Public Class Methods

config() click to toggle source
# File lib/merb_datamapper/connection.rb, line 19
def config
  @config ||= Merb::Plugins.config[:merb_datamapper][:connection] ||= (get_config_for_environment)
end
config_file() click to toggle source
# File lib/merb_datamapper/connection.rb, line 7
def config_file() Merb.dir_for(:config) / "database.yml" end
connect() click to toggle source

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
copy_sample_config() click to toggle source
# File lib/merb_datamapper/connection.rb, line 11
def copy_sample_config
  FileUtils.cp sample_source, sample_dest unless File.exists?(sample_dest)
end
full_config() click to toggle source
# File lib/merb_datamapper/connection.rb, line 15
def full_config
  @full_config ||= Erubis.load_yaml_file(config_file)
end
register_session_type() click to toggle source

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
sample_dest() click to toggle source
# File lib/merb_datamapper/connection.rb, line 8
def sample_dest() Merb.dir_for(:config) / "database.yml.sample" end
sample_source() click to toggle source
# File lib/merb_datamapper/connection.rb, line 9
def sample_source() File.dirname(__FILE__) / "database.yml.sample" end
setup_connections() click to toggle source
# 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
start_logging() click to toggle source
# File lib/merb_datamapper/connection.rb, line 36
def start_logging
  ::DataMapper.logger = Merb.logger
  ::DataMapper.logger.info("Connecting to database...")
end
symbolize_keys(h) click to toggle source
# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.