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.
11
12
13
14
|
# File 'lib/ardb/adapter/base.rb', line 11
def initialize(config)
@config = config
validate!
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
9
10
11
|
# File 'lib/ardb/adapter/base.rb', line 9
def config
@config
end
|
Instance Method Details
#==(other) ⇒ Object
124
125
126
127
128
129
130
|
# File 'lib/ardb/adapter/base.rb', line 124
def ==(other)
if other.is_a?(self.class)
config == other.config
else
super
end
end
|
#connect_db ⇒ Object
61
62
63
64
65
66
|
# File 'lib/ardb/adapter/base.rb', line 61
def connect_db
ActiveRecord::Base.establish_connection(connect_hash)
ActiveRecord::Base.connection_pool.with_connection{}
end
|
#connect_hash ⇒ Object
16
17
18
|
# File 'lib/ardb/adapter/base.rb', line 16
def connect_hash
config.activerecord_connect_hash
end
|
#create_db(*args) ⇒ Object
49
50
51
|
# File 'lib/ardb/adapter/base.rb', line 49
def create_db(*args)
raise NotImplementedError
end
|
#database ⇒ Object
20
21
22
|
# File 'lib/ardb/adapter/base.rb', line 20
def database
config.database
end
|
#drop_db(*args) ⇒ Object
53
54
55
|
# File 'lib/ardb/adapter/base.rb', line 53
def drop_db(*args)
raise NotImplementedError
end
|
#drop_tables(*args) ⇒ Object
57
58
59
|
# File 'lib/ardb/adapter/base.rb', line 57
def drop_tables(*args)
raise NotImplementedError
end
|
#dump_ruby_schema ⇒ Object
112
113
114
115
116
117
118
|
# File 'lib/ardb/adapter/base.rb', line 112
def dump_ruby_schema
require "active_record/schema_dumper"
FileUtils.mkdir_p File.dirname(ruby_schema_path)
File.open(ruby_schema_path, "w:utf-8") do |file|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
end
end
|
#dump_schema ⇒ Object
104
105
106
107
108
109
110
|
# File 'lib/ardb/adapter/base.rb', line 104
def dump_schema
current_stdout = $stdout.dup $stdout = File.new("/dev/null", "w")
dump_ruby_schema
dump_sql_schema if schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
$stdout = current_stdout
end
|
#dump_sql_schema ⇒ Object
120
121
122
|
# File 'lib/ardb/adapter/base.rb', line 120
def dump_sql_schema
raise NotImplementedError
end
|
#escape_like_pattern(pattern, escape_char = nil) ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'lib/ardb/adapter/base.rb', line 40
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}" }
pattern
end
|
#load_ruby_schema ⇒ Object
96
97
98
|
# File 'lib/ardb/adapter/base.rb', line 96
def load_ruby_schema
load ruby_schema_path
end
|
#load_schema ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/ardb/adapter/base.rb', line 88
def load_schema
current_stdout = $stdout.dup $stdout = File.new("/dev/null", "w")
load_ruby_schema if schema_format == Ardb::Config::RUBY_SCHEMA_FORMAT
load_sql_schema if schema_format == Ardb::Config::SQL_SCHEMA_FORMAT
$stdout = current_stdout
end
|
#load_sql_schema ⇒ Object
100
101
102
|
# File 'lib/ardb/adapter/base.rb', line 100
def load_sql_schema
raise NotImplementedError
end
|
#migrate_db ⇒ Object
68
69
70
|
# File 'lib/ardb/adapter/base.rb', line 68
def migrate_db
migrate_db_up
end
|
#migrate_db_backward(steps = 1) ⇒ Object
84
85
86
|
# File 'lib/ardb/adapter/base.rb', line 84
def migrate_db_backward(steps = 1)
migration_context.rollback(steps)
end
|
#migrate_db_down(target_version = nil) ⇒ Object
76
77
78
|
# File 'lib/ardb/adapter/base.rb', line 76
def migrate_db_down(target_version = nil)
migration_context.down(target_version)
end
|
#migrate_db_forward(steps = 1) ⇒ Object
80
81
82
|
# File 'lib/ardb/adapter/base.rb', line 80
def migrate_db_forward(steps = 1)
migration_context.forward(steps)
end
|
#migrate_db_up(target_version = nil) ⇒ Object
72
73
74
|
# File 'lib/ardb/adapter/base.rb', line 72
def migrate_db_up(target_version = nil)
migration_context.up(target_version)
end
|
#migrations_path ⇒ Object
24
25
26
|
# File 'lib/ardb/adapter/base.rb', line 24
def migrations_path
config.migrations_path
end
|
#ruby_schema_path ⇒ Object
32
33
34
|
# File 'lib/ardb/adapter/base.rb', line 32
def ruby_schema_path
@ruby_schema_path ||= "#{config.schema_path}.rb"
end
|
28
29
30
|
# File 'lib/ardb/adapter/base.rb', line 28
def schema_format
config.schema_format
end
|
#sql_schema_path ⇒ Object
36
37
38
|
# File 'lib/ardb/adapter/base.rb', line 36
def sql_schema_path
@sql_schema_path ||= "#{config.schema_path}.sql"
end
|