slyce 0.9.0 → 0.9.1
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 +4 -4
- data/bin/slyce +9 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 057777cd908c785455b4ab4fc4c20b3aa545901bf552d0d1d568583424606103
|
4
|
+
data.tar.gz: 0cd8af51f8c809244bf308157d02adf5bcd4d0a6038acd2cb0abd73e9f609bd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10e034e61797fa5cbad886553f00ff4017e4c0a8a78d473ec2790ebe179a6d914f2194ca1d4c6283516fe39c69f8532ace24be807591431c2a52b1b202c48b78
|
7
|
+
data.tar.gz: 1115cb037df547637f2c0d3f67b41297c27e37fba4d4f12d8cfe0780c2fa962d9d75d7527a1dc232f22b30c0d5cf6ef60221b3113b08b4eae31a7a005218ef41
|
data/bin/slyce
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
STDOUT.sync = true
|
4
4
|
|
5
|
-
VERSION="0.9.
|
5
|
+
VERSION="0.9.1"
|
6
6
|
|
7
7
|
require "bundler/setup"
|
8
8
|
require "mysql2"
|
@@ -21,6 +21,7 @@ OptionParser.new.instance_eval do
|
|
21
21
|
on "-h", "--help" , "Show help and command usage" do Kernel.abort to_s; end
|
22
22
|
on "-s", "--show <count>" , "Show this many values", Integer
|
23
23
|
on "-v", "--version" , "Show version number" do Kernel.abort "#{program_name} #{VERSION}"; end
|
24
|
+
on "-w", "--where <cond>" , "Filter rows (eg - 'age=33,Name=/[BW]ill/i,color=\"\"'"
|
24
25
|
on "-x", "--extract <col1,col2,...>", "Comma separated list of columns to extract"
|
25
26
|
|
26
27
|
self
|
@@ -29,6 +30,7 @@ end.parse!(into: opts={}) rescue abort($!.message)
|
|
29
30
|
abcd = opts[:alpha]
|
30
31
|
show = opts[:show]
|
31
32
|
want = opts[:extract].to_s.downcase.split(",")
|
33
|
+
filt = opts[:where] and filt = "where\n #{filt}"
|
32
34
|
|
33
35
|
dbas ||= ARGV.shift or Kernel.abort "no database given"
|
34
36
|
tabl ||= ARGV.shift or Kernel.abort "no table given"
|
@@ -52,8 +54,8 @@ def display(name, data, show, uniq, tots)
|
|
52
54
|
puts "\n#{fill} #{name}\n#{fill} #{line}\n"
|
53
55
|
data.each {|cnt, val| puts "%*d %s" % [wide, cnt, val || "NULL"] }
|
54
56
|
puts "#{fill} -----\n"
|
55
|
-
puts "%*d shown (top
|
56
|
-
puts "%*d total (all
|
57
|
+
puts "%*d shown (top %d)" % [wide, rows, rows] if show
|
58
|
+
puts "%*d total (all %d)" % [wide, tots, uniq]
|
57
59
|
end
|
58
60
|
|
59
61
|
# ==[ Let 'er rip! ]==
|
@@ -77,6 +79,7 @@ want.each do |name|
|
|
77
79
|
`#{name}` as val
|
78
80
|
from
|
79
81
|
`#{tabl}`
|
82
|
+
#{filt}
|
80
83
|
group by
|
81
84
|
val
|
82
85
|
order by #{sort}
|
@@ -90,12 +93,14 @@ want.each do |name|
|
|
90
93
|
count(distinct(ifnull(`#{name}`,0)))
|
91
94
|
from
|
92
95
|
`#{tabl}`
|
96
|
+
#{filt}
|
93
97
|
|
94
98
|
tots = conn.query(<<~"").to_a[0][0]
|
95
99
|
select
|
96
|
-
count(`#{name}
|
100
|
+
count(ifnull(`#{name}`,0))
|
97
101
|
from
|
98
102
|
`#{tabl}`
|
103
|
+
#{filt}
|
99
104
|
|
100
105
|
display(name, data, show, uniq, tots)
|
101
106
|
end
|