mode 0.0.19 → 0.0.20
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.
- checksums.yaml +4 -4
- data/lib/mode/connector/data_sources/base.rb +3 -2
- data/lib/mode/connector/databases/rdbms.rb +43 -2
- data/lib/mode/connector/registrar.rb +2 -2
- data/lib/mode/version.rb +1 -1
- data/mode.gemspec +7 -4
- metadata +50 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 501bc9af067604c1d9f2832eabe69377aa852a32
|
4
|
+
data.tar.gz: 83462099c7828196e141d87af6092bb3cc652f40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f4e66ca3d14ff6c8f39da90cc2f9a008e62ba87f017b7b04cffc7ab49b166e66c27e627a9f9debaba9dd95b5a4e5c927b6c80d0696471ef140d1b5765e63195
|
7
|
+
data.tar.gz: cd677664533e1b7cc87bb94af95b8a87c2b34a523559bc10707f93212367ce425fdce277bbf1a0df2dd31e990567e92abb7a7b0f035274d81acc91a0f2cc56e0
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'sequel'
|
2
|
+
require 'sequel/adapters/jdbc' if RUBY_PLATFORM == 'java'
|
2
3
|
|
3
4
|
module Mode
|
4
5
|
module Connector
|
@@ -82,7 +83,7 @@ module Mode
|
|
82
83
|
def oracle?
|
83
84
|
['oracle', 'jdbc:oracle:thin', 'jdbc:oracle:oci8'].include?(adapter)
|
84
85
|
end
|
85
|
-
|
86
|
+
|
86
87
|
def sqlserver?
|
87
88
|
['tiny_tds', 'jdbc:sqlserver', 'jdbc:jtds:sqlserver'].include?(adapter)
|
88
89
|
end
|
@@ -188,4 +189,4 @@ module Mode
|
|
188
189
|
end
|
189
190
|
end
|
190
191
|
end
|
191
|
-
end
|
192
|
+
end
|
@@ -15,7 +15,11 @@ module Mode
|
|
15
15
|
#
|
16
16
|
def columns
|
17
17
|
columns = []
|
18
|
-
|
18
|
+
|
19
|
+
# TEMP: the hottest of fixes
|
20
|
+
query = data_source.mysql? ? mysql_columns_query : columns_query
|
21
|
+
|
22
|
+
data_source.select(query) do |column|
|
19
23
|
columns << column
|
20
24
|
end
|
21
25
|
columns
|
@@ -63,7 +67,44 @@ module Mode
|
|
63
67
|
ORDER BY c.table_name, c.table_schema, c.column_name
|
64
68
|
}
|
65
69
|
end
|
70
|
+
|
71
|
+
def mysql_columns_query
|
72
|
+
%{
|
73
|
+
SELECT c.table_name,
|
74
|
+
c.table_schema,
|
75
|
+
c.column_name,
|
76
|
+
c.data_type,
|
77
|
+
CASE WHEN c.is_nullable = 'NO'
|
78
|
+
THEN FALSE
|
79
|
+
ELSE TRUE
|
80
|
+
END AS is_nullable,
|
81
|
+
CASE WHEN kc.name IS NULL
|
82
|
+
THEN FALSE
|
83
|
+
ELSE TRUE
|
84
|
+
END AS primary_key
|
85
|
+
FROM information_schema.columns c
|
86
|
+
LEFT JOIN (
|
87
|
+
SELECT kc.column_name AS name,
|
88
|
+
kc.table_catalog,
|
89
|
+
kc.table_schema,
|
90
|
+
kc.table_name
|
91
|
+
FROM information_schema.table_constraints c
|
92
|
+
LEFT JOIN information_schema.key_column_usage kc
|
93
|
+
ON c.table_schema = kc.table_schema
|
94
|
+
AND c.table_name = kc.table_name
|
95
|
+
AND c.constraint_name = kc.constraint_name
|
96
|
+
AND c.constraint_catalog = kc.table_catalog
|
97
|
+
WHERE c.constraint_type = 'PRIMARY KEY'
|
98
|
+
) kc
|
99
|
+
ON c.column_name = kc.name
|
100
|
+
AND c.table_catalog = kc.table_catalog
|
101
|
+
AND c.table_schema = kc.table_schema
|
102
|
+
AND c.table_name = kc.table_name
|
103
|
+
WHERE c.table_catalog = '#{database_name}'
|
104
|
+
ORDER BY c.table_name, c.table_schema, c.column_name
|
105
|
+
}
|
106
|
+
end
|
66
107
|
end
|
67
108
|
end
|
68
109
|
end
|
69
|
-
end
|
110
|
+
end
|
data/lib/mode/version.rb
CHANGED
data/mode.gemspec
CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
# CLI
|
22
|
-
spec.add_runtime_dependency "thor"
|
23
22
|
spec.add_runtime_dependency "terminal-table"
|
23
|
+
spec.add_runtime_dependency "thor", '~> 0.19.1'
|
24
24
|
|
25
25
|
# Web UI
|
26
26
|
spec.add_runtime_dependency "sinatra"
|
@@ -34,13 +34,16 @@ Gem::Specification.new do |spec|
|
|
34
34
|
# Connectivity
|
35
35
|
spec.add_runtime_dependency "sequel"
|
36
36
|
|
37
|
+
if RUBY_PLATFORM == 'java'
|
38
|
+
spec.add_runtime_dependency 'jdbc-mysql'
|
39
|
+
spec.add_runtime_dependency 'jdbc-postgres'
|
40
|
+
spec.add_runtime_dependency 'jdbc-jtds'
|
41
|
+
end
|
42
|
+
|
37
43
|
# Concurrency & Processes
|
38
44
|
spec.add_runtime_dependency "spoon"
|
39
45
|
spec.add_runtime_dependency "rufus-scheduler"
|
40
46
|
|
41
|
-
# Web Management
|
42
|
-
# spec.add_runtime_dependency "launchy"
|
43
|
-
|
44
47
|
# Development Dependencies
|
45
48
|
spec.add_development_dependency "bundler", "~> 1.3"
|
46
49
|
spec.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mode Analytics
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: terminal-table
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
@@ -25,17 +25,17 @@ dependencies:
|
|
25
25
|
prerelease: false
|
26
26
|
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: thor
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.19.1
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
35
35
|
requirements:
|
36
|
-
- -
|
36
|
+
- - ~>
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
38
|
+
version: 0.19.1
|
39
39
|
prerelease: false
|
40
40
|
type: :runtime
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -122,6 +122,48 @@ dependencies:
|
|
122
122
|
version: '0'
|
123
123
|
prerelease: false
|
124
124
|
type: :runtime
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: jdbc-mysql
|
127
|
+
version_requirements: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
requirement: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
prerelease: false
|
138
|
+
type: :runtime
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: jdbc-postgres
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
requirement: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
prerelease: false
|
152
|
+
type: :runtime
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: jdbc-jtds
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
prerelease: false
|
166
|
+
type: :runtime
|
125
167
|
- !ruby/object:Gem::Dependency
|
126
168
|
name: spoon
|
127
169
|
version_requirements: !ruby/object:Gem::Requirement
|