slyce 0.9.8 → 1.0.0
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 -17
- data/bin/slyce3 +10 -18
- data/slyce.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36daa71deee82e19314bc1df0caedb1bc6b4a2b8f0bf524a471f48fcf28c1fb7
|
4
|
+
data.tar.gz: 71c450033ed16659bcb206e6023dc92f9cf448736355385101d051f9c7cfebc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a621fa8b4369fe27d5edc33573b0fe1f59312c7e97564a2c146517bebb3481b1633ffb9444cd494a97890efb0d8fa57f3885281e4c6d281821c6219376f1ee86
|
7
|
+
data.tar.gz: aa98ed93dfc2e762b4e39fbe1d70d5f09c00d47ed5021511dc5811fbb826c97d121f7719a196677b60351f0fc5152f1efcc7a1984140b0be758dab6253cab38d
|
data/bin/slyce
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
VERSION="0.
|
3
|
+
VERSION="1.0.0"
|
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>" , "
|
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
|
|
@@ -37,9 +37,7 @@ tabl ||= ARGV.shift or abort "no table given"
|
|
37
37
|
# ==[ Helpers ]==
|
38
38
|
|
39
39
|
class Mysql2::Client
|
40
|
-
|
41
|
-
query(...)
|
42
|
-
end
|
40
|
+
alias_method :sql, :query
|
43
41
|
|
44
42
|
def sql!(stmt, *args, **, &)
|
45
43
|
puts "\n==[ SQL statement ]==\n\n", stmt.strip, ";"
|
@@ -57,7 +55,7 @@ def display(name, data, show, uniq, tots)
|
|
57
55
|
puts "\n#{fill} #{name}\n#{fill} #{line}\n"
|
58
56
|
data.each {|cnt, val| puts "%*d %s" % [wide, cnt, val || "NULL"] }
|
59
57
|
puts "#{fill} -----\n"
|
60
|
-
puts "%*d shown (top %d)" % [wide,
|
58
|
+
puts "%*d shown (top %d)" % [wide, seen, rows] if show
|
61
59
|
puts "%*d total (all %d)" % [wide, tots, uniq]
|
62
60
|
end
|
63
61
|
|
@@ -78,7 +76,7 @@ if want.empty?
|
|
78
76
|
end
|
79
77
|
|
80
78
|
want.each do |name|
|
81
|
-
sort =
|
79
|
+
sort = natu ? "" : "cnt desc,"
|
82
80
|
stmt = show ? "limit #{show}" : ""
|
83
81
|
data = conn.sql(<<~"" + stmt).to_a
|
84
82
|
select
|
@@ -95,15 +93,9 @@ want.each do |name|
|
|
95
93
|
-if(regexp_like(`#{name}`, '^\\\\d'), regexp_instr(`#{name}`, '[^\\\\d]'), null) desc,
|
96
94
|
`#{name}` is null, `#{name}`
|
97
95
|
|
98
|
-
uniq = conn.sql(<<~"").to_a[0]
|
99
|
-
select
|
100
|
-
count(distinct(ifnull(`#{name}`,0)))
|
101
|
-
from
|
102
|
-
`#{tabl}`
|
103
|
-
#{filt}
|
104
|
-
|
105
|
-
tots = conn.sql(<<~"").to_a[0][0]
|
96
|
+
uniq, tots = conn.sql(<<~"").to_a[0]
|
106
97
|
select
|
98
|
+
count(distinct(ifnull(`#{name}`,0))),
|
107
99
|
count(ifnull(`#{name}`,0))
|
108
100
|
from
|
109
101
|
`#{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.
|
12
|
+
VERSION="1.0.0"
|
13
13
|
|
14
14
|
STDOUT.sync = true
|
15
15
|
|
@@ -24,21 +24,21 @@ 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>" , "
|
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}"
|
41
|
-
|
40
|
+
natu = opts[:natural]
|
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(",")
|
44
44
|
|
@@ -50,9 +50,7 @@ regx && File.exist?(regx) or abort "no regexp extension found#{regx ? " at '#{r
|
|
50
50
|
# ==[ Helpers ]==
|
51
51
|
|
52
52
|
class Extralite::Database
|
53
|
-
|
54
|
-
query_ary(...)
|
55
|
-
end
|
53
|
+
alias_method :sql, :query_ary
|
56
54
|
|
57
55
|
def sql!(stmt, *args, **, &)
|
58
56
|
puts "\n==[ SQL statement ]==\n\n", stmt.strip, ";"
|
@@ -70,7 +68,7 @@ def display(name, data, show, uniq, tots)
|
|
70
68
|
puts "\n#{fill} #{name}\n#{fill} #{line}\n"
|
71
69
|
data.each {|cnt, val| puts "%*d %s" % [wide, cnt, val || "NULL"] }
|
72
70
|
puts "#{fill} -----\n"
|
73
|
-
puts "%*d shown (top %d)" % [wide,
|
71
|
+
puts "%*d shown (top %d)" % [wide, seen, rows] if show
|
74
72
|
puts "%*d total (all %d)" % [wide, tots, uniq]
|
75
73
|
end
|
76
74
|
|
@@ -91,7 +89,7 @@ if want.empty?
|
|
91
89
|
end
|
92
90
|
|
93
91
|
want.each do |name|
|
94
|
-
sort =
|
92
|
+
sort = natu ? "" : "cnt desc,"
|
95
93
|
stmt = show ? "limit #{show}" : ""
|
96
94
|
data = conn.sql(<<~"" + stmt).to_a
|
97
95
|
select
|
@@ -109,15 +107,9 @@ want.each do |name|
|
|
109
107
|
`#{name}` is null, `#{name}`
|
110
108
|
collate nocase
|
111
109
|
|
112
|
-
uniq = conn.sql(<<~"").to_a[0]
|
113
|
-
select
|
114
|
-
count(distinct(ifnull(`#{name}`,0)))
|
115
|
-
from
|
116
|
-
`#{tabl}`
|
117
|
-
#{filt}
|
118
|
-
|
119
|
-
tots = conn.sql(<<~"").to_a[0][0]
|
110
|
+
uniq, tots = conn.sql(<<~"").to_a[0]
|
120
111
|
select
|
112
|
+
count(distinct(ifnull(`#{name}`,0))),
|
121
113
|
count(ifnull(`#{name}`,0))
|
122
114
|
from
|
123
115
|
`#{tabl}`
|
data/slyce.gemspec
CHANGED
@@ -11,6 +11,6 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = "MIT"
|
12
12
|
s.files = `git ls-files`.split("\n") - %w[.gitignore]
|
13
13
|
s.executables = `cd bin && git ls-files .`.split("\n")
|
14
|
-
s.add_runtime_dependency "extralite-bundle", "~> 1.
|
14
|
+
s.add_runtime_dependency "extralite-bundle", "~> 1.25"
|
15
15
|
s.add_runtime_dependency "mysql2", "~> 0.5"
|
16
16
|
end
|
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.
|
4
|
+
version: 1.0.0
|
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
|
+
date: 2023-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: extralite-bundle
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.25'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: '1.25'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mysql2
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|