slyce 0.9.5 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
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