knjrbfw 0.0.97 → 0.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/knjrbfw.gemspec +2 -2
- data/lib/knj/knj.rb +3 -1
- data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +55 -53
- metadata +3 -3
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.98
|
data/knjrbfw.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = "knjrbfw"
|
|
8
|
-
s.version = "0.0.
|
|
8
|
+
s.version = "0.0.98"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Kasper Johansen"]
|
|
12
|
-
s.date = "2012-09-
|
|
12
|
+
s.date = "2012-09-18"
|
|
13
13
|
s.description = "Including stuff for HTTP, SSH and much more."
|
|
14
14
|
s.email = "k@spernj.org"
|
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/knj/knj.rb
CHANGED
|
@@ -46,7 +46,9 @@ module Knj
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
#Loads a gem by a given name. First tries to load the gem from a custom parent directory to enable loading of development-gems.
|
|
49
|
-
def self.gem_require(gem_const, gem_name)
|
|
49
|
+
def self.gem_require(gem_const, gem_name = nil)
|
|
50
|
+
gem_name = gem_const.to_s.downcase.strip if !gem_name
|
|
51
|
+
|
|
50
52
|
#Return false if the constant is already loaded.
|
|
51
53
|
return false if ::Kernel.const_defined?(gem_const)
|
|
52
54
|
|
|
@@ -47,63 +47,65 @@ class KnjDB_mysql
|
|
|
47
47
|
|
|
48
48
|
#Respawns the connection to the MySQL-database.
|
|
49
49
|
def reconnect
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
@mutex.synchronize do
|
|
51
|
+
case @subtype
|
|
52
|
+
when "mysql"
|
|
53
|
+
@conn = Mysql.real_connect(@knjdb.opts[:host], @knjdb.opts[:user], @knjdb.opts[:pass], @knjdb.opts[:db], @port)
|
|
54
|
+
when "mysql2"
|
|
55
|
+
require "rubygems"
|
|
56
|
+
require "mysql2"
|
|
57
|
+
|
|
58
|
+
args = {
|
|
59
|
+
:host => @knjdb.opts[:host],
|
|
60
|
+
:username => @knjdb.opts[:user],
|
|
61
|
+
:password => @knjdb.opts[:pass],
|
|
62
|
+
:database => @knjdb.opts[:db],
|
|
63
|
+
:port => @port,
|
|
64
|
+
:symbolize_keys => true,
|
|
65
|
+
:cache_rows => false
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
#Symbolize keys should also be given here, else table-data wont be symbolized for some reason - knj.
|
|
69
|
+
@query_args = {:symbolize_keys => true}
|
|
70
|
+
@query_args.merge!(@knjdb.opts[:query_args]) if @knjdb.opts[:query_args]
|
|
71
|
+
|
|
72
|
+
pos_args = [:as, :async, :cast_booleans, :database_timezone, :application_timezone, :cache_rows, :connect_flags, :cast]
|
|
73
|
+
pos_args.each do |key|
|
|
74
|
+
args[key] = @knjdb.opts[key] if @knjdb.opts.key?(key)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
args[:as] = :array if @opts[:result] == "array"
|
|
78
|
+
|
|
79
|
+
tries = 0
|
|
80
|
+
begin
|
|
81
|
+
tries += 1
|
|
82
|
+
@conn = Mysql2::Client.new(args)
|
|
83
|
+
rescue => e
|
|
84
|
+
if tries <= 3
|
|
85
|
+
if e.message == "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)"
|
|
86
|
+
sleep 1
|
|
87
|
+
retry
|
|
88
|
+
end
|
|
87
89
|
end
|
|
90
|
+
|
|
91
|
+
raise e
|
|
92
|
+
end
|
|
93
|
+
when "java"
|
|
94
|
+
if !@jdbc_loaded
|
|
95
|
+
require "java"
|
|
96
|
+
require "/usr/share/java/mysql-connector-java.jar" if File.exists?("/usr/share/java/mysql-connector-java.jar")
|
|
97
|
+
import "com.mysql.jdbc.Driver"
|
|
98
|
+
@jdbc_loaded = true
|
|
88
99
|
end
|
|
89
100
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
@jdbc_loaded = true
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
@conn = java.sql::DriverManager.getConnection("jdbc:mysql://#{@knjdb.opts[:host]}:#{@port}/#{@knjdb.opts[:db]}?user=#{@knjdb.opts[:user]}&password=#{@knjdb.opts[:pass]}&populateInsertRowWithDefaultValues=true&zeroDateTimeBehavior=round&characterEncoding=#{@encoding}&holdResultsOpenOverStatementClose=true")
|
|
101
|
-
self.query("SET SQL_MODE = ''")
|
|
102
|
-
else
|
|
103
|
-
raise "Unknown subtype: #{@subtype}"
|
|
101
|
+
@conn = java.sql::DriverManager.getConnection("jdbc:mysql://#{@knjdb.opts[:host]}:#{@port}/#{@knjdb.opts[:db]}?user=#{@knjdb.opts[:user]}&password=#{@knjdb.opts[:pass]}&populateInsertRowWithDefaultValues=true&zeroDateTimeBehavior=round&characterEncoding=#{@encoding}&holdResultsOpenOverStatementClose=true")
|
|
102
|
+
self.query("SET SQL_MODE = ''")
|
|
103
|
+
else
|
|
104
|
+
raise "Unknown subtype: #{@subtype}"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
self.query("SET NAMES '#{self.esc(@encoding)}'") if @encoding
|
|
104
108
|
end
|
|
105
|
-
|
|
106
|
-
self.query("SET NAMES '#{self.esc(@encoding)}'") if @encoding
|
|
107
109
|
end
|
|
108
110
|
|
|
109
111
|
#Executes a query and returns the result.
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: knjrbfw
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.0.
|
|
5
|
+
version: 0.0.98
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Kasper Johansen
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2012-09-
|
|
13
|
+
date: 2012-09-18 00:00:00 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: wref
|
|
@@ -390,7 +390,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
390
390
|
requirements:
|
|
391
391
|
- - ">="
|
|
392
392
|
- !ruby/object:Gem::Version
|
|
393
|
-
hash:
|
|
393
|
+
hash: 73923719738851392
|
|
394
394
|
segments:
|
|
395
395
|
- 0
|
|
396
396
|
version: "0"
|