bible_passage 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +65 -0
- data/Guardfile +7 -0
- data/LICENSE.md +21 -0
- data/README.md +35 -0
- data/bible_passage.gemspec +21 -0
- data/lib/bible_passage/book_data_store.rb +291 -0
- data/lib/bible_passage/book_key_translator.rb +346 -0
- data/lib/bible_passage/invalid_reference_error.rb +1 -0
- data/lib/bible_passage/reference.rb +243 -0
- data/lib/bible_passage.rb +5 -0
- data/spec/bible_passage/book_data_store_spec.rb +178 -0
- data/spec/bible_passage/book_key_translator_spec.rb +355 -0
- data/spec/bible_passage/reference_spec.rb +272 -0
- data/spec/spec_helper.rb +1 -0
- metadata +116 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1cbd230d3cc2306f39c573a30f07b236fad30fd4
|
4
|
+
data.tar.gz: 298afa89ebb98e3d873c672b28e8201180e88ab4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8ae6572fe238240cb1d691bef1591130aa88d0acb7885435929a72a6d83e020ffe0f1f6f1e81662757271f32483e1d6b7881fe1d6143490bf5d824f13886962d
|
7
|
+
data.tar.gz: dd9c7610bfe80d771ae4a2296ed0715836e6e651a7ce28ff48d1e61b635b7d3facdf4ae4e78b828d1f91397619dee5395e2a28c4c2f1db4d1766743b984e8077
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
bible-passage (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
celluloid (0.15.2)
|
10
|
+
timers (~> 1.1.0)
|
11
|
+
coderay (1.1.0)
|
12
|
+
diff-lcs (1.2.5)
|
13
|
+
ffi (1.9.3)
|
14
|
+
formatador (0.2.5)
|
15
|
+
fuubar (1.3.3)
|
16
|
+
rspec (>= 2.14.0, < 3.1.0)
|
17
|
+
ruby-progressbar (~> 1.4)
|
18
|
+
guard (2.6.1)
|
19
|
+
formatador (>= 0.2.4)
|
20
|
+
listen (~> 2.7)
|
21
|
+
lumberjack (~> 1.0)
|
22
|
+
pry (>= 0.9.12)
|
23
|
+
thor (>= 0.18.1)
|
24
|
+
guard-rspec (4.2.10)
|
25
|
+
guard (~> 2.1)
|
26
|
+
rspec (>= 2.14, < 4.0)
|
27
|
+
listen (2.7.9)
|
28
|
+
celluloid (>= 0.15.2)
|
29
|
+
rb-fsevent (>= 0.9.3)
|
30
|
+
rb-inotify (>= 0.9)
|
31
|
+
lumberjack (1.0.9)
|
32
|
+
method_source (0.8.2)
|
33
|
+
pry (0.10.0)
|
34
|
+
coderay (~> 1.1.0)
|
35
|
+
method_source (~> 0.8.1)
|
36
|
+
slop (~> 3.4)
|
37
|
+
rb-fsevent (0.9.4)
|
38
|
+
rb-inotify (0.9.5)
|
39
|
+
ffi (>= 0.5.0)
|
40
|
+
rspec (3.0.0)
|
41
|
+
rspec-core (~> 3.0.0)
|
42
|
+
rspec-expectations (~> 3.0.0)
|
43
|
+
rspec-mocks (~> 3.0.0)
|
44
|
+
rspec-core (3.0.2)
|
45
|
+
rspec-support (~> 3.0.0)
|
46
|
+
rspec-expectations (3.0.2)
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
48
|
+
rspec-support (~> 3.0.0)
|
49
|
+
rspec-mocks (3.0.2)
|
50
|
+
rspec-support (~> 3.0.0)
|
51
|
+
rspec-support (3.0.2)
|
52
|
+
ruby-progressbar (1.5.1)
|
53
|
+
slop (3.5.0)
|
54
|
+
thor (0.19.1)
|
55
|
+
timers (1.1.0)
|
56
|
+
|
57
|
+
PLATFORMS
|
58
|
+
ruby
|
59
|
+
|
60
|
+
DEPENDENCIES
|
61
|
+
bible-passage!
|
62
|
+
fuubar (~> 1.3)
|
63
|
+
guard (~> 2.6)
|
64
|
+
guard-rspec (~> 4.2)
|
65
|
+
rspec (~> 3.0)
|
data/Guardfile
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Simon Matthew Wilkins
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
bible_passage
|
2
|
+
=============
|
3
|
+
|
4
|
+
A simple library for parsing and rendering bible passages.
|
5
|
+
|
6
|
+
|
7
|
+
# Usage
|
8
|
+
|
9
|
+
The most common usage of bible_passage will be to parse a reference string, which will return a new <code>BiblePassage::Reference</code> object
|
10
|
+
|
11
|
+
ref = BiblePassage::Reference.parse "gen 1:2-3"
|
12
|
+
|
13
|
+
This <code>BiblePassage::Reference</code> object can be output as a string
|
14
|
+
|
15
|
+
> ref.to_s
|
16
|
+
=> "Genesis 1:2-3"
|
17
|
+
|
18
|
+
bible_passage can handle common book name abbreviations, and will also simplify references where appropriate, eg.
|
19
|
+
|
20
|
+
> BiblePassage::Reference.parse("Genesis 1:1-50:26").to_s
|
21
|
+
=> "Genesis"
|
22
|
+
|
23
|
+
It will check the validity of references and throw a <code>BiblePassage::InvalidReferenceError</code> if a reference is not valid
|
24
|
+
|
25
|
+
> BiblePassage::Reference.parse("mt 3-1")
|
26
|
+
BiblePassage::InvalidReferenceError: to_chapter cannot be before from_chapter
|
27
|
+
|
28
|
+
> BiblePassage::Reference.parse("Exudos")
|
29
|
+
BiblePassage::InvalidReferenceError: Exudos is not a valid book
|
30
|
+
|
31
|
+
> BiblePassage::Reference.parse("Ex 41")
|
32
|
+
BiblePassage::InvalidReferenceError: Exodus doesn't have a chapter 41
|
33
|
+
|
34
|
+
# License
|
35
|
+
bible_passage is distributed under the [MIT License](http://www.opensource.org/licenses/MIT).
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'bible_passage'
|
3
|
+
s.summary = 'A simple library for parsing and rendering bible passages'
|
4
|
+
s.version = '0.0.1'
|
5
|
+
s.authors = ["Si Wilkins"]
|
6
|
+
s.email = 'si.wilkins@gmail.com'
|
7
|
+
s.homepage = 'https://github.com/siwilkins/bible_passage'
|
8
|
+
readmes = Dir['*'].reject{ |x| x = ~ /(^|[^.a-z])[a-z]+/ || x == "TODO" || x =~ /\.gem$/ }
|
9
|
+
s.files = Dir['lib/**/*', 'spec/**/*'] + readmes
|
10
|
+
s.has_rdoc = false
|
11
|
+
s.test_files = Dir["test/**/*_test.rb"]
|
12
|
+
s.license = "MIT"
|
13
|
+
s.description = <<-END
|
14
|
+
bible_passage provides a facility for parsing a string to check its validity
|
15
|
+
as a Bible reference, and then render it in a consistent manner.
|
16
|
+
END
|
17
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
18
|
+
s.add_development_dependency 'guard', '~> 2.6'
|
19
|
+
s.add_development_dependency 'guard-rspec', '~> 4.2'
|
20
|
+
s.add_development_dependency 'fuubar', '~> 1.3'
|
21
|
+
end
|
@@ -0,0 +1,291 @@
|
|
1
|
+
module BiblePassage
|
2
|
+
|
3
|
+
class BookDataStore
|
4
|
+
|
5
|
+
BOOK_DATA = {
|
6
|
+
gen: {
|
7
|
+
name: 'Genesis',
|
8
|
+
chapters: [31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 54, 33, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26],
|
9
|
+
},
|
10
|
+
exod: {
|
11
|
+
name: 'Exodus',
|
12
|
+
chapters: [22, 25, 22, 31, 23, 30, 29, 28, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 37, 30, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38]
|
13
|
+
},
|
14
|
+
lev: {
|
15
|
+
name: 'Leviticus',
|
16
|
+
chapters: [17, 16, 17, 35, 26, 23, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34]
|
17
|
+
},
|
18
|
+
num: {
|
19
|
+
name: 'Numbers',
|
20
|
+
chapters: [54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 35, 28, 32, 22, 29, 35, 41, 30, 25, 19, 65, 23, 31, 39, 17, 54, 42, 56, 29, 34, 13],
|
21
|
+
},
|
22
|
+
deut: {
|
23
|
+
name: 'Deuteronomy',
|
24
|
+
chapters: [46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 31, 19, 29, 23, 22, 20, 22, 21, 20, 23, 29, 26, 22, 19, 19, 26, 69, 28, 20, 30, 52, 29, 12]
|
25
|
+
},
|
26
|
+
josh: {
|
27
|
+
name: 'Joshua',
|
28
|
+
chapters: [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33]
|
29
|
+
},
|
30
|
+
judg: {
|
31
|
+
name: 'Judges',
|
32
|
+
chapters: [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25]
|
33
|
+
},
|
34
|
+
ruth: {
|
35
|
+
name: 'Ruth',
|
36
|
+
chapters: [22, 23, 18, 22]
|
37
|
+
},
|
38
|
+
'1sam'.to_sym => {
|
39
|
+
name: '1 Samuel',
|
40
|
+
chapters: [28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 16, 23, 28, 23, 43, 25, 12, 25, 11, 31, 13]
|
41
|
+
},
|
42
|
+
'2sam'.to_sym => {
|
43
|
+
name: '2 Samuel',
|
44
|
+
chapters: [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 32, 44, 26, 22, 51, 39, 25]
|
45
|
+
},
|
46
|
+
'1kings'.to_sym => {
|
47
|
+
name: '1 Kings',
|
48
|
+
chapters: [53, 46, 28, 20, 32, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 54]
|
49
|
+
},
|
50
|
+
'2kings'.to_sym => {
|
51
|
+
name: '2 Kings',
|
52
|
+
chapters: [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 20, 22, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30]
|
53
|
+
},
|
54
|
+
'1chr'.to_sym => {
|
55
|
+
name: '1 Chronicles',
|
56
|
+
chapters: [54, 55, 24, 43, 41, 66, 40, 40, 44, 14, 47, 41, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30]
|
57
|
+
},
|
58
|
+
'2chr'.to_sym => {
|
59
|
+
name: '2 Chronicles',
|
60
|
+
chapters: [18, 17, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 23, 14, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 26, 23]
|
61
|
+
},
|
62
|
+
ezra: {
|
63
|
+
name: 'Ezra',
|
64
|
+
chapters: [11, 70, 13, 24, 17, 22, 28, 36, 15, 44]
|
65
|
+
},
|
66
|
+
neh: {
|
67
|
+
name: 'Nehemiah',
|
68
|
+
chapters: [11, 20, 38, 17, 19, 19, 72, 18, 37, 40, 36, 47, 31]
|
69
|
+
},
|
70
|
+
esth: {
|
71
|
+
name: 'Esther',
|
72
|
+
chapters: [22, 23, 15, 17, 14, 14, 10, 17, 32, 3]
|
73
|
+
},
|
74
|
+
job: {
|
75
|
+
name: 'Job',
|
76
|
+
chapters: [22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 21, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 32, 26, 17]
|
77
|
+
},
|
78
|
+
ps: {
|
79
|
+
name: 'Psalms',
|
80
|
+
chapters: [6, 11, 9, 9, 13, 11, 18, 10, 21, 18, 7, 9, 6, 7, 5, 11, 15, 51, 15, 10, 14, 32, 6, 10, 22, 11, 14, 9, 11, 13, 25, 11, 22, 23, 28, 13, 40, 23, 14, 18, 14, 12, 5, 27, 18, 12, 10, 15, 21, 23, 21, 11, 7, 9, 24, 14, 12, 12, 18, 14, 9, 13, 12, 11, 14, 20, 8, 36, 37, 6, 24, 20, 28, 23, 11, 13, 21, 72, 13, 20, 17, 8, 19, 13, 14, 17, 7, 19, 53, 17, 16, 16, 5, 23, 11, 13, 12, 9, 9, 5, 8, 29, 22, 35, 45, 48, 43, 14, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 14, 10, 8, 12, 15, 21, 10, 20, 14, 9, 6]
|
81
|
+
},
|
82
|
+
prov: {
|
83
|
+
name: 'Proverbs',
|
84
|
+
chapters: [33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31]
|
85
|
+
},
|
86
|
+
eccl: {
|
87
|
+
name: 'Ecclesiastes',
|
88
|
+
chapters: [18, 26, 22, 17, 19, 12, 29, 17, 18, 20, 10, 14]
|
89
|
+
},
|
90
|
+
song: {
|
91
|
+
name: 'Song of Songs',
|
92
|
+
chapters: [17, 17, 11, 16, 16, 12, 14, 14]
|
93
|
+
},
|
94
|
+
isa: {
|
95
|
+
name: 'Isaiah',
|
96
|
+
chapters: [31, 22, 26, 6, 30, 13, 25, 23, 20, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 11, 25, 24]
|
97
|
+
},
|
98
|
+
jer: {
|
99
|
+
name: 'Jeremiah',
|
100
|
+
chapters: [19, 37, 25, 31, 31, 30, 34, 23, 25, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34]
|
101
|
+
},
|
102
|
+
lam: {
|
103
|
+
name: 'Lamentations',
|
104
|
+
chapters: [22, 22, 66, 22, 22]
|
105
|
+
},
|
106
|
+
ezek: {
|
107
|
+
name: 'Ezekiel',
|
108
|
+
chapters: [28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 44, 37, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35]
|
109
|
+
},
|
110
|
+
dan: {
|
111
|
+
name: 'Daniel',
|
112
|
+
chapters: [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13]
|
113
|
+
},
|
114
|
+
hos: {
|
115
|
+
name: 'Hosea',
|
116
|
+
chapters: [9, 25, 5, 19, 15, 11, 16, 14, 17, 15, 11, 15, 15, 10, ]
|
117
|
+
},
|
118
|
+
joel: {
|
119
|
+
name: 'Joel',
|
120
|
+
chapters: [20, 32, 21]
|
121
|
+
},
|
122
|
+
amos: {
|
123
|
+
name: 'Amos',
|
124
|
+
chapters: [15, 16, 15, 13, 27, 14, 17, 14, 15]
|
125
|
+
},
|
126
|
+
obad: {
|
127
|
+
name: 'Obadiah',
|
128
|
+
chapters: [21]
|
129
|
+
},
|
130
|
+
jonah: {
|
131
|
+
name: 'Jonah',
|
132
|
+
chapters: [16, 11, 10, 11]
|
133
|
+
},
|
134
|
+
mic: {
|
135
|
+
name: 'Micah',
|
136
|
+
chapters: [16, 13, 12, 14, 14, 16, 20]
|
137
|
+
},
|
138
|
+
nah: {
|
139
|
+
name: 'Nahum',
|
140
|
+
chapters: [14, 14, 19]
|
141
|
+
},
|
142
|
+
hab: {
|
143
|
+
name: 'Habakkuk',
|
144
|
+
chapters: [17, 20, 19]
|
145
|
+
},
|
146
|
+
zeph: {
|
147
|
+
name: 'Zephaniah',
|
148
|
+
chapters: [8, 15, 20]
|
149
|
+
},
|
150
|
+
hag: {
|
151
|
+
name: 'Haggai',
|
152
|
+
chapters: [15, 23]
|
153
|
+
},
|
154
|
+
zech: {
|
155
|
+
name: 'Zechariah',
|
156
|
+
chapters: [17, 17, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21]
|
157
|
+
},
|
158
|
+
mal: {
|
159
|
+
name: 'Malachi',
|
160
|
+
chapters: [14, 17, 24, 6]
|
161
|
+
},
|
162
|
+
matt: {
|
163
|
+
name: 'Matthew',
|
164
|
+
chapters: [25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20]
|
165
|
+
},
|
166
|
+
mark: {
|
167
|
+
name: 'Mark',
|
168
|
+
chapters: [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20]
|
169
|
+
},
|
170
|
+
luke: {
|
171
|
+
name: 'Luke',
|
172
|
+
chapters: [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53]
|
173
|
+
},
|
174
|
+
john: {
|
175
|
+
name: 'John',
|
176
|
+
chapters: [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25]
|
177
|
+
},
|
178
|
+
acts: {
|
179
|
+
name: 'Acts',
|
180
|
+
chapters: [26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 40, 38, 40, 30, 35, 27, 27, 32, 44, 31]
|
181
|
+
},
|
182
|
+
rom: {
|
183
|
+
name: 'Romans',
|
184
|
+
chapters: [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27]
|
185
|
+
},
|
186
|
+
'1cor'.to_sym => {
|
187
|
+
name: '1 Corinthians',
|
188
|
+
chapters: [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24]
|
189
|
+
},
|
190
|
+
'2cor'.to_sym => {
|
191
|
+
name: '2 Corinthians',
|
192
|
+
chapters: [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 13]
|
193
|
+
},
|
194
|
+
gal: {
|
195
|
+
name: 'Galatians',
|
196
|
+
chapters: [24, 21, 29, 31, 26, 18]
|
197
|
+
},
|
198
|
+
eph: {
|
199
|
+
name: 'Ephesians',
|
200
|
+
chapters: [23, 22, 21, 32, 33, 24]
|
201
|
+
},
|
202
|
+
phil: {
|
203
|
+
name: 'Philippians',
|
204
|
+
chapters: [30, 30, 21, 23]
|
205
|
+
},
|
206
|
+
col: {
|
207
|
+
name: 'Colossians',
|
208
|
+
chapters: [29, 23, 25, 18]
|
209
|
+
},
|
210
|
+
'1thess'.to_sym => {
|
211
|
+
name: '1 Thessalonians',
|
212
|
+
chapters: [10, 20, 13, 18, 28]
|
213
|
+
},
|
214
|
+
'2thess'.to_sym => {
|
215
|
+
name: '2 Thessalonians',
|
216
|
+
chapters: [12, 17, 18]
|
217
|
+
},
|
218
|
+
'1tim'.to_sym => {
|
219
|
+
name: '1 Timothy',
|
220
|
+
chapters: [20, 15, 16, 16, 25, 21]
|
221
|
+
},
|
222
|
+
'2tim'.to_sym => {
|
223
|
+
name: '2 Timothy',
|
224
|
+
chapters: [18, 26, 17, 22]
|
225
|
+
},
|
226
|
+
titus: {
|
227
|
+
name: 'Titus',
|
228
|
+
chapters: [16, 15, 15, ]
|
229
|
+
},
|
230
|
+
phlm: {
|
231
|
+
name: 'Philemon',
|
232
|
+
chapters: [25]
|
233
|
+
},
|
234
|
+
heb: {
|
235
|
+
name: 'Hebrews',
|
236
|
+
chapters: [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25]
|
237
|
+
},
|
238
|
+
jas: {
|
239
|
+
name: 'James',
|
240
|
+
chapters: [27, 26, 18, 17, 20]
|
241
|
+
},
|
242
|
+
'1pet'.to_sym => {
|
243
|
+
name: '1 Peter',
|
244
|
+
chapters: [25, 25, 22, 19, 14]
|
245
|
+
},
|
246
|
+
'2pet'.to_sym => {
|
247
|
+
name: '2 Peter',
|
248
|
+
chapters: [21, 22, 18, ]
|
249
|
+
},
|
250
|
+
'1john'.to_sym => {
|
251
|
+
name: '1 John',
|
252
|
+
chapters: [10, 29, 24, 21, 21]
|
253
|
+
},
|
254
|
+
'2john'.to_sym => {
|
255
|
+
name: '2 John',
|
256
|
+
chapters: [13]
|
257
|
+
},
|
258
|
+
'3john'.to_sym => {
|
259
|
+
name: '3 John',
|
260
|
+
chapters: [15]
|
261
|
+
},
|
262
|
+
jude: {
|
263
|
+
name: 'Jude',
|
264
|
+
chapters: [25]
|
265
|
+
},
|
266
|
+
rev: {
|
267
|
+
name: 'Revelation',
|
268
|
+
chapters: [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21]
|
269
|
+
}
|
270
|
+
}
|
271
|
+
|
272
|
+
def book_name(key)
|
273
|
+
book = BOOK_DATA[key]
|
274
|
+
if book
|
275
|
+
book[:name]
|
276
|
+
else
|
277
|
+
raise(InvalidReferenceError.new("#{key} is not a valid book key"))
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
def number_of_chapters(key)
|
282
|
+
BOOK_DATA[key][:chapters].size
|
283
|
+
end
|
284
|
+
|
285
|
+
def number_of_verses(key, chapter)
|
286
|
+
BOOK_DATA[key][:chapters][chapter - 1]
|
287
|
+
end
|
288
|
+
|
289
|
+
end
|
290
|
+
|
291
|
+
end
|