Class: SequelRails::Storage::Jdbc

Inherits:
Abstract
  • Object
show all
Defined in:
lib/sequel_rails/storage/jdbc.rb

Instance Attribute Summary

Attributes inherited from Abstract

#config

Instance Method Summary collapse

Methods inherited from Abstract

#charset, #close_connections, #create, #database, #drop, #dump, #host, #initialize, #load, #owner, #password, #port, #username

Constructor Details

This class inherits a constructor from SequelRails::Storage::Abstract

Instance Method Details

#_createObject



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sequel_rails/storage/jdbc.rb', line 29

def _create
  if _is_sqlite?
    return if in_memory?
    ::Sequel.connect config['url']
  elsif _is_mysql?
    ::Sequel.connect("#{_root_url}#{_params}") do |db|
      db.execute("CREATE DATABASE IF NOT EXISTS `#{db_name}` DEFAULT CHARACTER SET #{charset} DEFAULT COLLATE #{collation}")
    end
  elsif _is_postgres?
    system("createdb #{db_name}")
  end
end

#_dropObject



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/sequel_rails/storage/jdbc.rb', line 42

def _drop
  if _is_sqlite?
    return if in_memory?
    ::Sequel.connect config['url']
  elsif _is_mysql?
    ::Sequel.connect("#{_root_url}#{_params}") do |db|
      db.execute("DROP DATABASE IF EXISTS `#{db_name}`")
    end
  elsif _is_postgres?
    system("dropdb #{db_name}")
  end
end

#_is_mysql?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/sequel_rails/storage/jdbc.rb', line 5

def _is_mysql?
  config['adapter'].match(/^jdbc:mysql/)
end

#_is_postgres?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/sequel_rails/storage/jdbc.rb', line 9

def _is_postgres?
  config['adapter'].match(/^jdbc:postgresql/)
end

#_is_sqlite?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/sequel_rails/storage/jdbc.rb', line 13

def _is_sqlite?
  config['adapter'].match(/^jdbc:sqlite/)
end

#_paramsObject



25
26
27
# File 'lib/sequel_rails/storage/jdbc.rb', line 25

def _params
  config['url'].scan(/\?.*$/).first
end

#_root_urlObject



17
18
19
# File 'lib/sequel_rails/storage/jdbc.rb', line 17

def _root_url
  config['url'].scan(/^jdbc:mysql:\/\/\w*:?\d*/).first
end

#db_nameObject



21
22
23
# File 'lib/sequel_rails/storage/jdbc.rb', line 21

def db_name
  config['database']
end