sqlui 0.1.7 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sqlui.rb +13 -11
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 428bf7cc27927c4639b1f03f645a10b7885c0413574ca09e405233573f20214a
4
- data.tar.gz: 74c6979b878bf52f5bd524960bba24a37c6e586421c991614df1496383717a28
3
+ metadata.gz: 419351d0941030d9b1ab17842fd289a7550a6b78a45d59213e2143b29442e363
4
+ data.tar.gz: 7c66542a8e6503c7a38f05f5fc02fc17e022c08cf0303f411053968d4138e683
5
5
  SHA512:
6
- metadata.gz: 99407ce252d89559853785e6e7ee70b93d0661d6005cf04465640936d3b4fcec455bc1806d18dd17e8d133bf1859c04072e8ffbd19ca9f6bc01c03a30163b928
7
- data.tar.gz: 33fd47d3d88fddcc38b3b252e7341dbd4f99d93b4fd52665ba3f2c4a58acabbf5c7052d0430cfd71c92053755f85e44be80d2e15d7a33879c19e00d2c89cf9ea
6
+ metadata.gz: 1fd9196bda8b7ba45082d03a8a0bc2606875cc0ca0b38371b4c3e924b612eb4d6d148452bfde1ba6a06ca75c4132f48312defe447dd64aaa4e94a19bdf0189fb
7
+ data.tar.gz: de9b1c4ceb3caaf8a364a1964214002cd73161911aedd194fda78a72d24ea843e09982c86234e5265ee2dc55cabd396f6b209bf0a11689175e0da04b04fffeda
data/lib/sqlui.rb CHANGED
@@ -5,11 +5,11 @@ require 'set'
5
5
  class SQLUI
6
6
  MAX_ROWS = 1_000
7
7
 
8
- def initialize(name:, saved_path:, max_rows: MAX_ROWS, &block)
8
+ def initialize(client:, name:, saved_path:, max_rows: MAX_ROWS)
9
+ @client = client
9
10
  @name = name
10
11
  @saved_path = saved_path
11
12
  @max_rows = max_rows
12
- @queryer = block
13
13
  @resources_dir = File.join(File.expand_path('..', File.dirname(__FILE__)), 'resources')
14
14
  end
15
15
 
@@ -77,7 +77,7 @@ class SQLUI
77
77
  end
78
78
 
79
79
  def load_metadata
80
- stats_result = @queryer.call(
80
+ stats_result = @client.query(
81
81
  <<~SQL
82
82
  select
83
83
  table_schema,
@@ -131,7 +131,7 @@ class SQLUI
131
131
  column[:column_name] = row['column_name']
132
132
  end
133
133
 
134
- column_result = @queryer.call(
134
+ column_result = @client.query(
135
135
  <<~SQL
136
136
  select
137
137
  table_schema,
@@ -173,14 +173,16 @@ class SQLUI
173
173
  end
174
174
 
175
175
  def execute_query(sql)
176
- result = @queryer.call(sql)
177
- rows = result.rows
178
- column_types = result.columns.map { |_| 'string' }
176
+ result = @client.query(sql)
177
+ rows = result.map { |row| row.values }
178
+ columns = result.first&.keys || []
179
+ column_types = columns.map { |_| 'string' }
179
180
  unless rows.empty?
180
- maybe_non_null_column_value_exemplars = result.columns.each_with_index.map do |_, index|
181
- rows.find do |row|
181
+ maybe_non_null_column_value_exemplars = columns.each_with_index.map do |_, index|
182
+ row = rows.find do |row|
182
183
  !row[index].nil?
183
- end.try(:[], index)
184
+ end
185
+ row.nil? ? nil : row[index]
184
186
  end
185
187
  column_types = maybe_non_null_column_value_exemplars.map do |value|
186
188
  case value
@@ -197,7 +199,7 @@ class SQLUI
197
199
  end
198
200
  {
199
201
  query: sql,
200
- columns: result.columns,
202
+ columns: columns,
201
203
  column_types: column_types,
202
204
  total_rows: rows.size,
203
205
  rows: rows.take(@max_rows)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqlui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Dower