Class: Rails::Sequel::Storage::Jdbc

Inherits:
Rails::Sequel::Storage show all
Defined in:
lib/sequel-rails/storage.rb

Instance Attribute Summary

Attributes inherited from Rails::Sequel::Storage

#config

Instance Method Summary collapse

Methods inherited from Rails::Sequel::Storage

#charset, #create, create_all, create_environment, #database, #drop, drop_all, drop_environment, #initialize, new, #password, #username

Constructor Details

This class inherits a constructor from Rails::Sequel::Storage

Instance Method Details

#_createObject



183
184
185
186
187
188
189
# File 'lib/sequel-rails/storage.rb', line 183

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



191
192
193
194
195
196
197
# File 'lib/sequel-rails/storage.rb', line 191

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)


167
168
169
# File 'lib/sequel-rails/storage.rb', line 167

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

#_paramsObject



179
180
181
# File 'lib/sequel-rails/storage.rb', line 179

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

#_root_urlObject



171
172
173
# File 'lib/sequel-rails/storage.rb', line 171

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

#db_nameObject



175
176
177
# File 'lib/sequel-rails/storage.rb', line 175

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