tag_along 0.7.2 → 0.7.3
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/CHANGELOG +2 -0
- data/lib/tag_along/offsets.rb +11 -10
- data/lib/tag_along/version.rb +1 -1
- data/lib/tag_along.rb +45 -38
- metadata +1 -6
- data/1 +0 -1
- data/spec/files/t +0 -55
- data/spec/files/t_offsets.json +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3406f54328de2eda446a7267a7a8f40440a67866
|
4
|
+
data.tar.gz: 2281e8cebc82ba0287920ac3f41c5b302c1f63fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1420f52f09c7d5260abe8ebd6f9cdec024dabf10d3443ff9977149a7ab1cf9473ac1021d713ee9c816fcfff4fe0a2230da3e0875a4f3de7b97f445eae3138916
|
7
|
+
data.tar.gz: ac5192be2da0d9264052945a7b02e0ba1d89470822c711b52ad3893f15d19701b48511016e3c2f9188ad32f9c43a23554c2051d0bacb0216d0ae45154a4fe617
|
data/CHANGELOG
CHANGED
data/lib/tag_along/offsets.rb
CHANGED
@@ -42,20 +42,21 @@ class TagAlong
|
|
42
42
|
|
43
43
|
def process_hash
|
44
44
|
@offsets.each { |h| symbolize_keys(h) }
|
45
|
-
@offsets = @offsets.map do |
|
46
|
-
instantiate(
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
@offsets = @offsets.map do |h|
|
46
|
+
instantiate(h[@offset_start],
|
47
|
+
h[@offset_end],
|
48
|
+
h[@data_start],
|
49
|
+
h[@data_end])
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
def process_obj
|
54
|
-
@offsets = @offsets.map do |
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
@offsets = @offsets.map do |obj|
|
55
|
+
offset_start = obj.send(@offset_start)
|
56
|
+
offset_end = obj.send(@offset_end)
|
57
|
+
data_start = obj.send(@data_start)
|
58
|
+
data_end = obj.send(@data_end)
|
59
|
+
instantiate(offset_start, offset_end, data_start, data_end)
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
data/lib/tag_along/version.rb
CHANGED
data/lib/tag_along.rb
CHANGED
@@ -19,60 +19,67 @@ class TagAlong
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def tag(open_tag, close_tag)
|
22
|
-
|
23
|
-
|
22
|
+
opts = {
|
23
|
+
open_tag: open_tag,
|
24
|
+
close_tag: close_tag,
|
25
|
+
open_tag_subs: open_tag.scan(/%s/).size,
|
26
|
+
close_tag_subs: close_tag.scan(/%s/).size,
|
27
|
+
}
|
24
28
|
@tagged_text = @split_text.inject([]) do |res, t|
|
25
|
-
|
26
|
-
ot = dyn_tag(open_tag, t[:data_start], open_tag_subs)
|
27
|
-
ct = dyn_tag(close_tag, t[:data_end], close_tag_subs)
|
28
|
-
[ot, t[:text], ct].each { |text| res << text }
|
29
|
-
else
|
30
|
-
res << t[:text]
|
31
|
-
end
|
29
|
+
process_tag(res, t, opts)
|
32
30
|
res
|
33
31
|
end.join('')
|
34
32
|
end
|
35
33
|
|
36
34
|
private
|
37
35
|
|
36
|
+
def process_tag(text_ary, text_fragment, opts)
|
37
|
+
t = text_fragment
|
38
|
+
if t[:tagged]
|
39
|
+
ot = dyn_tag(opts[:open_tag], t[:data_start], opts[:open_tag_subs])
|
40
|
+
ct = dyn_tag(opts[:close_tag], t[:data_end], opts[:close_tag_subs])
|
41
|
+
[ot, t[:text], ct].each { |text| text_ary << text }
|
42
|
+
else
|
43
|
+
text_ary << t[:text]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
38
47
|
def dyn_tag(tag, data, subs_num)
|
39
48
|
return tag if subs_num == 0
|
40
49
|
tag % data
|
41
50
|
end
|
51
|
+
|
52
|
+
def process_tagged_item(res, item, opts)
|
53
|
+
fragment = []
|
54
|
+
chars_num = item.offset_start - opts[:cursor]
|
55
|
+
chars_num.times { fragment << opts[:text_ary].shift }
|
56
|
+
res << { tagged: false, text: fragment }
|
57
|
+
fragment = []
|
58
|
+
opts[:cursor] = item.offset_start
|
59
|
+
chars_num = item.offset_end + 1 - opts[:cursor]
|
60
|
+
chars_num.times { fragment << opts[:text_ary].shift }
|
61
|
+
res << { tagged: true,
|
62
|
+
text: fragment,
|
63
|
+
data_start: item.data_start,
|
64
|
+
data_end: item.data_end}
|
65
|
+
opts[:cursor] = item.offset_end + 1
|
66
|
+
end
|
42
67
|
|
43
68
|
def split_text
|
44
|
-
|
45
|
-
|
46
|
-
text_ary = @text.unpack('U*')
|
47
|
-
cursor = 0
|
48
|
-
fragment = []
|
49
|
-
res = []
|
50
|
-
@offsets.each do |item|
|
51
|
-
chars_num = item.offset_start - cursor
|
52
|
-
chars_num.times { fragment << text_ary.shift }
|
53
|
-
res << { tagged: false, text: fragment }
|
54
|
-
fragment = []
|
55
|
-
cursor = item.offset_start
|
56
|
-
chars_num = item.offset_end + 1 - cursor
|
57
|
-
chars_num.times { fragment << text_ary.shift }
|
58
|
-
res << { tagged: true,
|
59
|
-
text: fragment,
|
60
|
-
data_start: item.data_start,
|
61
|
-
data_end: item.data_end}
|
62
|
-
fragment = []
|
63
|
-
cursor = item.offset_end + 1
|
64
|
-
end
|
65
|
-
|
66
|
-
unless text_ary.empty?
|
67
|
-
res << { tagged: false,
|
68
|
-
text: text_ary }
|
69
|
-
end
|
70
|
-
|
69
|
+
@split_text ||= create_split_text
|
70
|
+
end
|
71
71
|
|
72
|
-
|
72
|
+
def create_split_text
|
73
|
+
opts = { text_ary: @text.unpack('U*'), cursor: 0 }
|
74
|
+
|
75
|
+
@split_text = @offsets.inject([]) do |res, item|
|
76
|
+
process_tagged_item(res, item, opts)
|
77
|
+
res
|
78
|
+
end
|
79
|
+
@split_text << { tagged: false, text: opts[:text_ary] }
|
80
|
+
@split_text.each do |r|
|
73
81
|
r[:text] = r[:text].pack('U*')
|
74
82
|
end
|
75
|
-
@split_text = res
|
76
83
|
end
|
77
84
|
|
78
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tag_along
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Mozzherin
|
@@ -22,7 +22,6 @@ files:
|
|
22
22
|
- .gitignore
|
23
23
|
- .ruby-version
|
24
24
|
- .travis.yml
|
25
|
-
- '1'
|
26
25
|
- CHANGELOG
|
27
26
|
- Gemfile
|
28
27
|
- LICENSE.txt
|
@@ -32,8 +31,6 @@ files:
|
|
32
31
|
- lib/tag_along/offsets.rb
|
33
32
|
- lib/tag_along/version.rb
|
34
33
|
- spec/files/spec_data.json
|
35
|
-
- spec/files/t
|
36
|
-
- spec/files/t_offsets.json
|
37
34
|
- spec/spec_helper.rb
|
38
35
|
- spec/tag_along/offsets_spec.rb
|
39
36
|
- spec/tag_along_spec.rb
|
@@ -66,8 +63,6 @@ summary: A user who runs a search tool on a text would find multiple text fragm
|
|
66
63
|
and end offsets. This gem places arbitrary markup tags surrounding the fragments.
|
67
64
|
test_files:
|
68
65
|
- spec/files/spec_data.json
|
69
|
-
- spec/files/t
|
70
|
-
- spec/files/t_offsets.json
|
71
66
|
- spec/spec_helper.rb
|
72
67
|
- spec/tag_along/offsets_spec.rb
|
73
68
|
- spec/tag_along_spec.rb
|
data/spec/files/t
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
1959
|
2
|
-
Newman H. H. Spawmin behavior and sexual dimorphism of Pundulus
|
3
|
-
9 5 QS
|
4
|
-
heteroclitus and allied fish. Biol. Bull. 12, 1907.
|
5
|
-
IV. CIRGULATORY SYSTEM
|
6
|
-
P. B. Functional reactions in the embryonic heart accom~
|
7
|
-
panying the ingrowth and development of the vagus
|
8
|
-
innervation. Jour. Exp. Zool. 58, 1951.
|
9
|
-
Brinley, P. J. A Physiological study of the innervation of the
|
10
|
-
heart of fish embryos. Physiol. Zool. 5, 1952.
|
11
|
-
Reagan, F, P. Experimental studies in the origin of the vascular
|
12
|
-
endothelium and of Am. Jour, Anat.
|
13
|
-
21, 1917.
|
14
|
-
Shearer, E. M. Studies on the embryology of the circulation in
|
15
|
-
fishes, 1. and ll. Am. Jour. Anat. 46, 1950.
|
16
|
-
Stockard, C. R. An experimental analysis of the origin of blood
|
17
|
-
and vascular endothelium Mem. Wist. Inst. Anat.
|
18
|
-
Biol. No. 7, 1915. also Am. Jour, Anat. 18, 1915.
|
19
|
-
V. GERM CELLS
|
20
|
-
Goodrich, H. B., et al. Germ cells and sex differentiation in
|
21
|
-
Lebistes reticulatus. Biol. Bull. 67, 1954.
|
22
|
-
Mann, H. W. The history of the germ cells of Cottus Baerdii. Gerard
|
23
|
-
Jour. Morph. Physiol. 45, 1927.
|
24
|
-
okkelberg, Peter The early history of the germ cells in the brook
|
25
|
-
lamprey, Entosphenus wilderi (Gage) up to and in~
|
26
|
-
cluding the period of sex differentiation. Jour.
|
27
|
-
Morph. 55, 1921. (This paper has a complete bib-
|
28
|
-
liography of work on germ cells in other groups.)
|
29
|
-
Tichards, A. and Thompson, James I., Migration with primary sex
|
30
|
-
cells of Fundulus hetercclitus Biol. Bull. 40, 1921.
|
31
|
-
Wolf, L. E. The history of the germ cells in the viviparous
|
32
|
-
1 teleost PPlatypoecilus maculatus. Jour. Morph. and
|
33
|
-
Physiol. 52, 1951.
|
34
|
-
1 VI. EXPERIMENTAL WORK.
|
35
|
-
Amberson, W. R, and F. B. The respiratory metabolism
|
36
|
-
of Fundulus heteroclitus during embryonic develop-
|
37
|
-
mental Jour. Cell. and Comp. Physiol. 2, 1955.
|
38
|
-
P. B. The embryonic origin of function in the pronephros
|
39
|
-
through differentiation and paren~chyma-vascular
|
40
|
-
association. Amer. Jour. Anat. 51, 1952.
|
41
|
-
Batallion, Nouveaux essais de Parthenogenere experimentale chez les
|
42
|
-
vertibres infesienes Arch. Ent. Mech. 18, 1904.
|
43
|
-
Clapp, C. M. The relation of the axis of the embryo to the first
|
44
|
-
cleavage plane. Biol Lect. M. B. L. 1898.
|
45
|
-
Filatow, D. Entwicklungsmechanishhe Untersuchungen an Embryonen
|
46
|
-
von Acipenser guldenstadtti and Acipenbryonen von
|
47
|
-
Acipenser guldenstadtii und Acipenser stellatus.
|
48
|
-
Arch. Ent. Mech. 122, 1950.
|
49
|
-
HinriChS,.M. A. and Genther 1. T. Ultraviolet radiation and the
|
50
|
-
production of twins and double monsters. Physiol.
|
51
|
-
iZool. 4, 1951.
|
52
|
-
Headley, L. 0n the localization of developmental potencies in
|
53
|
-
embryo of Fundulus heteroclitus Jour. Exp. Zool.
|
54
|
-
52, 1928.
|
55
|
-
|
data/spec/files/t_offsets.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
[{"pos_start":866,"pos_end":885,"url":"http://eol.org/pages/11081658"},{"pos_start":955,"pos_end":960,"url":"http://eol.org/pages/204556"},{"pos_start":1347,"pos_end":1354,"url":"http://eol.org/pages/207614"},{"pos_start":1604,"pos_end":1624,"url":"http://eol.org/pages/1157172"},{"pos_start":2137,"pos_end":2145,"url":"http://eol.org/pages/15048"},{"pos_start":2211,"pos_end":2229,"url":"http://eol.org/pages/206889"},{"pos_start":2462,"pos_end":2482,"url":"http://eol.org/pages/1157172"},{"pos_start":1085,"pos_end":1103,"url":null},{"pos_start":2183,"pos_end":2205,"url":null}]
|