mericope 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 570f05fdc93711d844e2cf6a74b80f4012582870
4
+ data.tar.gz: 296642223ee90fa83818fab295234ef67df8df47
5
+ SHA512:
6
+ metadata.gz: 342bd01c20d6d69d0bbb56d6f7b924c442a6b26e4dc146237bd343e0ec9679a36faa2c034ee54cd539413c128598ce8cd9010076ff2939833bd9a41be6093fe0
7
+ data.tar.gz: 7a86fed1dd64ec86469c20cf7259d83a9f4182083cbd20b4d69453ef60893c6e92d223278d14a5925037c85a9ceb5b36c928eabd4fe09a8e0ef8a4084ca802a8
data/README.mdown ADDED
@@ -0,0 +1,66 @@
1
+ # Mericope
2
+
3
+ Mericope is a gem for parsing Book of Mormon references (i.e. Mormon Pericopes). It's based on Pericope, a gem for parsing Bible references.
4
+
5
+ It recognizes common abbreviations and misspellings for names of the books of the Bible and a variety of ways of denoting ranges of chapters and verses. It can parse mericopes singly or out of a block of text. It's useful for comparing two mericopes for intersection and normalizing them into a well-formatted string.
6
+
7
+ ## Examples
8
+
9
+ ##### Recognize common abbreviations and misspellings for names of the books of the Bible
10
+
11
+ ```ruby
12
+ Mericope.new("ps 118:17").to_s # => Psalm 118:17
13
+ Mericope.new("jas 3:1-5").to_s # => James 3:1-5
14
+ Mericope.new("1 ne 12:4").to_s # => 1 Nephi 12:4
15
+ ```
16
+
17
+ ##### Compare two mericopes to see if they intersect
18
+
19
+ ```ruby
20
+ a = Mericope.new("Mark 13:1-6")
21
+ b = Mericope.new("Mark 13:5")
22
+ c = Mericope.new("Mark 13:6, 7")
23
+
24
+ a.intersects?(b) # => true
25
+ a.intersects?(c) # => true
26
+ b.intersects?(c) # => false
27
+ ```
28
+
29
+ ##### Parse mericopes out of a block of text
30
+
31
+ ```ruby
32
+ text = <<-TEXT
33
+ If then, the Word is so significant, great important attaches to its exact form. It has the form of a promise as in Isaiah 43:1: "Do not fear, for I have redeemed you; I have called you by name, you are mine," or as in Luke 2:10-11, "Do not be afraid..to you is born this day...a Savior." (Bayer, p51)
34
+ TEXT
35
+
36
+ Mericope.parse(text) # => [Isaiah 43:1, Luke 2:10-11]
37
+
38
+ Mericope.split(text) # => [" If then, the Word is so significant, great important attaches to its exact form. It has the form of a promise as in ", Isaiah 43:1, ": \"Do not fear, for I have redeemed you; I have called you by name, you are mine,\" or as in ", Luke 2:10-11, ", \"Do not be afraid..to you is born this day...a Savior.\" (Bayer, p51)\n"]
39
+ ```
40
+
41
+ ##### Converts mericopes into arrays of verses and reconstructs them from arrays of verses
42
+
43
+ ```ruby
44
+ array = Mericope.new("gen 1:1-3").to_a # => [1001001, 1001002, 1001003]
45
+ Mericope.new(array) # => Genesis 1:1-3
46
+ ```
47
+
48
+
49
+ ## History
50
+
51
+ ##### 0.6.1
52
+
53
+ - Deprecated the `report` and `extract` methods (they will be removed in 0.7.0)
54
+
55
+ ##### 0.6.0
56
+
57
+ - Removed the `index` attribute
58
+ - Deprecated the `pattern` argument to the method `Mericope.split(text, pattern=nil)` (it will be removed in 0.7.0)
59
+ - Improved performance by 2x
60
+ - Added this README
61
+ - Fixed a bug with parsing inverted [invalid] ranges (e.g. Mark 3-1)
62
+
63
+
64
+ ## License
65
+
66
+ Copyright (c) 2012 Bob Lail, released under the MIT license
data/bin/mericope ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.expand_path("../../lib", __FILE__)
4
+ require 'mericope/cli'
5
+
6
+ command = ARGV.shift
7
+ arguments = ARGV
8
+
9
+ Mericope::CLI.run(command, *arguments)
@@ -0,0 +1,84 @@
1
+ 1 genesis gen? gn
2
+ 2 exodus exo?d? ex
3
+ 3 leviticus le?v levi le
4
+ 4 numbers? nu?m nu numb
5
+ 5 deuteronomy deut? dt
6
+ 6 joshua jo?sh jos
7
+ 7 judges jd?gs? judg
8
+ 8 ruth? ru rth
9
+ # isa is technically an abbrev for both Isaiah and 1 Samuel, but it should only be for isaiah
10
+ 23 isaiah isa? ia isa[ih]
11
+ # there's a space in '1 st', etc, because query normalization puts one in; 2 before 1 because 'samuel' matches 1 samuel
12
+ 10 (?:2|ii|second|2 nd) ?samuels? (?:2|ii|second|2 nd) ?sa?m?
13
+ 9 (?:(?:1|i|first|1 st) ?)?samuels? (?:1|i|first|1 st) ?sa?m?
14
+ 12 (?:2|ii|second|2 nd) ?ki?ng?s? (?:2|ii|second|2 nd) ?ki? (?:2|ii|second|2 nd) ?kgs?
15
+ 11 (?:(?:1|i|first|1 st) ?)?ki?ng?s? (?:1|i) ?ki? (?:1|i|first|1 st) ?kgs?
16
+ 14 (?:2|ii|second|2 nd) ?chronicles? (?:2|ii|second|2 nd) ?chr? (?:2|ii|second|2 nd) ?chro?n?
17
+ 13 (?:(?:1|i|first|1 st) ?)?chronicles? (?:1|i|first|1 st) ?chr? (?:1|i|first|1 st) ?chro?n?
18
+ 15 ezra?
19
+ 16 nehemiah neh
20
+ 17 esther esth? es
21
+ 18 jo?b
22
+ 19 psa?lms? ps[as]?m?
23
+ 20 proverbs? pro?v? prvbs? pv
24
+ 21 ecclesiastes? eccl? eccles ecl?
25
+ 22 (?:the ?)?song ?of ?solomon (?:the ?)?song ?of ?songs sn?gs? songs? so?s sol? son s ?of ? s
26
+ 24 jeremiah? jer? jr jere
27
+ 25 lamentations? lam? lm
28
+ 26 ezekiel ez[ek] ezek
29
+ 27 daniel da?n dl da
30
+ 28 hosea ho?s hos?
31
+ 29 joel? jl
32
+ 30 amo?s?
33
+ 31 obadiah? obad? obd?
34
+ 32 jonah jon
35
+ 33 micah? mic?
36
+ 34 nahum nah? nahu
37
+ 35 habakk?uk habk?
38
+ 36 zephaniah? ze?ph?
39
+ 37 haggai ha?gg?
40
+ 38 zechariah? ze?ch?
41
+ 39 malachi? mal
42
+ 40 matthew ma?tt?
43
+ 41 ma?rk? mk
44
+ 42 luke? lk lu
45
+ # don't want john to gobble up the "jn" when they really mean 1 jn
46
+ 62 (?:1|i|first|1 st) ?john? (?:1|i|first|1 st) ?jh?n (?:1|i|first|1 st) ?jon? (?:1|i|first|1 st) ?jh
47
+ 63 (?:2|ii|second|2 nd) ?john? (?:2|ii|second|2 nd) ?jh?n (?:2|ii|second|2 nd) ?jon? (?:2|ii|second|2 nd) ?jh
48
+ 64 (?:3|iii|third|3 rd) ?john? (?:3|iii|third|3 rd) ?jh?n (?:3|iii|third|3 rd) ?jon? (?:3|iii|third|3 rd) ?jh
49
+ 43 john? jh?n
50
+ 44 acts act?
51
+ 45 romans? rom? rms? roms
52
+ 47 (?:2|ii|second|2 nd) ?corinthians? (?:2|ii|second|2 nd) ?cor? (?:2|ii) ?corint?h? (?:2|ii) ?corth
53
+ 46 (?:(?:1|i|first|1 st) ?)?corinthians? (?:1|i|first|1 st) ?cor? (?:1|i|first|1 st) ?corint?h? (?:1|i|first|1 st) ?corth
54
+ 48 galatians? gal? galat?
55
+ 49 ephesians? eph? ephe?s?
56
+ 50 philippians? phi?l php phi philipp?
57
+ 51 colossi?ans? col?
58
+ 53 (?:2|ii|second|2 nd) ?thessalonians? (?:2|ii|second|2 nd) ?thes{1,} (?:2|ii|second|2 nd) ?the?s?
59
+ 52 (?:(?:1|i|first|1 st) ?)?thessalonians? (?:(?:1|i|first|1 st) ?)?thes{1,} (?:(?:1|i|first|1 st) ?)?the?s?
60
+ 55 (?:2|ii|second|2 nd) ?timothy? (?:2|ii|second|2 nd) ?tim? (?:2|ii|second|2 nd) ?tm
61
+ 54 (?:(?:1|i|first|1 st) ?)?timothy? (?:1|i|first|1 st) ?tim? (?:1|i|first|1 st) ?tm
62
+ 56 titus tit?
63
+ 57 philemon phl?mn? philem?
64
+ 58 hebrews? heb
65
+ 59 james? ja[ms]? jms?
66
+ 61 (?:2|ii|second|2 nd) ?peter? (?:2|ii|second|2 nd) ?pe?t?r?
67
+ 60 (?:(?:1|i|first|1 st) ?)?peter? (?:1|i|first|1 st) ?pe?t?r?
68
+ 65 jude
69
+ 66 revelations? re?v re revel
70
+ 68 (?:2|ii|second|2 nd) ?nephi (?:2|ii|second|2 nd) ?ne
71
+ 67 (?:1|i|first|1 st) ?nephi (?:1|i|first|1 st) ?ne
72
+ 69 jacob jac
73
+ 70 enos en
74
+ 71 jarom jar
75
+ 72 omni om
76
+ 73 words of mormon wom
77
+ 74 mosiah mosh?
78
+ 75 alma alm?
79
+ 76 helaman hela?
80
+ 77 (?:3|iii|third|3 rd) ?nephi (?:3|iii|third|3 rd) ?ne
81
+ 78 (?:4|iv|fourth|4 th) ?nephi (?:4|iv|fourth|4 th) ?ne
82
+ 79 mormon morm
83
+ 80 ether eth
84
+ 81 moroni moro