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 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