slyce 0.9.5 → 0.9.8

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/slyce +5 -1
  3. data/bin/slyce3 +17 -4
  4. data/slyce.gemspec +1 -0
  5. metadata +15 -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: f4b3343260618e644b563f9b03b2817796a8439727c753dacf59a93e11bd04af
4
+ data.tar.gz: 5b9d02e5e596ccf9b32d54f54bd35cb79b86242c9ab1924a46f79cfdd4efb12f
5
5
  SHA512:
6
- metadata.gz: 90657cc538cfaff2540321d9fe3862593d1136820ca02a5c604d5994c495f5d91164554a1de2b142b131dca37309423cda926ed4abb12a6a941d93a3ff6c2f7c
7
- data.tar.gz: 59eb8d3217d38f71972dff57fcf331746a866c8fa5c5cda60d69eeb96de7bb778aa8ac0e3b6d013f6d59e0bbcebfe03191423a244fc97654df7359f6e0665291
6
+ metadata.gz: a942b4899789d36ee3a65afbdd4f38308e3438d46a1bdab18a99af94ed2cae00de3ffb282e2ec22eaaf14d341909c623085fa7bf0273753b4bcd915613812235
7
+ data.tar.gz: 59397e8e24245ea8a42030721911c3dc20011d54d67f0b680b96db16154d95d98897705a166339bdf8fc495828b9f25da5a8a0fc8c51caa101b674cd0633eadc
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.8"
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.8"
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}" : ""
data/slyce.gemspec CHANGED
@@ -11,5 +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.2.5"
14
15
  s.add_runtime_dependency "mysql2", "~> 0.5"
15
16
  end
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.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2023-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: extralite-bundle
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.2.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.2.5
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: mysql2
15
29
  requirement: !ruby/object:Gem::Requirement