slyce 0.9.8 → 0.9.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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/slyce +8 -14
  3. data/bin/slyce3 +8 -14
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4b3343260618e644b563f9b03b2817796a8439727c753dacf59a93e11bd04af
4
- data.tar.gz: 5b9d02e5e596ccf9b32d54f54bd35cb79b86242c9ab1924a46f79cfdd4efb12f
3
+ metadata.gz: 3e12e5c9ffea5f786419c30b2cca3fc8a7dacf2f3a389e28f30b23595a813574
4
+ data.tar.gz: 8f25aeac74b908508787b68ad352948e6aed14cbd35d3efa67e9a34aed4fb350
5
5
  SHA512:
6
- metadata.gz: a942b4899789d36ee3a65afbdd4f38308e3438d46a1bdab18a99af94ed2cae00de3ffb282e2ec22eaaf14d341909c623085fa7bf0273753b4bcd915613812235
7
- data.tar.gz: 59397e8e24245ea8a42030721911c3dc20011d54d67f0b680b96db16154d95d98897705a166339bdf8fc495828b9f25da5a8a0fc8c51caa101b674cd0633eadc
6
+ metadata.gz: 7182a32b9b2734f8813e6741ea562333f78809607c708b4bd08e08ed16df29a737f1966cbbec0e26b50ae12c818a0bfef5651757d0b08ec3d2890e90d10c1149
7
+ data.tar.gz: 7563b2004ca166a364de70fa42a20739c4f9f1e26f39ccc22cf0cf7d2ae81111c67adbec2c59f1afeb379549ee50689f2f21527ce5327b0e2dd32b6fa743fcbb
data/bin/slyce CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- VERSION="0.9.8"
3
+ VERSION="0.9.9"
4
4
 
5
5
  STDOUT.sync = true
6
6
 
@@ -15,19 +15,19 @@ tabl = nil
15
15
  OptionParser.new.instance_eval do
16
16
  @banner = "usage: #{program_name} [options] <database> <table>"
17
17
 
18
- on "-a", "--alpha" , "Sort alphabetically, not numerically"
19
18
  on "-c", "--columns" , "Display column names and quit"
20
19
  on "-h", "--help" , "Show help and command usage" do Kernel.abort to_s; end
20
+ on "-n", "--natural" , "Sort naturally, not numerically",
21
21
  on "-s", "--show <count>" , "Show this many values", Integer
22
22
  on "-v", "--version" , "Show version number" do Kernel.abort "#{program_name} #{VERSION}"; end
23
- on "-w", "--where <cond>" , "Filter rows (eg - 'age=33,Name=/[BW]ill/i,color=\"\"'"
23
+ on "-w", "--where <cond>" , "Where clause (eg - 'age>50 and state='AZ')"
24
24
  on "-x", "--extract <col1,col2,...>", "Comma separated list of columns to extract"
25
25
 
26
26
  self
27
27
  end.parse!(into: opts={}) rescue abort($!.message)
28
28
 
29
- abcd = opts[:alpha]
30
29
  filt = opts[:where] and filt = "where\n #{filt}"
30
+ natu = opts[:natural]
31
31
  show = opts[:show]
32
32
  want = opts[:extract].to_s.downcase.split(",")
33
33
 
@@ -57,7 +57,7 @@ def display(name, data, show, uniq, tots)
57
57
  puts "\n#{fill} #{name}\n#{fill} #{line}\n"
58
58
  data.each {|cnt, val| puts "%*d %s" % [wide, cnt, val || "NULL"] }
59
59
  puts "#{fill} -----\n"
60
- puts "%*d shown (top %d)" % [wide, rows, rows] if show
60
+ puts "%*d shown (top %d)" % [wide, seen, rows] if show
61
61
  puts "%*d total (all %d)" % [wide, tots, uniq]
62
62
  end
63
63
 
@@ -78,7 +78,7 @@ if want.empty?
78
78
  end
79
79
 
80
80
  want.each do |name|
81
- sort = abcd ? "" : "cnt desc,"
81
+ sort = natu ? "" : "cnt desc,"
82
82
  stmt = show ? "limit #{show}" : ""
83
83
  data = conn.sql(<<~"" + stmt).to_a
84
84
  select
@@ -95,15 +95,9 @@ want.each do |name|
95
95
  -if(regexp_like(`#{name}`, '^\\\\d'), regexp_instr(`#{name}`, '[^\\\\d]'), null) desc,
96
96
  `#{name}` is null, `#{name}`
97
97
 
98
- uniq = conn.sql(<<~"").to_a[0][0]
99
- select
100
- count(distinct(ifnull(`#{name}`,0)))
101
- from
102
- `#{tabl}`
103
- #{filt}
104
-
105
- tots = conn.sql(<<~"").to_a[0][0]
98
+ uniq, tots = conn.sql(<<~"").to_a[0]
106
99
  select
100
+ count(distinct(ifnull(`#{name}`,0))),
107
101
  count(ifnull(`#{name}`,0))
108
102
  from
109
103
  `#{tabl}`
data/bin/slyce3 CHANGED
@@ -9,7 +9,7 @@
9
9
  # wget https://github.com/nalgeon/sqlean/releases/download/0.19.3/sqlean-macos-arm64.zip
10
10
  # unzip sqlean-macos-arm64.zip regexp.dylib
11
11
 
12
- VERSION="0.9.8"
12
+ VERSION="0.9.9"
13
13
 
14
14
  STDOUT.sync = true
15
15
 
@@ -24,20 +24,20 @@ tabl = nil
24
24
  OptionParser.new.instance_eval do
25
25
  @banner = "usage: #{program_name} [options] <database> <table>"
26
26
 
27
- on "-a", "--alpha" , "Sort alphabetically, not numerically"
28
27
  on "-c", "--columns" , "Display column names and quit"
29
28
  on "-h", "--help" , "Show help and command usage" do Kernel.abort to_s; end
29
+ on "-n", "--natural" , "Sort naturally, not numerically",
30
30
  on "-r", "--regexp <path>" , "Path to the sqlean/regexp extension"
31
31
  on "-s", "--show <count>" , "Show this many values", Integer
32
32
  on "-v", "--version" , "Show version number" do Kernel.abort "#{program_name} #{VERSION}"; end
33
- on "-w", "--where <cond>" , "Filter rows (eg - 'age=33,Name=/[BW]ill/i,color=\"\"'"
33
+ on "-w", "--where <cond>" , "Where clause (eg - 'age>50 and state='AZ')"
34
34
  on "-x", "--extract <col1,col2,...>", "Comma separated list of columns to extract"
35
35
 
36
36
  self
37
37
  end.parse!(into: opts={}) rescue abort($!.message)
38
38
 
39
- abcd = opts[:alpha]
40
39
  filt = opts[:where] and filt = "where\n #{filt}"
40
+ natu = opts[:natural]
41
41
  regx = opts[:regexp] || Dir["{,sqlean}/regexp.{dll,dylib,so}"].first
42
42
  show = opts[:show]
43
43
  want = opts[:extract].to_s.downcase.split(",")
@@ -70,7 +70,7 @@ def display(name, data, show, uniq, tots)
70
70
  puts "\n#{fill} #{name}\n#{fill} #{line}\n"
71
71
  data.each {|cnt, val| puts "%*d %s" % [wide, cnt, val || "NULL"] }
72
72
  puts "#{fill} -----\n"
73
- puts "%*d shown (top %d)" % [wide, rows, rows] if show
73
+ puts "%*d shown (top %d)" % [wide, seen, rows] if show
74
74
  puts "%*d total (all %d)" % [wide, tots, uniq]
75
75
  end
76
76
 
@@ -91,7 +91,7 @@ if want.empty?
91
91
  end
92
92
 
93
93
  want.each do |name|
94
- sort = abcd ? "" : "cnt desc,"
94
+ sort = natu ? "" : "cnt desc,"
95
95
  stmt = show ? "limit #{show}" : ""
96
96
  data = conn.sql(<<~"" + stmt).to_a
97
97
  select
@@ -109,15 +109,9 @@ want.each do |name|
109
109
  `#{name}` is null, `#{name}`
110
110
  collate nocase
111
111
 
112
- uniq = conn.sql(<<~"").to_a[0][0]
113
- select
114
- count(distinct(ifnull(`#{name}`,0)))
115
- from
116
- `#{tabl}`
117
- #{filt}
118
-
119
- tots = conn.sql(<<~"").to_a[0][0]
112
+ uniq, tots = conn.sql(<<~"").to_a[0]
120
113
  select
114
+ count(distinct(ifnull(`#{name}`,0))),
121
115
  count(ifnull(`#{name}`,0))
122
116
  from
123
117
  `#{tabl}`
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slyce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.8
4
+ version: 0.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-11 00:00:00.000000000 Z
11
+ date: 2023-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: extralite-bundle