Method: String#make_link

Defined in:
lib/tdiary/core_ext.rb


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/tdiary/core_ext.rb', line 22

def make_link
	r = %r<(((http[s]{0,1}|ftp)://[\(\)%#!/0-9a-zA-Z_$@.&+-,'"*=;?:~-]+)|([0-9a-zA-Z_.-]+@[\(\)%!0-9a-zA-Z_$.&+-,'"*-]+\.[\(\)%!0-9a-zA-Z_$.&+-,'"*-]+))>
	return self.
		gsub( / /, "\001" ).
		gsub( /</, "\002" ).
		gsub( />/, "\003" ).
		gsub( /&/, '&amp;' ).
		gsub( /\"/, "\004").
		gsub( r ){ $1 == $2 ? "<a href=\"#$2\">#$2</a>" : "<a href=\"mailto:#$4\">#$4</a>" }.
		gsub( /\004/, '&quot;' ).
		gsub( /\003/, '&gt;' ).
		gsub( /\002/, '&lt;' ).
		gsub( /^\001+/ ) { $&.gsub( /\001/, '&nbsp;' ) }.
		gsub( /\001/, ' ' ).
		gsub( /\t/, '&nbsp;' * 8 )
end