sqlui 0.1.7 → 0.1.9

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