slyce 0.9.5 → 0.9.7

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 +5 -1
  3. data/bin/slyce3 +17 -4
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81d5ddf505bb1b8f75770447e2c6015a3cf2c1ce2003b543cbce2c3364b8c9cf
4
- data.tar.gz: 2b4ae78ed3f654619e9b2d01e1d50a2cdc561f0e541416cb8739400fa8980e1a
3
+ metadata.gz: 380c2147a52bd30761850468c1a06b6f041523d66ed513912a0756a51d80d7d5
4
+ data.tar.gz: 1f306e010169260bc76a5bfb7200d2c9c0ca87ca76fc27b143b9e61e6310ef14
5
5
  SHA512:
6
- metadata.gz: 90657cc538cfaff2540321d9fe3862593d1136820ca02a5c604d5994c495f5d91164554a1de2b142b131dca37309423cda926ed4abb12a6a941d93a3ff6c2f7c
7
- data.tar.gz: 59eb8d3217d38f71972dff57fcf331746a866c8fa5c5cda60d69eeb96de7bb778aa8ac0e3b6d013f6d59e0bbcebfe03191423a244fc97654df7359f6e0665291
6
+ metadata.gz: 33369805c3929785f1709b567484d35ceaeb2d0502c5db8db8c1a26ea50e31f43dd39d48f6ac605e4cf294e8ea727fa3f9c5977091c3c48e25c68a4080c6e444
7
+ data.tar.gz: ef9ca1f35c4f6c172f231b9609fc72968e393ffbf45005973a4918e293af59ca53d82dbd8d7788f829a783213c70a020b88640939c64fbc1db5395659272507e
data/bin/slyce CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- VERSION="0.9.5"
3
+ VERSION="0.9.7"
4
4
 
5
5
  STDOUT.sync = true
6
6
 
@@ -73,6 +73,10 @@ if opts[:columns]
73
73
  exit
74
74
  end
75
75
 
76
+ if want.empty?
77
+ abort "no columns are selected"
78
+ end
79
+
76
80
  want.each do |name|
77
81
  sort = abcd ? "" : "cnt desc,"
78
82
  stmt = show ? "limit #{show}" : ""
data/bin/slyce3 CHANGED
@@ -1,8 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # NOTE: Requires the 'regexp' sqlite3 extension from https://github.com/nalgeon/sqlean
4
+ #
5
+ # Downloads from https://github.com/nalgeon/sqlean/releases/latest
6
+ #
7
+ # For example, on Apple Silicon with macOS with an M1 you can use:
8
+ #
9
+ # wget https://github.com/nalgeon/sqlean/releases/download/0.19.3/sqlean-macos-arm64.zip
10
+ # unzip sqlean-macos-arm64.zip regexp.dylib
4
11
 
5
- VERSION="0.9.5"
12
+ VERSION="0.9.7"
6
13
 
7
14
  STDOUT.sync = true
8
15
 
@@ -27,17 +34,19 @@ OptionParser.new.instance_eval do
27
34
  on "-x", "--extract <col1,col2,...>", "Comma separated list of columns to extract"
28
35
 
29
36
  self
30
- end.parse!(into: opts={regexp: "regexp"}) rescue abort($!.message)
37
+ end.parse!(into: opts={}) rescue abort($!.message)
31
38
 
32
39
  abcd = opts[:alpha]
33
40
  filt = opts[:where] and filt = "where\n #{filt}"
34
- regx = opts[:regexp]; File.exist?(regx) or abort "no regexp extension found at '#{regx}'"
41
+ regx = opts[:regexp] || Dir["{,sqlean}/regexp.{dll,dylib,so}"].first
35
42
  show = opts[:show]
36
43
  want = opts[:extract].to_s.downcase.split(",")
37
44
 
38
45
  dbas ||= ARGV.shift or abort "no database given"
39
46
  tabl ||= ARGV.shift or abort "no table given"
40
47
 
48
+ regx && File.exist?(regx) or abort "no regexp extension found#{regx ? " at '#{regx}'" : ''}"
49
+
41
50
  # ==[ Helpers ]==
42
51
 
43
52
  class Extralite::Database
@@ -68,7 +77,7 @@ end
68
77
  # ==[ Let 'er rip! ]==
69
78
 
70
79
  conn = Extralite::Database.new(dbas)
71
- resu = conn.load_extension(regx)
80
+ resu = conn.load_extension(regx) rescue abort("unable to load regexp extension '#{regx}'")
72
81
  cols = conn.columns("select * from `#{tabl}` limit 0").map(&:to_s)
73
82
  want = want.empty? ? cols : want & cols
74
83
 
@@ -77,6 +86,10 @@ if opts[:columns]
77
86
  exit
78
87
  end
79
88
 
89
+ if want.empty?
90
+ abort "no columns are selected"
91
+ end
92
+
80
93
  want.each do |name|
81
94
  sort = abcd ? "" : "cnt desc,"
82
95
  stmt = show ? "limit #{show}" : ""
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slyce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve