aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2017-04-29 22:58:11 +0200
committerTeddy Wing2017-04-29 22:58:11 +0200
commitfb9ff6eb8cbad57b3ca2bbd58dc098f208edd1e1 (patch)
tree3af3a4176ecc848d7f280c29fb90eaf64fee7eff
parent56a002d2681431b34be36cf7247dc41a313601d9 (diff)
downloaddbshell-rails-fb9ff6eb8cbad57b3ca2bbd58dc098f208edd1e1.tar.bz2
Integrate MySQL support
* Create a `.runshell()` method in `DBShell::Client::MySQL` * Delegate to that class & method from `DBShell::Client::Database`
-rw-r--r--lib/dbshell/client/database.rb3
-rw-r--r--lib/dbshell/client/mysql.rb5
-rw-r--r--spec/dbshell/client/database_spec.rb6
3 files changed, 14 insertions, 0 deletions
diff --git a/lib/dbshell/client/database.rb b/lib/dbshell/client/database.rb
index 86cbfef..b6be74b 100644
--- a/lib/dbshell/client/database.rb
+++ b/lib/dbshell/client/database.rb
@@ -1,5 +1,6 @@
require 'dbshell/client/sqlite3'
require 'dbshell/client/postgres'
+require 'dbshell/client/mysql'
module DBShell
module Client
@@ -10,6 +11,8 @@ module DBShell
DBShell::Client::SQLite3
when 'postgresql'
DBShell::Client::Postgres
+ when 'mysql2'
+ DBShell::Client::MySQL
else
raise UnsupportedDatabaseAdapter
end
diff --git a/lib/dbshell/client/mysql.rb b/lib/dbshell/client/mysql.rb
index 6cb8233..536186a 100644
--- a/lib/dbshell/client/mysql.rb
+++ b/lib/dbshell/client/mysql.rb
@@ -3,6 +3,11 @@ module DBShell
class MySQL
EXECUTABLE_NAME = 'mysql'
+ def self.runshell(db_info)
+ args = self.build_command(db_info)
+ exec(*args)
+ end
+
def self.build_command(db_info)
args = [EXECUTABLE_NAME]
diff --git a/spec/dbshell/client/database_spec.rb b/spec/dbshell/client/database_spec.rb
index d553871..0670334 100644
--- a/spec/dbshell/client/database_spec.rb
+++ b/spec/dbshell/client/database_spec.rb
@@ -15,6 +15,12 @@ describe DBShell::Client::Database do
}).must_equal(DBShell::Client::Postgres)
end
+ it "handles MySQL" do
+ DBShell::Client::Database.handler({
+ 'adapter' => 'mysql2'
+ }).must_equal(DBShell::Client::MySQL)
+ end
+
it "raises an error if no suitable adapter is found" do
proc do
DBShell::Client::Database.handler({