bible_parser 1.0.0 → 1.1.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 +5 -5
- data/README.md +11 -3
- data/lib/bible_parser/parsers.rb +3 -1
- data/lib/bible_parser/parsers/zxbml.rb +2 -0
- data/lib/bible_parser/parsers/zxbml/book_ids.rb +76 -0
- data/lib/bible_parser/parsers/zxbml/document.rb +62 -0
- data/lib/bible_parser/parsers/zxbml/parser.rb +13 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 303f4b032cdffa6028a7a23be365cdb0e9db69565340758c74e3ac42b45b12b3
|
4
|
+
data.tar.gz: 2366b6b3f08eb0ecfcaeebd06f2bf9cf9d5975360515c5b17d6b141e4b8b6427
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0feb3be0d7eb1f36859cc62ddfac585e90fd158b1e7151e55b6445f779a519e8514de60fe869bebe2e424b65a08e1d52f5e2e4d40fb7d49d1a1d030b554d3c9
|
7
|
+
data.tar.gz: 58f73c55c3d700f1cbac8cda5bd5f8c8e61eb16524953c18d4ed37313d7a2ba47de9367a1cf71e6492c1dc3795799d9f8e9d55a4599150e0096ae56b3ec9a029
|
data/README.md
CHANGED
@@ -4,7 +4,11 @@
|
|
4
4
|
|
5
5
|
This is a Ruby library for parsing different bible XML formats.
|
6
6
|
|
7
|
-
|
7
|
+
We currently support:
|
8
|
+
|
9
|
+
- USFX (for USFM, see 'Other Tools' below)
|
10
|
+
- OSIS
|
11
|
+
- Zefania
|
8
12
|
|
9
13
|
## Install
|
10
14
|
|
@@ -14,7 +18,7 @@ gem install bible_parser
|
|
14
18
|
|
15
19
|
## Use
|
16
20
|
|
17
|
-
You can get
|
21
|
+
You can get a bible version in XML format [here](https://github.com/seven1m/open-bibles).
|
18
22
|
|
19
23
|
```ruby
|
20
24
|
require 'bible_parser'
|
@@ -28,4 +32,8 @@ verse.text
|
|
28
32
|
|
29
33
|
## License
|
30
34
|
|
31
|
-
Copyright (c)
|
35
|
+
Copyright (c) Tim Morgan. Licensed MIT. See LICENSE file.
|
36
|
+
|
37
|
+
## Other Tools
|
38
|
+
|
39
|
+
- [u2o](https://github.com/adyeths/u2o) - Python script to convert from USFM (a format our library does not support) to OSIS (an XML format we do support)
|
data/lib/bible_parser/parsers.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require_relative 'parsers/base'
|
2
2
|
require_relative 'parsers/usfx'
|
3
3
|
require_relative 'parsers/osis'
|
4
|
+
require_relative 'parsers/zxbml'
|
4
5
|
|
5
6
|
class BibleParser
|
6
7
|
PARSERS = {
|
7
8
|
'USFX' => Parsers::USFX::Parser,
|
8
|
-
'OSIS' => Parsers::OSIS::Parser
|
9
|
+
'OSIS' => Parsers::OSIS::Parser,
|
10
|
+
'ZXBML' => Parsers::ZXBML::Parser
|
9
11
|
}
|
10
12
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
class BibleParser
|
2
|
+
module Parsers
|
3
|
+
module ZXBML
|
4
|
+
module BookIDs
|
5
|
+
BOOK_IDS = {
|
6
|
+
1 => 'GEN',
|
7
|
+
2 => 'EXO',
|
8
|
+
3 => 'LEV',
|
9
|
+
4 => 'NUM',
|
10
|
+
5 => 'DEU',
|
11
|
+
6 => 'JOS',
|
12
|
+
7 => 'JDG',
|
13
|
+
8 => 'RUT',
|
14
|
+
9 => '1SA',
|
15
|
+
10 => '2SA',
|
16
|
+
11 => '1KI',
|
17
|
+
12 => '2KI',
|
18
|
+
13 => '1CH',
|
19
|
+
14 => '2CH',
|
20
|
+
15 => 'EZR',
|
21
|
+
16 => 'NEH',
|
22
|
+
17 => 'EST',
|
23
|
+
18 => 'JOB',
|
24
|
+
19 => 'PSA',
|
25
|
+
20 => 'PRO',
|
26
|
+
21 => 'ECC',
|
27
|
+
22 => 'SNG',
|
28
|
+
23 => 'ISA',
|
29
|
+
24 => 'JER',
|
30
|
+
25 => 'LAM',
|
31
|
+
26 => 'EZK',
|
32
|
+
27 => 'DAN',
|
33
|
+
28 => 'HOS',
|
34
|
+
29 => 'JOL',
|
35
|
+
30 => 'AMO',
|
36
|
+
31 => 'OBA',
|
37
|
+
32 => 'JON',
|
38
|
+
33 => 'MIC',
|
39
|
+
34 => 'NAM',
|
40
|
+
35 => 'HAB',
|
41
|
+
36 => 'ZEP',
|
42
|
+
37 => 'HAG',
|
43
|
+
38 => 'ZEC',
|
44
|
+
39 => 'MAL',
|
45
|
+
40 => 'MAT',
|
46
|
+
41 => 'MRK',
|
47
|
+
42 => 'LUK',
|
48
|
+
43 => 'JHN',
|
49
|
+
44 => 'ACT',
|
50
|
+
45 => 'ROM',
|
51
|
+
46 => '1CO',
|
52
|
+
47 => '2CO',
|
53
|
+
48 => 'GAL',
|
54
|
+
49 => 'EPH',
|
55
|
+
50 => 'PHP',
|
56
|
+
51 => 'COL',
|
57
|
+
52 => '1TH',
|
58
|
+
53 => '2TH',
|
59
|
+
54 => '1TI',
|
60
|
+
55 => '2TI',
|
61
|
+
56 => 'TIT',
|
62
|
+
57 => 'PHM',
|
63
|
+
58 => 'HEB',
|
64
|
+
59 => 'JAS',
|
65
|
+
60 => '1PE',
|
66
|
+
61 => '2PE',
|
67
|
+
62 => '1JN',
|
68
|
+
63 => '2JN',
|
69
|
+
64 => '3JN',
|
70
|
+
65 => 'JUD',
|
71
|
+
66 => 'REV'
|
72
|
+
}
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative 'book_ids'
|
2
|
+
|
3
|
+
class BibleParser
|
4
|
+
module Parsers
|
5
|
+
module ZXBML
|
6
|
+
class Document < Base::Document
|
7
|
+
include BookIDs
|
8
|
+
|
9
|
+
def start_element(name, attributes)
|
10
|
+
case name
|
11
|
+
when 'BIBLEBOOK'
|
12
|
+
start_book(attributes)
|
13
|
+
when 'CHAPTER'
|
14
|
+
start_chapter(attributes)
|
15
|
+
when 'VERS'
|
16
|
+
start_verse(attributes)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def end_element(name)
|
21
|
+
case name
|
22
|
+
when 'BIBLEBOOK'
|
23
|
+
end_book
|
24
|
+
end_verse if @mode == 'verse'
|
25
|
+
when 'CHAPTER'
|
26
|
+
end_chapter
|
27
|
+
end_verse if @mode == 'verse'
|
28
|
+
when 'VERS'
|
29
|
+
end_verse
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def start_book(attributes)
|
34
|
+
bnumber = Hash[attributes]['bnumber'].to_i
|
35
|
+
@book_num += 1
|
36
|
+
@book_id = BOOK_IDS[bnumber]
|
37
|
+
@mode = 'book'
|
38
|
+
@book_title = Hash[attributes]['bname']
|
39
|
+
end
|
40
|
+
|
41
|
+
def start_chapter(attributes)
|
42
|
+
@chapter = Hash[attributes]['cnumber'].to_i
|
43
|
+
end
|
44
|
+
|
45
|
+
def start_verse(attributes)
|
46
|
+
@verse = Hash[attributes]['vnumber'].to_i
|
47
|
+
@text = ''
|
48
|
+
@mode = 'verse'
|
49
|
+
end
|
50
|
+
|
51
|
+
def characters(string)
|
52
|
+
case @mode
|
53
|
+
when 'book-title'
|
54
|
+
@book_title << string.gsub(/\n/, '')
|
55
|
+
when 'verse'
|
56
|
+
@text << string
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bible_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -74,6 +74,10 @@ files:
|
|
74
74
|
- lib/bible_parser/parsers/usfx.rb
|
75
75
|
- lib/bible_parser/parsers/usfx/document.rb
|
76
76
|
- lib/bible_parser/parsers/usfx/parser.rb
|
77
|
+
- lib/bible_parser/parsers/zxbml.rb
|
78
|
+
- lib/bible_parser/parsers/zxbml/book_ids.rb
|
79
|
+
- lib/bible_parser/parsers/zxbml/document.rb
|
80
|
+
- lib/bible_parser/parsers/zxbml/parser.rb
|
77
81
|
- lib/bible_parser/verse.rb
|
78
82
|
homepage: https://github.com/seven1m/bible_parser
|
79
83
|
licenses: []
|
@@ -93,8 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
93
97
|
- !ruby/object:Gem::Version
|
94
98
|
version: '0'
|
95
99
|
requirements: []
|
96
|
-
|
97
|
-
rubygems_version: 2.4.3
|
100
|
+
rubygems_version: 3.0.3
|
98
101
|
signing_key:
|
99
102
|
specification_version: 4
|
100
103
|
summary: Library for parsing the bible in various formats
|