scripref 0.8.0 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 373b4b572bcb6fadc58872590bc98e75f5bebe3c
4
- data.tar.gz: be215c400b76c7327bdeb63b1bff52917c854eca
3
+ metadata.gz: a7969fae6655c502970897c3a7c75e5542e35f70
4
+ data.tar.gz: 4a71db57ad05ad5be040812473904d8db8dfa712
5
5
  SHA512:
6
- metadata.gz: fc24a4742a42477c252edd1c06fb52f2b41bb6411479556921b39e2512082accc7ce9270d0d87dc6b86032ba13847f3bf9074268b18ac0cce789cd90faf8918c
7
- data.tar.gz: 31e56ca2e1000abc2a8bdcdf6b7af0c99b6c49e604dbdd0f530dd02416b4e1d188884ff4428e466c3b367439357876c4b66d4244ca61e42e6bfb4a59de283608
6
+ metadata.gz: 54f273d53bf3e1ebdab926508c7763ad97542088fdaa9a3b65e5d6fefe29c4e577fd3da6931be41e646c84cf87729347ad27be84d5e8790a71ad9794b607409f
7
+ data.tar.gz: 6ce53ebcd0a65466877bbc57c22c7d0e663522402f30dea5950df31fbfa0ab2debb37afd111b88653cacf30a8d01fe66929313d9ea1b7fe856380452ae368ff8
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 0.9.0
2
+ Differentiate between verse addons and postfixes for one ore more following verses.
3
+ New methods Parser#postfix_one_following_verse and Parser#postfix_more_following_verses.
4
+
5
+
1
6
  0.8.0
2
7
  Formatting of verse addons implemented.
3
8
  Refactoring: Rename methods in Formatter to distinguish between format_* and process_*.
@@ -43,7 +43,19 @@ module Scripref
43
43
  VERSE_SEP_RE = /,\s*/o
44
44
 
45
45
  # Regular expression to match addons for a verse.
46
- VERSE_ADDON_RE = /([ab]|ff?)\s*/o
46
+ VERSE_ADDON_RE = /[ab]\s*/o
47
+
48
+ # Postfix for one following verse
49
+ POSTFIX_ONE_FOLLOWING_VERSE = 'f'
50
+
51
+ # Regular expression to match postfix for one following verse
52
+ POSTFIX_ONE_FOLLOWING_VERSE_RE = /f\b\s*/o
53
+
54
+ # Postfix for more following verses
55
+ POSTFIX_MORE_FOLLOWING_VERSES = 'ff'
56
+
57
+ # Regular expression to match postfix for more following verses
58
+ POSTFIX_MORE_FOLLOWING_VERSES_RE = /ff\b\s*/o
47
59
 
48
60
  pass = '([1-3]\s*)?[A-Z][a-z]+\.?\s*(\d+\s*[,.\-]\s*)*\d+\s*'
49
61
 
@@ -110,6 +110,14 @@ module Scripref
110
110
 
111
111
  def process_v2
112
112
  v2 = @pass.v2
113
+ case v2
114
+ when :f
115
+ @result << postfix_one_following_verse
116
+ return
117
+ when :ff
118
+ @result << postfix_more_following_verses
119
+ return
120
+ end
113
121
  if v2 && (@changed || @last_v != v2)
114
122
  if @hyphen
115
123
  if ! book_has_only_one_chapter?(@pass.b2)
@@ -40,7 +40,19 @@ module Scripref
40
40
  VERSE_SEP_RE = /\.\s*/o
41
41
 
42
42
  # Regular expression to match addons for a verse.
43
- VERSE_ADDON_RE = /([ab]|ff?)\s*/o
43
+ VERSE_ADDON_RE = /[ab]\s*/o
44
+
45
+ # Postfix for one following verse
46
+ POSTFIX_ONE_FOLLOWING_VERSE = 'f'
47
+
48
+ # Regular expression to match postfix for one following verse
49
+ POSTFIX_ONE_FOLLOWING_VERSE_RE = /f\b\s*/o
50
+
51
+ # Postfix for more following verses
52
+ POSTFIX_MORE_FOLLOWING_VERSES = 'ff'
53
+
54
+ # Regular expression to match postfix for more following verses
55
+ POSTFIX_MORE_FOLLOWING_VERSES_RE = /ff\b\s*/o
44
56
 
45
57
  pass = '([1-5]\.?\s*)?[A-Z][a-zäöü]+\.?\s*(\d+\s*[,.\-]\s*)*\d+\s*'
46
58
 
@@ -29,7 +29,7 @@ module Scripref
29
29
  # for example {'Phil' => 'Philipper'}
30
30
  # usual overwritten in Mixins
31
31
  def special_abbrev_mapping
32
- Hash.new
32
+ @special_abbrev_mapping ||= {}
33
33
  end
34
34
 
35
35
  # Parsing a string of a scripture reference
@@ -93,12 +93,11 @@ module Scripref
93
93
  @v1 = @v2 = s.to_i
94
94
 
95
95
  if addon = verse_addon
96
- case addon
97
- when :f, :ff
98
- @v2 = addon
99
- when :a, :b, :c
100
- @a1 = addon
101
- end
96
+ @a1 = addon
97
+ end
98
+
99
+ if postfix = verse_postfix
100
+ @v2 = postfix
102
101
  end
103
102
 
104
103
  if hyphen
@@ -156,10 +155,7 @@ module Scripref
156
155
  @v2 = s.to_i
157
156
 
158
157
  if addon = verse_addon
159
- case addon
160
- when :a, :b, :c
161
- @a2 = addon
162
- end
158
+ @a2 = addon
163
159
  end
164
160
 
165
161
  if verse_sep
@@ -232,6 +228,17 @@ module Scripref
232
228
  end
233
229
  end
234
230
 
231
+ # try to parse postfixes for verse
232
+ def verse_postfix
233
+ s = (scan(postfix_one_following_verse_re) or scan(postfix_more_following_verses_re))
234
+ if s
235
+ @text << s
236
+ s.to_sym
237
+ else
238
+ nil
239
+ end
240
+ end
241
+
235
242
  def push_passage
236
243
  @result << Passage.new(@text, @b1, @c1, @v1, @b2, @c2, @v2, a1: @a1, a2: @a2)
237
244
  @text = ''
data/lib/scripref.rb CHANGED
@@ -8,7 +8,7 @@ require 'scripref/german'
8
8
 
9
9
  module Scripref
10
10
 
11
- VERSION = '0.8.0'
11
+ VERSION = '0.9.0'
12
12
 
13
13
  Passage = Struct.new(:text, :b1, :c1, :v1, :b2, :c2, :v2, :a1, :a2) do
14
14
 
@@ -120,6 +120,18 @@ class TestFormatter < Test::Unit::TestCase
120
120
  check_formatting
121
121
  end
122
122
 
123
+ def test_postfix_one_following_verse
124
+ @german = 'Markus 2,2f'
125
+ @english = 'Mark 2:2f'
126
+ check_formatting
127
+ end
128
+
129
+ def test_postfix_more_following_verses
130
+ @german = 'Markus 2,2ff'
131
+ @english = 'Mark 2:2ff'
132
+ check_formatting
133
+ end
134
+
123
135
  private
124
136
 
125
137
  def check_formatting
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scripref
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Friedrich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-14 00:00:00.000000000 Z
11
+ date: 2016-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rim