sqlbible 1.7.1 → 1.8.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/README.md +1 -0
- data/bin/sqlbible +55 -86
- data/bin/sqlbible-convert +36 -0
- data/lib/sqlbible/version.rb +1 -1
- data/lib/sqlbible.rb +2 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d56c3d8c24b77ebd196845f6337befa2be5ba09af57609ae81c970485882162a
|
|
4
|
+
data.tar.gz: 03f098e9b3df74b206b1a8a7ffd424b25c6cedca2440f63b21569f7983c0ba2c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: eb289248fbf37ef0b2220939d20757d590186b8c0338beb76e5630f5d8cbd230ff4d37e472b2732d1082c13b11e0458fcdfd18bf14b63c0ed2a1c2652b8412be
|
|
7
|
+
data.tar.gz: 7bdc2c73f78526fadd9b568a3f22d421c64bfbacdae5e17e261dea9fdcf0045d48d4d33969d40c768f92afe7a26693daf0a416878ca3c3ce64f718ada47b2f11
|
data/README.md
CHANGED
data/bin/sqlbible
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# encoding: utf-8
|
|
3
3
|
# frozen_string_literal: false
|
|
4
4
|
|
|
5
|
-
require '
|
|
5
|
+
require 'optimist'
|
|
6
6
|
require 'scripref'
|
|
7
7
|
require 'sqlbible'
|
|
8
8
|
require 'sqlbible/ansicolor'
|
|
@@ -16,37 +16,20 @@ unless $stdout.tty?
|
|
|
16
16
|
Sqlbible.colorize = false
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
synopsis 'Usage: sqlbible
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
opt :colorize, 'Colorize output' do |v|
|
|
29
|
-
Sqlbible.colorize = v
|
|
30
|
-
end
|
|
31
|
-
opt :search, 'Regular expression to search (multiple allowed)', type: String, multi: true, required: true
|
|
32
|
-
opt :lang, 'Language for parsing and formatting scripture references', type: String, permitted: %w(de en), default: Sqlbible.lang.to_s
|
|
33
|
-
opt :output, 'Output filename', type: String
|
|
34
|
-
opt :range, 'Search range, example: "John 1-10"', type: String
|
|
35
|
-
end
|
|
36
|
-
subcmd :text, 'Show text of references' do
|
|
37
|
-
opt :bible, 'Name of the bible module filename of an .sqlbible file', type: String, **default_bible_param
|
|
38
|
-
opt :colorize, 'Colorize output' do |v|
|
|
39
|
-
Sqlbible.colorize = v
|
|
40
|
-
end
|
|
41
|
-
opt :lang, 'Language for parsing and formatting scripture references', type: String, permitted: %w(de en), default: Sqlbible.lang.to_s
|
|
42
|
-
opt :output, 'Output filename', type: String
|
|
43
|
-
opt :reference, 'Reference to show, example: "John 3:16; 10:27-30"', type: String, required: true
|
|
44
|
-
end
|
|
19
|
+
opts = Optimist.options do
|
|
20
|
+
synopsis 'Usage: sqlbible [options] [search regexes]*'
|
|
21
|
+
opt :bible, 'Name of the bible module filename of an .sqlbible file', type: String, **default_bible_param
|
|
22
|
+
opt :colorize, 'Colorize output', default: Sqlbible.colorize
|
|
23
|
+
opt :info, 'Show infos for installed bibles'
|
|
24
|
+
opt :lang, 'Language for parsing and formatting scripture references', type: String, permitted: %w(de en), default: Sqlbible.lang.to_s
|
|
25
|
+
opt :output, 'Output filename', type: String
|
|
26
|
+
opt :pager, 'Use pager for terminal output', default: Sqlbible.pager
|
|
27
|
+
opt :reference, 'Reference to show or search, example: "John 3:16; 10:27-30"', type: String
|
|
45
28
|
version format("sqlbible %s\nschema version %s", Sqlbible::VERSION, Sqlbible.schema_version)
|
|
46
29
|
end
|
|
47
30
|
|
|
48
|
-
def determine_lang_mod
|
|
49
|
-
case l =
|
|
31
|
+
def determine_lang_mod opts
|
|
32
|
+
case l = opts[:lang]
|
|
50
33
|
when 'en', nil
|
|
51
34
|
Scripref::English
|
|
52
35
|
when 'de'
|
|
@@ -56,26 +39,32 @@ def determine_lang_mod subopts
|
|
|
56
39
|
end
|
|
57
40
|
end
|
|
58
41
|
|
|
59
|
-
def
|
|
60
|
-
if fn =
|
|
61
|
-
|
|
42
|
+
def open_out opts
|
|
43
|
+
if fn = opts[:output]
|
|
44
|
+
File.open(fn, 'w') do |f|
|
|
45
|
+
yield f
|
|
46
|
+
end
|
|
47
|
+
elsif opts[:pager]
|
|
48
|
+
IO.popen(Sqlbible.pager_command, 'w') do |p|
|
|
49
|
+
yield p
|
|
50
|
+
end
|
|
62
51
|
else
|
|
63
|
-
|
|
52
|
+
yield $stdout
|
|
64
53
|
end
|
|
65
54
|
end
|
|
66
55
|
|
|
67
|
-
def format_verse_ref f, v
|
|
56
|
+
def format_verse_ref opts, f, v
|
|
68
57
|
ref = f.format(v.scripref_passage)
|
|
69
|
-
if
|
|
58
|
+
if opts[:colorize]
|
|
70
59
|
Ansicolor.apply(ref, Sqlbible.color_reference)
|
|
71
60
|
else
|
|
72
61
|
ref
|
|
73
62
|
end
|
|
74
63
|
end
|
|
75
64
|
|
|
76
|
-
def format_text v, regexes
|
|
65
|
+
def format_text opts, v, regexes
|
|
77
66
|
text = v.plaintext.gsub("\n", ' ¶')
|
|
78
|
-
if
|
|
67
|
+
if opts[:colorize]
|
|
79
68
|
regexes.each do |re|
|
|
80
69
|
text = text.gsub(re, Ansicolor.apply('\0', Sqlbible.color_emphasize))
|
|
81
70
|
end
|
|
@@ -83,60 +72,40 @@ def format_text v, regexes
|
|
|
83
72
|
text
|
|
84
73
|
end
|
|
85
74
|
|
|
86
|
-
def format_verse_line f, v, regexes=[]
|
|
87
|
-
format('%s: %s', format_verse_ref(f, v), format_text(v, regexes))
|
|
75
|
+
def format_verse_line opts, f, v, regexes=[]
|
|
76
|
+
format('%s: %s', format_verse_ref(opts, f, v), format_text(opts, v, regexes))
|
|
88
77
|
end
|
|
89
78
|
|
|
90
|
-
subopts = result.subcommand_options
|
|
91
|
-
|
|
92
79
|
begin
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
fail 'no filename given'
|
|
80
|
+
if opts[:info]
|
|
81
|
+
names = Sqlbible.bible_names
|
|
82
|
+
max_size = names.map(&:size).max
|
|
83
|
+
names.each do |n|
|
|
84
|
+
puts format("%-#{max_size}s (schema version: %s)", n, Sqlbible.new(n).schema_version)
|
|
99
85
|
end
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
lang_mod = determine_lang_mod(subopts)
|
|
118
|
-
if r = subopts[:range]
|
|
119
|
-
p = Scripref::Parser.new(lang_mod)
|
|
120
|
-
range = p.parse(r)
|
|
121
|
-
else
|
|
122
|
-
range = nil
|
|
123
|
-
end
|
|
124
|
-
out = determine_out(subopts)
|
|
125
|
-
bible = Sqlbible.new(subopts[:bible])
|
|
126
|
-
regexes = searches.map {|s| Regexp.new(s)}
|
|
127
|
-
f = Scripref::Formatter.new(lang_mod, abbrev_level: 1)
|
|
128
|
-
bible.search(regexes, range: range).each do |v|
|
|
129
|
-
out.puts format_verse_line(f, v, regexes)
|
|
86
|
+
return
|
|
87
|
+
end
|
|
88
|
+
lang_mod = determine_lang_mod(opts)
|
|
89
|
+
p = Scripref::Parser.new(lang_mod)
|
|
90
|
+
f = Scripref::Formatter.new(lang_mod, abbrev_level: 1)
|
|
91
|
+
if r = opts[:reference]
|
|
92
|
+
ref = p.parse(r)
|
|
93
|
+
else
|
|
94
|
+
ref = nil
|
|
95
|
+
end
|
|
96
|
+
bible = Sqlbible.new(opts[:bible])
|
|
97
|
+
if ARGV.size > 0
|
|
98
|
+
regexes = ARGV.map {|s| Regexp.new(s)}
|
|
99
|
+
open_out opts do |out|
|
|
100
|
+
bible.search(regexes, range: ref).each do |v|
|
|
101
|
+
out.puts format_verse_line(opts, f, v, regexes)
|
|
102
|
+
end
|
|
130
103
|
end
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
bible = Sqlbible.new(subopts[:bible])
|
|
137
|
-
out = determine_out subopts
|
|
138
|
-
bible.reference(ref).flatten.each do |v|
|
|
139
|
-
out.puts format_verse_line(f, v)
|
|
104
|
+
else
|
|
105
|
+
open_out opts do |out|
|
|
106
|
+
bible.reference(Array(ref)).flatten.each do |v|
|
|
107
|
+
out.puts format_verse_line(opts, f, v)
|
|
108
|
+
end
|
|
140
109
|
end
|
|
141
110
|
end
|
|
142
111
|
rescue Exception => e
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: utf-8
|
|
3
|
+
# frozen_string_literal: false
|
|
4
|
+
|
|
5
|
+
require 'optimist'
|
|
6
|
+
require 'sqlbible'
|
|
7
|
+
require 'fileutils'
|
|
8
|
+
require 'sqlbible/convert'
|
|
9
|
+
|
|
10
|
+
opts = Optimist.options do
|
|
11
|
+
synopsis 'Usage: sqlbible [options] [filename]'
|
|
12
|
+
opt :bible, 'Name of the converted bible module or output filename of the generated .sqlbible file', type: String, required: true
|
|
13
|
+
opt :overwrite, 'Overwrite existing module or output file if exist', type: :Boolean, default: false
|
|
14
|
+
version format("sqlbible %s\nschema version %s", Sqlbible::VERSION, Sqlbible.schema_version)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
begin
|
|
18
|
+
unless osis_fn = ARGV.first
|
|
19
|
+
fail 'no filename given'
|
|
20
|
+
end
|
|
21
|
+
sqlbible_fn = Sqlbible.resolve_db_filename(opts[:bible])
|
|
22
|
+
if !opts[:overwrite] && File.exist?(sqlbible_fn)
|
|
23
|
+
fail format('file %s exist, conversion aborted', sqlbible_fn)
|
|
24
|
+
end
|
|
25
|
+
unless File.exist?(dir = Sqlbible.bibles_dir)
|
|
26
|
+
puts format('create directory %s', dir)
|
|
27
|
+
FileUtils.mkdir_p dir
|
|
28
|
+
end
|
|
29
|
+
if $stdout.tty?
|
|
30
|
+
puts "convert #{osis_fn} to #{sqlbible_fn} ..."
|
|
31
|
+
end
|
|
32
|
+
Sqlbible.convert osis_fn, sqlbible_fn
|
|
33
|
+
rescue Exception => e
|
|
34
|
+
$stderr.puts e.message
|
|
35
|
+
exit 1
|
|
36
|
+
end
|
data/lib/sqlbible/version.rb
CHANGED
data/lib/sqlbible.rb
CHANGED
|
@@ -85,11 +85,12 @@ class Sqlbible
|
|
|
85
85
|
@color_reference = :blue
|
|
86
86
|
@color_emphasize = :underline
|
|
87
87
|
@lang = :en
|
|
88
|
+
@pager_command = 'less -FRSX'
|
|
88
89
|
|
|
89
90
|
class << self
|
|
90
91
|
|
|
91
92
|
attr_reader :bibles_dir
|
|
92
|
-
attr_accessor :colorize, :color_reference, :color_emphasize, :bible, :lang
|
|
93
|
+
attr_accessor :colorize, :color_reference, :color_emphasize, :bible, :lang, :pager, :pager_command
|
|
93
94
|
|
|
94
95
|
# Get the database schema as string
|
|
95
96
|
def db_schema
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sqlbible
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jan Friedrich
|
|
@@ -38,19 +38,19 @@ dependencies:
|
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '1.16'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
41
|
+
name: optimist
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '3.
|
|
46
|
+
version: '3.2'
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '3.
|
|
53
|
+
version: '3.2'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: scripref
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -124,12 +124,14 @@ dependencies:
|
|
|
124
124
|
email: janfri26@gmail.com
|
|
125
125
|
executables:
|
|
126
126
|
- sqlbible
|
|
127
|
+
- sqlbible-convert
|
|
127
128
|
extensions: []
|
|
128
129
|
extra_rdoc_files: []
|
|
129
130
|
files:
|
|
130
131
|
- LICENSE
|
|
131
132
|
- README.md
|
|
132
133
|
- bin/sqlbible
|
|
134
|
+
- bin/sqlbible-convert
|
|
133
135
|
- lib/sqlbible.rb
|
|
134
136
|
- lib/sqlbible/ansicolor.rb
|
|
135
137
|
- lib/sqlbible/convert.rb
|