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, #host, #initialize, #owner, #password, #port, #username

Constructor Details

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

Instance Method Details

#_createObject



21
22
23
24
25
26
27
# File 'lib/sequel_rails/storage/jdbc.rb', line 21

def _create
  if _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
  end
end

#_dropObject



29
30
31
32
33
34
35
# File 'lib/sequel_rails/storage/jdbc.rb', line 29

def _drop
  if _is_mysql?
    ::Sequel.connect("#{_root_url}#{_params}") do |db|
      db.execute("DROP DATABASE IF EXISTS `#{db_name}`")
    end
  end
end

#_is_mysql?Boolean

Returns:

  • (Boolean)


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

def _is_mysql?
  database.match(/^jdbc:mysql/)
end

#_paramsObject



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

def _params
  database.scan(/\?.*$/)
end

#_root_urlObject



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

def _root_url
  database.scan(/^jdbc:mysql:\/\/\w*:?\d*/)
end

#db_nameObject



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

def db_name
  database.scan(/^jdbc:mysql:\/\/\w+:?\d*\/(\w+)/).flatten.first
end