mode 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f79719aeee1b231678a845b20822da9d23adfa88
4
- data.tar.gz: 923422856ba88ce2e6b4a0c0036848982f1615d5
3
+ metadata.gz: 501bc9af067604c1d9f2832eabe69377aa852a32
4
+ data.tar.gz: 83462099c7828196e141d87af6092bb3cc652f40
5
5
  SHA512:
6
- metadata.gz: 4f26aa68bd1871d9d9483dd9a48cdd3cdc064f5cfa8e9bb8cd46c5d3eb63ac09fa5933f2bc3680c07fbd20b4817f3819ca10b771fe55d0aab7f74238f5ad3374
7
- data.tar.gz: 8a2a26041037d95ba48d6ab6f9077d5960364f7f21aa7c2a6e6f7f57d03134f1bfe1f8f2ab5c94f7e72bbd7b954568f64d214f35e304e4bbd73aeffa9d763dbc
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
- data_source.select(columns_query) do |column|
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
@@ -83,10 +83,10 @@ module Mode
83
83
  end
84
84
 
85
85
  # Gotta catch 'em all!
86
- tables << current_table.dup
86
+ tables << current_table.dup unless current_table.nil?
87
87
 
88
88
  tables
89
89
  end
90
90
  end
91
91
  end
92
- end
92
+ end
data/lib/mode/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mode
2
- VERSION = "0.0.19"
2
+ VERSION = "0.0.20"
3
3
  end
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.19
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-26 00:00:00.000000000 Z
11
+ date: 2014-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thor
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: terminal-table
28
+ name: thor
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
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: '0'
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