kj 0.0.14 → 0.0.15
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 +8 -0
- data/VERSION +1 -1
- data/db/kjb.db +0 -0
- data/kj.gemspec +3 -3
- data/lib/kj.rb +8 -0
- data/lib/kj/verse.rb +29 -13
- data/spec/verse_spec.rb +6 -0
- data/vendor/import.rb +10 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a9f1ae7069ea9589316a04b3fdab9c7ebc66330
|
4
|
+
data.tar.gz: 9409e75e89768a71a76229b561737ab40f3ab44b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2be24a33435f0329e246eee2d01334e8e2ecdb0934e6fedade4fb7704f1e1f21d4502043e559abe9d12468e478be90976ea5a301365d0e9ee1eda16eb98f4a5a
|
7
|
+
data.tar.gz: ad8b9ae4438462a8da3133d74fe3cb6f7ccc391ec221b131e47d9b610bd8815e9d63d1ee84f95d6f3267ef5c75b0023947f5fbbc9b165c1e6ffd6d2b05f717fe
|
data/README.md
CHANGED
@@ -67,6 +67,7 @@ puts verse.text
|
|
67
67
|
verse.next # returns the next Verse
|
68
68
|
verse.prev # returns the previous Verse
|
69
69
|
```
|
70
|
+
## Other Stuff
|
70
71
|
### Random
|
71
72
|
```ruby
|
72
73
|
bible.random_book #returns a random Kj::Book
|
@@ -82,6 +83,13 @@ verse = bible.percent(0.5)
|
|
82
83
|
puts verse.title
|
83
84
|
=> "Psalms 103:1"
|
84
85
|
```
|
86
|
+
### Pages
|
87
|
+
```ruby
|
88
|
+
# Locate Verse objects for a particular page (1-1609)
|
89
|
+
verses = bible.page(777)
|
90
|
+
puts verses.first.title
|
91
|
+
=> "Psalms 22:26"
|
92
|
+
```
|
85
93
|
### Exceptions
|
86
94
|
Kj will raise a Kj::Iniquity when it can't find what you're looking for.
|
87
95
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.15
|
data/db/kjb.db
CHANGED
Binary file
|
data/kj.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: kj 0.0.
|
5
|
+
# stub: kj 0.0.15 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "kj"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.15"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["David John"]
|
14
|
-
s.date = "2015-08-
|
14
|
+
s.date = "2015-08-11"
|
15
15
|
s.description = "kj is a simple rubygem for accessing the King James Bible. It uses an embedded sqlite data store."
|
16
16
|
s.email = "djohn@arch-no.org"
|
17
17
|
s.extra_rdoc_files = [
|
data/lib/kj.rb
CHANGED
data/lib/kj/verse.rb
CHANGED
@@ -22,8 +22,8 @@ module Kj
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.random
|
25
|
-
verse = Db.query("SELECT id, chapter_id, number FROM verses WHERE id = ?", [rand(1..count)], true)
|
26
|
-
new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'])
|
25
|
+
verse = Db.query("SELECT id, chapter_id, number, page FROM verses WHERE id = ?", [rand(1..count)], true)
|
26
|
+
new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'], page: verse['page'])
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.percent(decimal)
|
@@ -34,8 +34,17 @@ module Kj
|
|
34
34
|
else
|
35
35
|
verse_id = (count * decimal).round
|
36
36
|
end
|
37
|
-
verse = Db.query("SELECT id, chapter_id, number FROM verses WHERE id = ?", [verse_id], true)
|
38
|
-
new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'])
|
37
|
+
verse = Db.query("SELECT id, chapter_id, number, page FROM verses WHERE id = ?", [verse_id], true)
|
38
|
+
new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'], page: verse['page'])
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.page_count
|
42
|
+
1609
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.page(page)
|
46
|
+
verses = Db.query("SELECT id, chapter_id, number, page FROM verses WHERE page = ?", [page])
|
47
|
+
verses.map{|verse| new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'], page: verse['page'])}
|
39
48
|
end
|
40
49
|
|
41
50
|
def chapter
|
@@ -63,31 +72,38 @@ module Kj
|
|
63
72
|
|
64
73
|
def next
|
65
74
|
@next ||= begin
|
66
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [id + 1], true)
|
67
|
-
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
75
|
+
v = Db.query("SELECT id, chapter_id, text, number, page FROM verses WHERE id = ?", [id + 1], true)
|
76
|
+
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'], page: v['page'])
|
68
77
|
rescue Kj::Iniquity
|
69
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [1], true)
|
70
|
-
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
78
|
+
v = Db.query("SELECT id, chapter_id, text, number, page FROM verses WHERE id = ?", [1], true)
|
79
|
+
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'], page: v['page'])
|
71
80
|
end
|
72
81
|
end
|
73
82
|
|
74
83
|
def prev
|
75
84
|
@prev ||= begin
|
76
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [id - 1], true)
|
77
|
-
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
85
|
+
v = Db.query("SELECT id, chapter_id, text, number, page FROM verses WHERE id = ?", [id - 1], true)
|
86
|
+
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'], page: v['page'])
|
78
87
|
rescue Kj::Iniquity
|
79
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [self.class.count], true)
|
80
|
-
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
88
|
+
v = Db.query("SELECT id, chapter_id, text, number, page FROM verses WHERE id = ?", [self.class.count], true)
|
89
|
+
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'], page: v['page'])
|
81
90
|
end
|
82
91
|
end
|
83
92
|
|
84
93
|
def text
|
85
94
|
@text ||= begin
|
86
|
-
verse = Db.query("SELECT
|
95
|
+
verse = Db.query("SELECT text FROM verses WHERE id = ?", [id], true)
|
87
96
|
verse['text']
|
88
97
|
end
|
89
98
|
end
|
90
99
|
|
100
|
+
def page
|
101
|
+
@page ||= begin
|
102
|
+
verse = Db.query("SELECT page FROM verses WHERE id = ?", [id], true)
|
103
|
+
verse['page']
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
91
107
|
end
|
92
108
|
|
93
109
|
end
|
data/spec/verse_spec.rb
CHANGED
data/vendor/import.rb
CHANGED
@@ -21,23 +21,32 @@ csv.each do |row| # build books table
|
|
21
21
|
end
|
22
22
|
|
23
23
|
current_book_id, current_book_name, current_chapter_id, current_chapter_number = nil, nil, nil, nil # import chapters, verses
|
24
|
+
current_page, current_word_count = 0, 0
|
24
25
|
File.readlines(File.join(path.parent.to_s, 'kjb.txt')).each do |line| #obtained from https://getbible.net/Bibles
|
25
26
|
parts = line.split('||')
|
26
27
|
book_name = parts[0]
|
27
28
|
chapter_number = parts[1].to_i
|
28
29
|
verse_number = parts[2].to_i
|
29
30
|
verse_text = parts[3].chomp
|
31
|
+
current_word_count += verse_text.split.length
|
32
|
+
|
30
33
|
if current_book_name != book_name
|
31
34
|
current_book_name = book_name
|
32
35
|
current_chapter_number = nil
|
36
|
+
current_word_count = 0
|
37
|
+
current_page += 1
|
33
38
|
current_book_id = db.get_first_row("SELECT id FROM books WHERE name = ?", [book_name])['id']
|
39
|
+
elsif current_word_count > 485
|
40
|
+
current_word_count = 0
|
41
|
+
current_page += 1
|
34
42
|
end
|
43
|
+
|
35
44
|
if current_chapter_number != chapter_number
|
36
45
|
current_chapter_number = chapter_number
|
37
46
|
db.execute("INSERT INTO chapters(number, book_id) VALUES (?, ?)", [chapter_number, current_book_id])
|
38
47
|
current_chapter_id = db.last_insert_row_id
|
39
48
|
end
|
40
|
-
db.execute("INSERT INTO verses(text, number, chapter_id) VALUES (?, ?, ?)", [verse_text, verse_number, current_chapter_id])
|
49
|
+
db.execute("INSERT INTO verses(text, number, chapter_id, page) VALUES (?, ?, ?, ?)", [verse_text, verse_number, current_chapter_id, current_page])
|
41
50
|
end
|
42
51
|
|
43
52
|
db.close
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David John
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|