bomdb 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50fee224307028e1d0970af931372cabad9a49a0
4
- data.tar.gz: 63e2b95fee39540b9df7cf5ff836e3fe1342db34
3
+ metadata.gz: bd01b4bf2376536e016d15f732d330d173fb1d64
4
+ data.tar.gz: 3b3e5b8854ad7a4085da015c657ba864bb5bf695
5
5
  SHA512:
6
- metadata.gz: 5e78c010d8a87974ad21d3e8e03717105410f7ad429995dd3488bfbfdebbcc3b5f573b04733b1897bd56c92bfcb13ad99e02e46e4228e6babd77e72e053dab16
7
- data.tar.gz: 03ff18efe84454627f25f841ce86db57fb528a834568580237de350cbeec69d5b2b879cc3eeab177fb6c7219b7db5110490900e4c66b3a3a0a0b22c56f058609
6
+ metadata.gz: 8e46a8923ff7d502d18ac5eeb42f08ef8ba33a4d2eac3ebc4f57558b027a34848f6abf0a3c9d4330662ee5b4d661fa9e9aa282366bf0b0afc4d47d087e1c59cb
7
+ data.tar.gz: b186e70951e1dbf255cc9c9aa7c7c20be9ab74e9896f5766f71339534f2eb8f78fb736ab6d3cdad8cacc61a7e862ffbd00ad2de949c1f19f47410b9ab0d30a6b
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bomdb (0.1.0)
4
+ bomdb (0.2.1)
5
5
  colorize (~> 0.7)
6
6
  constellation (~> 0.1)
7
7
  sequel (~> 4.21)
8
8
  sqlite3 (~> 1.3)
9
+ text_clean
9
10
  thor (~> 0.19)
10
11
 
11
12
  GEM
@@ -35,6 +36,7 @@ GEM
35
36
  rspec-support (3.2.2)
36
37
  sequel (4.21.0)
37
38
  sqlite3 (1.3.10)
39
+ text_clean (0.2.2)
38
40
  thor (0.19.1)
39
41
 
40
42
  PLATFORMS
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # BomDB -- Book of Mormon DB
2
2
 
3
- This is a command-line tool (packaged as a Ruby gem) that provides multiple editions of the Book of Mormon in machine-readable form. At its heart is a sqlite3 database--data can be imported or exported using various formats and options.
3
+ BomDB is a command-line tool (packaged as a Ruby gem) that provides multiple editions of the Book of Mormon in machine-readable form. At its heart is a sqlite3 database--data can be imported or exported using various formats and options.
4
4
 
5
5
  ## Usage
6
6
 
@@ -27,7 +27,7 @@ Moroni 10:34 And now I bid unto all farewell. I soon go to rest in the paradise
27
27
  Suppose we want to remove the book, chapter, and verse headings from the output:
28
28
 
29
29
  ```bash
30
- $ bomdb show 1829 --no-verse
30
+ $ bomdb show 1829 --no-verses
31
31
 
32
32
  I Nephi having been born of goodly parents, therefore I was taught somewhat in all the learning of my father...
33
33
  # ... etc ...
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'thor', '~> 0.19'
25
25
  spec.add_dependency 'constellation', '~> 0.1'
26
26
  spec.add_dependency 'colorize', '~> 0.7'
27
+ spec.add_dependency 'text_clean'
27
28
 
28
29
  # spec.add_development_dependency 'bundler', '~> 1.7'
29
30
  spec.add_development_dependency 'rake', '~> 10.0'
Binary file
@@ -1,6 +1,7 @@
1
1
  require 'thor'
2
2
  require 'bomdb'
3
3
  require 'colorize'
4
+ require 'text_clean'
4
5
 
5
6
  module BomDB
6
7
  module Cli
@@ -111,7 +112,7 @@ module BomDB
111
112
 
112
113
 
113
114
  desc "show EDITION RANGE", "show an edition of the Book of Mormon, or a RANGE of verses"
114
- option :verse, :type => :boolean, :default => true,
115
+ option :verses, :type => :boolean, :default => true,
115
116
  :description => "show book, chapter, verse annotations"
116
117
  option :exclude, :type => :string, :aliases => [:x],
117
118
  :description => "exclude verses that are references, e.g. Bible-OT references"
@@ -123,18 +124,30 @@ module BomDB
123
124
  :description => "show chapter and verse in color"
124
125
  option :"for-alignment", :type => :boolean, :default => false,
125
126
  :description => "show output in 'alignment' mode. Useful for debugging 'align' subcommand issues."
126
- def show(edition = '1829', range = nil)
127
+ option :clean, :type => :boolean, :default => false,
128
+ :description => "remove punctuation and normalize text by sentence"
129
+ def show(edition = '1992', range = nil)
127
130
  body_format = nil
131
+ wordsep = options[:sep]
132
+ linesep = options[:linesep]
133
+
128
134
  if options[:"for-alignment"]
129
135
  linesep = " "
130
136
  verse_format = verse_format_for_alignment(options[:color])
137
+ elsif options[:clean]
138
+ linesep = " "
139
+ verse_format = lambda{ |b,c,v| '' }
140
+ body_format = lambda do |body|
141
+ TextClean.clean(body)
142
+ end
131
143
  else
132
- linesep = options[:linesep]
133
- if options[:verse]
144
+ if options[:verses]
134
145
  if options[:color]
135
- verse_format = lambda{ |b,c,v| b.colorize(:yellow) + ' ' +
136
- c.to_s.colorize(:green) + ':' +
137
- v.to_s.colorize(:light_green) }
146
+ verse_format = lambda do |b,c,v|
147
+ b.colorize(:yellow) + wordsep +
148
+ c.to_s.colorize(:green) + ':' +
149
+ v.to_s.colorize(:light_green)
150
+ end
138
151
  else
139
152
  verse_format = nil
140
153
  end
@@ -149,7 +162,7 @@ module BomDB
149
162
  ).print(
150
163
  verse_format: verse_format,
151
164
  body_format: body_format,
152
- sep: options[:sep],
165
+ sep: wordsep,
153
166
  linesep: linesep
154
167
  )
155
168
  end
@@ -23,7 +23,11 @@ module BomDB
23
23
  select(:book_name, :verse_chapter, :verse_number, :content_body)
24
24
  q.where!(:editions__edition_id => edition[:edition_id]) if @edition
25
25
  q.where!(:verse_heading => nil) unless @headings
26
- q.exclude!(:verses__verse_id => db[:refs].select(:verse_id).where(:ref_name => @exclude)) if @exclude
26
+ if @exclude
27
+ excluded_verse_ids = db[:refs].select(:verse_id).
28
+ where(:ref_name => @exclude.split(/\s*,\s*/))
29
+ q.exclude!(:verses__verse_id => excluded_verse_ids)
30
+ end
27
31
  q
28
32
  end
29
33
 
@@ -37,15 +41,22 @@ module BomDB
37
41
  body_format ||= lambda{ |body| body + linesep }
38
42
  query.each do |row|
39
43
  shown = true
40
- io.print verse_format[
44
+ verse = verse_format[
41
45
  row[:book_name],
42
46
  row[:verse_chapter],
43
47
  row[:verse_number]
44
48
  ]
45
- io.print sep
46
- io.print body_format[ row[:content_body] ]
49
+ unless verse.empty?
50
+ io.print verse
51
+ io.print sep
52
+ end
53
+ begin
54
+ io.print body_format[ row[:content_body] ]
55
+ rescue TypeError
56
+ next
57
+ end
47
58
  end
48
- io.puts "Nothing found" unless shown
59
+ io.puts "Nothing shown" unless shown
49
60
  end
50
61
  end
51
62
  end
@@ -1,3 +1,3 @@
1
1
  module BomDB
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bomdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Duane Johnson
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: text_clean
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rake
85
99
  requirement: !ruby/object:Gem::Requirement