kj 0.0.12 → 0.0.13
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/Rakefile +1 -0
- data/VERSION +1 -1
- data/kj.gemspec +3 -3
- data/lib/kj.rb +7 -5
- data/lib/kj/base.rb +1 -0
- data/lib/kj/book.rb +2 -0
- data/lib/kj/chapter.rb +5 -3
- data/lib/kj/db.rb +6 -0
- data/lib/kj/verse.rb +17 -3
- data/spec/verse_spec.rb +12 -0
- 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: c9f7e20fd8120d77b7da0104ce83206f4627ab00
|
4
|
+
data.tar.gz: 67a04df2abcac361048384c5d8bc56cfbba0fb01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa98bb1dece5005f647cd6bbfbc2a6507b2bc2d7ab90ac8d2b6c51b685060c1e493bd348643e89d339f3e7b6f264d13e6307baa7f9cf7d39663ea4a1818fd5f4
|
7
|
+
data.tar.gz: dc51ac981ca416633ee45e4760fb78d566b1945d9dcc1f2b8ba76404bebd6417adc63cb7b48c3f270310c952467bbb7034a7c2390dcf211b42d4945b689898e3
|
data/Rakefile
CHANGED
@@ -21,6 +21,7 @@ Jeweler::Tasks.new do |gem|
|
|
21
21
|
gem.description = %Q{kj is a simple rubygem for accessing the King James Bible. It uses an embedded sqlite data store.}
|
22
22
|
gem.email = "djohn@arch-no.org"
|
23
23
|
gem.authors = ["David John"]
|
24
|
+
gem.require_path = "lib"
|
24
25
|
# dependencies defined in Gemfile
|
25
26
|
end
|
26
27
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.13
|
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.13 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.13"
|
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-09"
|
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
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require 'kj/chapter'
|
5
|
-
require 'kj/verse'
|
1
|
+
require_relative 'kj/book'
|
2
|
+
require_relative 'kj/chapter'
|
3
|
+
require_relative 'kj/verse'
|
6
4
|
|
7
5
|
module Kj
|
8
6
|
|
@@ -28,6 +26,10 @@ module Kj
|
|
28
26
|
Verse.random
|
29
27
|
end
|
30
28
|
|
29
|
+
def at(percent)
|
30
|
+
Verse.at(percent)
|
31
|
+
end
|
32
|
+
|
31
33
|
end
|
32
34
|
|
33
35
|
end
|
data/lib/kj/base.rb
CHANGED
data/lib/kj/book.rb
CHANGED
data/lib/kj/chapter.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
1
3
|
module Kj
|
2
4
|
|
3
5
|
class Chapter < Base
|
@@ -36,7 +38,7 @@ module Kj
|
|
36
38
|
|
37
39
|
def next
|
38
40
|
@next ||= begin
|
39
|
-
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id
|
41
|
+
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id = ?", [id + 1], true)
|
40
42
|
self.class.new(id: c['id'], book_id: c['book_id'], number: c['number'])
|
41
43
|
rescue Kj::Iniquity
|
42
44
|
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id = ?", [1], true)
|
@@ -46,7 +48,7 @@ module Kj
|
|
46
48
|
|
47
49
|
def prev
|
48
50
|
@prev ||= begin
|
49
|
-
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id
|
51
|
+
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id = ?", [id - 1], true)
|
50
52
|
self.class.new(id: c['id'], book_id: c['book_id'], number: c['number'])
|
51
53
|
rescue Kj::Iniquity
|
52
54
|
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id = ?", [self.class.count], true)
|
@@ -55,7 +57,7 @@ module Kj
|
|
55
57
|
end
|
56
58
|
|
57
59
|
def self.count
|
58
|
-
|
60
|
+
1189
|
59
61
|
end
|
60
62
|
|
61
63
|
def self.random
|
data/lib/kj/db.rb
CHANGED
@@ -11,8 +11,14 @@ module Kj
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
def self.select(params={table_name: nil, fields: [], conditions: {}, return_first_record: false, operator: 'AND'})
|
15
|
+
sql = "SELECT %s FROM %s WHERE %s" % [params[:fields].join(','), params[:table_name], params[:conditions].keys.map{|key| "#{key} = ?"}.join(" #{params[:operator]} ")]
|
16
|
+
query(sql, params[:conditions].values, params[:limit] == 1)
|
17
|
+
end
|
18
|
+
|
14
19
|
def self.query(sql, values=[], return_first_record=false)
|
15
20
|
db.results_as_hash = true
|
21
|
+
sql.gsub!(/^.{6}/, 'SELECT')
|
16
22
|
if return_first_record
|
17
23
|
result = db.get_first_row(sql, values)
|
18
24
|
result.nil? ? raise(Iniquity, "Not found") : result
|
data/lib/kj/verse.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
1
3
|
module Kj
|
2
4
|
|
3
|
-
class Verse
|
5
|
+
class Verse < Base
|
4
6
|
|
5
7
|
attr_accessor :id, :chapter_id, :number
|
6
8
|
attr_writer :chapter
|
@@ -24,6 +26,18 @@ module Kj
|
|
24
26
|
new(id: verse['id'], chapter_id: verse['chapter_id'], number: verse['number'])
|
25
27
|
end
|
26
28
|
|
29
|
+
def self.percent(decimal)
|
30
|
+
if decimal.round(3) <= 0
|
31
|
+
verse_id = 1
|
32
|
+
elsif decimal.round(3) >= 1
|
33
|
+
verse_id = count
|
34
|
+
else
|
35
|
+
verse_id = (count * decimal).round
|
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'])
|
39
|
+
end
|
40
|
+
|
27
41
|
def chapter
|
28
42
|
@chapter ||= begin
|
29
43
|
c = Db.query("SELECT id, book_id, number FROM chapters WHERE id = ?", [chapter_id], true)
|
@@ -49,7 +63,7 @@ module Kj
|
|
49
63
|
|
50
64
|
def next
|
51
65
|
@next ||= begin
|
52
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id
|
66
|
+
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [id + 1], true)
|
53
67
|
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
54
68
|
rescue Kj::Iniquity
|
55
69
|
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [1], true)
|
@@ -59,7 +73,7 @@ module Kj
|
|
59
73
|
|
60
74
|
def prev
|
61
75
|
@prev ||= begin
|
62
|
-
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id
|
76
|
+
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [id - 1], true)
|
63
77
|
self.class.new(id: v['id'], chapter_id: v['chapter_id'], text: v['text'], number: v['number'])
|
64
78
|
rescue Kj::Iniquity
|
65
79
|
v = Db.query("SELECT id, chapter_id, text, number FROM verses WHERE id = ?", [self.class.count], true)
|
data/spec/verse_spec.rb
CHANGED
@@ -36,6 +36,18 @@ describe "Kj" do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe '.percent' do
|
40
|
+
it 'returns gen 1:1 when given <=0' do
|
41
|
+
expect(Kj::Verse.percent(0).id).to eq(1)
|
42
|
+
end
|
43
|
+
it 'returns rev 22:21 when given >=1' do
|
44
|
+
expect(Kj::Verse.percent(1).id).to eq(Kj::Verse.count)
|
45
|
+
end
|
46
|
+
it 'returns the correct verse' do
|
47
|
+
expect(Kj::Verse.percent(0.5).id).to eq(15551)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
39
51
|
end
|
40
52
|
|
41
53
|
end
|
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.13
|
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-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|