Module: Ca::DataStore::Ar

Includes:
TR::CondUtils, TeLogger::TeLogHelper
Defined in:
lib/ca/data_store/ar.rb,
lib/ca/data_store/ar/version.rb,
lib/ca/data_store/ar/provider.rb,
lib/ca/data_store/ar/model_base.rb,
lib/ca/data_store/ar/console_helper.rb,
lib/ca/data_store/ar/domain_config_registrar.rb,
lib/ca/data_store/ar/migration/migration_helper.rb

Defined Under Namespace

Modules: ConsoleHelper, MigrationHelper Classes: DomainConfigRegistrar, Error, MigrateError, Model, Provider

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.connectdb(domain = :default, &block) ⇒ Object

Raises:



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/ca/data_store/ar.rb', line 63

def Ar.connectdb(domain = :default, &block)
  raise Ar::Error, "Domain must be given" if is_empty?(domain)

  dbConfig = domain_config.domain_config_path(domain)
  dbConfig = File.expand_path(dbConfig) if not_empty?(dbConfig)

  teLogger.debug "dbConfig at : '#{dbConfig}'"

  if File.exist?(dbConfig)
    File.open(dbConfig,"r") do |f|
      @conf = YAML.load(f.read)
    end
    
    if block
      env = block.call(:env)
    end
    env = "development" if is_empty?(env)

    teLogger.debug "db env : #{env} / #{@conf[env.to_s]}"
    ActiveRecord::Base.establish_connection(@conf[env.to_s])

  else
    teLogger.warn "Skipped ActiveRecord connection since config file not available at '#{path}'"
  end

end

.disconnectdbObject



90
91
92
93
# File 'lib/ca/data_store/ar.rb', line 90

def Ar.disconnectdb
  ActiveRecord::Base.remove_connection
  #ActiveRecord::Base.connection_pool.active_connection?.try(:disconnect) 
end

.domain_config_path(domain) ⇒ Object



59
60
61
# File 'lib/ca/data_store/ar.rb', line 59

def Ar.domain_config_path(domain)
  domain_config.domain_config_path(domain)
end

.is_domain_registered?(domain) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/ca/data_store/ar.rb', line 55

def Ar.is_domain_registered?(domain)
  domain_config.is_domain_registered?(domain)
end

.load_model(path) ⇒ Object



43
44
45
46
47
48
# File 'lib/ca/data_store/ar.rb', line 43

def Ar.load_model(path)
  mpath = File.expand_path(path)
  Dir.glob(File.join(mpath,"*.rb")) do |m|
    require m
  end
end

.load_tasksObject



36
37
38
39
40
41
# File 'lib/ca/data_store/ar.rb', line 36

def Ar.load_tasks
  Dir.glob(File.join(File.dirname(__FILE__),"..","..","..","tasks","*.rake")) do |rf|
    fp = File.expand_path(rf)
    load fp
  end
end

.register_domain(domain, path, &block) ⇒ Object



50
51
52
53
# File 'lib/ca/data_store/ar.rb', line 50

def Ar.register_domain(domain, path,  &block)
  domain_config.register_domain(domain, path) 
  domain_config.save
end

.show_log(out = nil) ⇒ Object



95
96
97
# File 'lib/ca/data_store/ar.rb', line 95

def Ar.show_log(out = nil)
  ActiveRecord::Base.logger = TeLogger::Tlogger.new(out)
end