Merb::Orms::DataMapper

Public Class Methods

config() click to toggle source
    # File lib/merb_datamapper/connection.rb, line 19
19:         def config
20:           @config ||= Merb::Plugins.config[:merb_datamapper][:connection] ||= (get_config_for_environment)
21:         end
config_file() click to toggle source
   # File lib/merb_datamapper/connection.rb, line 7
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
24:         def connect
25:           if File.exists?(config_file)
26:             start_logging
27:             setup_connections
28:           else
29:             copy_sample_config
30:             Merb.logger.error! "No database.yml file found in #{Merb.root}/config."
31:             Merb.logger.error! "A sample file was created called database.sample.yml for you to copy and edit."
32:             exit(1)
33:           end
34:         end
copy_sample_config() click to toggle source
    # File lib/merb_datamapper/connection.rb, line 11
11:         def copy_sample_config
12:           FileUtils.cp sample_source, sample_dest unless File.exists?(sample_dest)
13:         end
full_config() click to toggle source
    # File lib/merb_datamapper/connection.rb, line 15
15:         def full_config
16:           @full_config ||= Erubis.load_yaml_file(config_file)
17:         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
50:         def register_session_type
51:           Merb.register_session_type("datamapper",
52:             "merb/session/data_mapper_session",
53:             "Using DataMapper database sessions")
54:         end
sample_dest() click to toggle source
   # File lib/merb_datamapper/connection.rb, line 8
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
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
41:         def setup_connections
42:           conf = config.dup
43:           repositories = conf.delete(:repositories)
44:           ::DataMapper.setup(:default, conf) unless conf.empty?
45:           repositories.each { |name, opts| ::DataMapper.setup(name, opts) } if repositories
46:         end
start_logging() click to toggle source
    # File lib/merb_datamapper/connection.rb, line 36
36:         def start_logging
37:           ::DataMapper.logger = Merb.logger
38:           ::DataMapper.logger.info("Connecting to database...")
39:         end
symbolize_keys(h) click to toggle source
    # File lib/merb_datamapper/connection.rb, line 56
56:         def symbolize_keys(h)
57:           config = {}
58: 
59:           h.each do |k, v|
60:             if k == 'port'
61:               config[k.to_sym] = v.to_i
62:             elsif k == 'adapter' && v == 'postgresql'
63:               config[k.to_sym] = 'postgres'
64:             elsif v.is_a?(Hash)
65:               config[k.to_sym] = symbolize_keys(v)
66:             else
67:               config[k.to_sym] = v
68:             end
69:           end
70: 
71:           config
72:         end

Private Class Methods

get_config_for_environment() click to toggle source
    # File lib/merb_datamapper/connection.rb, line 76
76:         def get_config_for_environment
77:           if hash = full_config[Merb.environment]
78:             symbolize_keys(hash)
79:           elsif hash = full_config[Merb.environment.to_sym]
80:             hash
81:           else
82:             raise ArgumentError, "missing environment '#{Merb.environment}' in config file #{config_file}"
83:           end
84:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.