140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
# File 'lib/cosensee/line_parser.rb', line 140
def parse_url(line)
return line if line.parsed?
parsed = []
line.content.each do |elem|
if elem.is_a?(String)
loop do
matched = elem.match(%r{(^|.*?)(https?://[^\s]+)})
if matched
parsed << "#{matched.pre_match}#{matched[1]}"
parsed << Cosensee::Node::Link.new(matched[2], matched[2])
elem = matched.post_match
else
parsed << elem
break
end
end
else
parsed << elem
end
end
line.update(content: clean_elements(parsed))
end
|