Class: Ardb::Adapter::Base
- Inherits:
-
Object
- Object
- Ardb::Adapter::Base
show all
- Defined in:
- lib/ardb/adapter/base.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config) ⇒ Base
Returns a new instance of Base.
10
11
12
|
# File 'lib/ardb/adapter/base.rb', line 10
def initialize(config)
@config = config
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
8
9
10
|
# File 'lib/ardb/adapter/base.rb', line 8
def config
@config
end
|
Instance Method Details
#==(other) ⇒ Object
106
107
108
109
110
111
112
|
# File 'lib/ardb/adapter/base.rb', line 106
def ==(other)
if other.kind_of?(self.class)
self.config == other.config
else
super
end
end
|
#connect_db ⇒ Object
43
44
45
46
47
48
|
# File 'lib/ardb/adapter/base.rb', line 43
def connect_db
ActiveRecord::Base.establish_connection(self.connect_hash)
ActiveRecord::Base.connection_pool.with_connection{ }
end
|
#connect_hash ⇒ Object
14
|
# File 'lib/ardb/adapter/base.rb', line 14
def connect_hash; self.config.activerecord_connect_hash; end
|
#create_db(*args) ⇒ Object
38
|
# File 'lib/ardb/adapter/base.rb', line 38
def create_db(*args); raise NotImplementedError; end
|
#database ⇒ Object
15
|
# File 'lib/ardb/adapter/base.rb', line 15
def database; self.config.database; end
|
#drop_db(*args) ⇒ Object
39
|
# File 'lib/ardb/adapter/base.rb', line 39
def drop_db(*args); raise NotImplementedError; end
|
#drop_tables(*args) ⇒ Object
41
|
# File 'lib/ardb/adapter/base.rb', line 41
def drop_tables(*args); raise NotImplementedError; end
|
#dump_ruby_schema ⇒ Object
94
95
96
97
98
99
100
|
# File 'lib/ardb/adapter/base.rb', line 94
def dump_ruby_schema
require 'active_record/schema_dumper'
FileUtils.mkdir_p File.dirname(self.ruby_schema_path)
File.open(self.ruby_schema_path, 'w:utf-8') do |file|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
end
end
|
#dump_schema ⇒ Object
85
86
87
88
89
90
91
92
|
# File 'lib/ardb/adapter/base.rb', line 85
def dump_schema
current_stdout = $stdout.dup
$stdout = File.new('/dev/null', 'w')
dump_ruby_schema
dump_sql_schema if self.schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
$stdout = current_stdout
end
|
#dump_sql_schema ⇒ Object
102
103
104
|
# File 'lib/ardb/adapter/base.rb', line 102
def dump_sql_schema
raise NotImplementedError
end
|
#escape_like_pattern(pattern, escape_char = nil) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/ardb/adapter/base.rb', line 27
def escape_like_pattern(pattern, escape_char = nil)
escape_char ||= "\\"
pattern = pattern.to_s.dup
pattern.gsub!(escape_char){ escape_char * 2 }
pattern.gsub!(/%|_/){ |wildcard_char| "#{escape_char}#{wildcard_char}" }
end
|
#foreign_key_add_sql(*args) ⇒ Object
35
|
# File 'lib/ardb/adapter/base.rb', line 35
def foreign_key_add_sql(*args); raise NotImplementedError; end
|
#foreign_key_drop_sql(*args) ⇒ Object
36
|
# File 'lib/ardb/adapter/base.rb', line 36
def foreign_key_drop_sql(*args); raise NotImplementedError; end
|
#load_ruby_schema ⇒ Object
77
78
79
|
# File 'lib/ardb/adapter/base.rb', line 77
def load_ruby_schema
load self.ruby_schema_path
end
|
#load_schema ⇒ Object
68
69
70
71
72
73
74
75
|
# File 'lib/ardb/adapter/base.rb', line 68
def load_schema
current_stdout = $stdout.dup
$stdout = File.new('/dev/null', 'w')
load_ruby_schema if self.schema_format == Ardb::Config::RUBY_SCHEMA_FORMAT
load_sql_schema if self.schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
$stdout = current_stdout
end
|
#load_sql_schema ⇒ Object
81
82
83
|
# File 'lib/ardb/adapter/base.rb', line 81
def load_sql_schema
raise NotImplementedError
end
|
#migrate_db ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/ardb/adapter/base.rb', line 50
def migrate_db
verbose = ENV["MIGRATE_QUIET"].nil?
version = ENV["MIGRATE_VERSION"] ? ENV["MIGRATE_VERSION"].to_i : nil
if defined?(ActiveRecord::Migration::CommandRecorder)
require 'ardb/migration_helpers'
ActiveRecord::Migration::CommandRecorder.class_eval do
include Ardb::MigrationHelpers::RecorderMixin
end
end
ActiveRecord::Migrator.migrations_path = self.migrations_path
ActiveRecord::Migration.verbose = verbose
ActiveRecord::Migrator.migrate(self.migrations_path, version) do |migration|
ENV["MIGRATE_SCOPE"].blank? || (ENV["MIGRATE_SCOPE"] == migration.scope)
end
end
|
#migrations_path ⇒ Object
16
|
# File 'lib/ardb/adapter/base.rb', line 16
def migrations_path; self.config.migrations_path; end
|
#ruby_schema_path ⇒ Object
19
20
21
|
# File 'lib/ardb/adapter/base.rb', line 19
def ruby_schema_path
@ruby_schema_path ||= "#{self.config.schema_path}.rb"
end
|
17
|
# File 'lib/ardb/adapter/base.rb', line 17
def schema_format; self.config.schema_format; end
|
#sql_schema_path ⇒ Object
23
24
25
|
# File 'lib/ardb/adapter/base.rb', line 23
def sql_schema_path
@sql_schema_path ||= "#{self.config.schema_path}.sql"
end
|