bomdb 0.6.2 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ecba11eea48a02dbd2088def40ef7b8aebf18142
4
- data.tar.gz: f9a8272a8bbe4058f78ffe0dd1d11dc0f00f3928
3
+ metadata.gz: a1a4d5ae9da1a8649dc3ae897f37f0209730d128
4
+ data.tar.gz: e786dc5099a6e3a9fb8159a6c27e96095e11db78
5
5
  SHA512:
6
- metadata.gz: 8cfedb68510d5af0441f8c61ac792439a4ef2c8aa7f4db8354b73979b604216a2af88bc7fa452cacfbb5e9c4646954ae9502631662ef6286f9140374f387c793
7
- data.tar.gz: 55b8d2ed0344d5a95aa70ccef94d07dfde84c659fd5599d70ac7dda01c91c448eafd398dadb6e0b2b7c99f12ac50b8c68e8e085b7b78e53f2ef62e6dac8e6301
6
+ metadata.gz: 1477bb98a8b954db1498b0f417f2e7faddf4dc27ddb7204c2945c530cd85b93b1c7ad4f07e5561718260b596d5191431d05eedfdbf0e5ff705c8cb6c9b113f02
7
+ data.tar.gz: c64bf3590944bf3eaf7d1371ac7bb2ba4da53bd3b9d1afe3eaf8696c5f1c41315ae2ea0bea01f5464faafa7fba818ab6bbafc4939eb3fff68050b48dd3887eed
@@ -0,0 +1 @@
1
+ 2.3.0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bomdb (0.6.1)
4
+ bomdb (0.7.0)
5
5
  colorize (~> 0.7)
6
6
  constellation (~> 0.1)
7
7
  levenshtein-ffi (~> 1.1)
@@ -14,7 +14,7 @@ PATH
14
14
  GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
- activesupport (4.2.1)
17
+ activesupport (4.2.6)
18
18
  i18n (~> 0.7)
19
19
  json (~> 1.7, >= 1.7.7)
20
20
  minitest (~> 5.1)
@@ -22,20 +22,20 @@ GEM
22
22
  tzinfo (~> 1.1)
23
23
  byebug (4.0.5)
24
24
  columnize (= 0.9.0)
25
- colorize (0.7.5)
25
+ colorize (0.7.7)
26
26
  columnize (0.9.0)
27
27
  constellation (0.1.1)
28
28
  multi_json
29
29
  diff-lcs (1.2.5)
30
- ffi (1.9.8)
30
+ ffi (1.9.10)
31
31
  i18n (0.7.0)
32
- json (1.8.2)
32
+ json (1.8.3)
33
33
  levenshtein-ffi (1.1.0)
34
34
  ffi (~> 1.9)
35
35
  mericope (0.1.1)
36
36
  activesupport (~> 4.0)
37
- minitest (5.6.0)
38
- multi_json (1.11.0)
37
+ minitest (5.9.0)
38
+ multi_json (1.12.1)
39
39
  rake (10.4.2)
40
40
  rspec (3.2.0)
41
41
  rspec-core (~> 3.2.0)
@@ -50,8 +50,8 @@ GEM
50
50
  diff-lcs (>= 1.2.0, < 2.0)
51
51
  rspec-support (~> 3.2.0)
52
52
  rspec-support (3.2.2)
53
- sequel (4.21.0)
54
- sqlite3 (1.3.10)
53
+ sequel (4.35.0)
54
+ sqlite3 (1.3.11)
55
55
  text_clean (0.2.2)
56
56
  thor (0.19.1)
57
57
  thread_safe (0.3.5)
@@ -66,3 +66,6 @@ DEPENDENCIES
66
66
  byebug (~> 4.0)
67
67
  rake (~> 10.0)
68
68
  rspec (~> 3.2)
69
+
70
+ BUNDLED WITH
71
+ 1.12.5
@@ -8,6 +8,10 @@ module BomDB
8
8
  class Application < Thor
9
9
 
10
10
 
11
+ desc "version", "show the version of bomdb"
12
+ def version
13
+ puts BomDB::VERSION
14
+ end
11
15
 
12
16
  desc "import FILE", "import data from FILE into database, e.g. books.json"
13
17
  option :type, :type => :string, :default => nil,
@@ -284,6 +288,43 @@ module BomDB
284
288
  end
285
289
 
286
290
 
291
+ class Chapter
292
+ attr_reader :wordcount, :book, :chapter
293
+ def initialize(wordcount, book, chapter)
294
+ @wordcount, @book, @chapter = wordcount, book, chapter
295
+ end
296
+ end
297
+
298
+ desc "index WORDGROUP", "create an index into the books of the Book of Mormon counting by WORDGROUP"
299
+ def index(wordgroup)
300
+ wordgroup = wordgroup.to_i
301
+
302
+ chapters = BomDB::Query.new.chapters.map do |(book, chapter), content|
303
+ Chapter.new(content.split(/\s+/).size, book, chapter)
304
+ end
305
+
306
+ total_words = chapters.inject(0){ |sum, ch| sum += ch.wordcount }
307
+
308
+ idx = []
309
+ words_so_far = 0
310
+ chapter_index = 0
311
+ j = 0
312
+
313
+ (wordgroup..(total_words+wordgroup)).step(wordgroup) do |i|
314
+ while words_so_far < i && chapter_index < chapters.size
315
+ words_so_far += chapters[chapter_index].wordcount
316
+ chapter_index += 1
317
+ end
318
+ c = chapters[chapter_index-1]
319
+ idx << ["#{c.book} #{c.chapter}", j]
320
+ # puts "[#{chapters[chapter_index-1].book} #{chapters[chapter_index-1].chapter},#{j}"
321
+ j += 1
322
+ end
323
+
324
+ puts idx.to_json
325
+ end
326
+
327
+
287
328
 
288
329
  private
289
330
 
@@ -5,11 +5,21 @@ module BomDB
5
5
  class Books < Export::Base
6
6
  def export_json
7
7
  books = []
8
- @db[:books].each do |b|
8
+ select_books.each do |b|
9
9
  books << JSON::generate([ b[:book_name], b[:book_group], b[:book_sort] ], array_nl: ' ')
10
10
  end
11
11
  Export::Result.new(success: true, body: "[\n " + books.join(",\n ") + "\n]\n")
12
12
  end
13
+
14
+ def export_text
15
+ Export::Result.new(success: true, body: select_books.map{ |b| b[:book_name] }.join("\n"))
16
+ end
17
+
18
+ private
19
+
20
+ def select_books
21
+ @db[:books]
22
+ end
13
23
  end
14
24
  end
15
25
  end
@@ -5,11 +5,21 @@ module BomDB
5
5
  class Editions < Export::Base
6
6
  def export_json
7
7
  editions = []
8
- @db[:editions].order(:edition_year, :edition_name).each do |e|
8
+ select_editions.each do |e|
9
9
  editions << JSON::generate([e[:edition_year], e[:edition_name]], array_nl: ' ')
10
10
  end
11
11
  Export::Result.new(success: true, body: "[\n " + editions.join(",\n ") + "\n]\n")
12
12
  end
13
+
14
+ def export_text
15
+ Export::Result.new(success: true, body: select_editions.map{ |e| e[:edition_name] }.join("\n"))
16
+ end
17
+
18
+ private
19
+
20
+ def select_editions
21
+ @db[:editions].order(:edition_year, :edition_name)
22
+ end
13
23
  end
14
24
  end
15
25
  end
@@ -5,11 +5,7 @@ module BomDB
5
5
  class Verses < Export::Base
6
6
  def export_json
7
7
  verses = []
8
- @db[:verses].
9
- join(:books, :book_id => :book_id).
10
- where(:verse_heading => nil).
11
- order(:book_sort, :verse_chapter).
12
- each do |v|
8
+ select_verses.each do |v|
13
9
  verses << {
14
10
  range_id: v[:verse_range_id],
15
11
  book: v[:book_name],
@@ -19,6 +15,22 @@ module BomDB
19
15
  end
20
16
  Export::Result.new(success: true, body: JSON.pretty_generate(verses))
21
17
  end
18
+
19
+ def export_text
20
+ verses = select_verses.map do |v|
21
+ "#{v[:book_name]} #{v[:verse_chapter]}:#{v[:verse_number]}"
22
+ end
23
+ Export::Result.new(success: true, body: verses.join("\n"))
24
+ end
25
+
26
+ private
27
+
28
+ def select_verses
29
+ @db[:verses].
30
+ join(:books, :book_id => :book_id).
31
+ where(:verse_heading => nil).
32
+ order(:book_sort, :verse_chapter)
33
+ end
22
34
  end
23
35
  end
24
36
  end
@@ -1,3 +1,3 @@
1
1
  module BomDB
2
- VERSION = "0.6.2"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bomdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Duane Johnson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-19 00:00:00.000000000 Z
11
+ date: 2016-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -175,6 +175,7 @@ extra_rdoc_files: []
175
175
  files:
176
176
  - ".bomdb"
177
177
  - ".gitignore"
178
+ - ".ruby-version"
178
179
  - Gemfile
179
180
  - Gemfile.lock
180
181
  - LICENSE.txt
@@ -232,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
232
233
  version: '0'
233
234
  requirements: []
234
235
  rubyforge_project:
235
- rubygems_version: 2.2.2
236
+ rubygems_version: 2.5.1
236
237
  signing_key:
237
238
  specification_version: 4
238
239
  summary: Book of Mormon Database