Class: Prick::Database
- Inherits:
-
Object
show all
- Includes:
- Ensure
- Defined in:
- lib/prick/database.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Ensure
#ensure_state, #ensure_state_value, #revoke_state
Constructor Details
#initialize(name, user) ⇒ Database
Returns a new instance of Database.
9
10
11
12
13
|
# File 'lib/prick/database.rb', line 9
def initialize(name, user)
@name = name
@user = user
@version = nil
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
6
7
8
|
# File 'lib/prick/database.rb', line 6
def name
@name
end
|
#user ⇒ Object
Returns the value of attribute user.
7
8
9
|
# File 'lib/prick/database.rb', line 7
def user
@user
end
|
Instance Method Details
#create ⇒ Object
41
|
# File 'lib/prick/database.rb', line 41
def create() Rdbms.create_database(name, owner: user) end
|
#drop ⇒ Object
43
|
# File 'lib/prick/database.rb', line 43
def drop() Rdbms.drop_database(name, fail: false); @version = nil end
|
#load(file) ⇒ Object
46
|
# File 'lib/prick/database.rb', line 46
def load(file) Rdbms.load(name, file, user: user); @version = nil end
|
#loaded? ⇒ Boolean
45
|
# File 'lib/prick/database.rb', line 45
def loaded?() exist? && !version.nil? end
|
#recreate ⇒ Object
42
|
# File 'lib/prick/database.rb', line 42
def recreate() drop if exist?; create; @version = nil end
|
#save(file) ⇒ Object
48
|
# File 'lib/prick/database.rb', line 48
def save(file) Rdbms.save(name, file); @version = nil end
|
#version ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/prick/database.rb', line 15
def version
@version ||= begin
version =
if exist? && Rdbms.exist_table?(name, "prick", "versions")
Rdbms.select(name, "select version from prick.versions")&.first&.first
else
nil
end
version && Version.new(version)
end
end
|
#version=(version) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/prick/database.rb', line 27
def version=(version)
@version = version && Version.new(version)
Rdbms.exec_sql(name, %(
update prick.versions
set major = '#{@version.major}',
minor = '#{@version.minor}',
patch = '#{@version.patch}',
pre = '#{@version.pre}',
version = '#{@version.to_s}'
)) if @version
@version
end
|