Class: WikiCloth::WikiBuffer::Link

Inherits:
WikiCloth::WikiBuffer show all
Defined in:
lib/wikicloth/wiki_buffer/link.rb

Instance Method Summary collapse

Methods inherited from WikiCloth::WikiBuffer

#add_char, #add_word, #buffer_type, #buffers, #check_globals, #data, #debug, #get_param, #in_template?, #params, #run_globals?, #skip_html?, #skip_links?

Constructor Details

#initialize(data = "", options = {}) ⇒ Link

Returns a new instance of Link.



5
6
7
8
9
# File 'lib/wikicloth/wiki_buffer/link.rb', line 5

def initialize(data="",options={})
  super(data,options)
  @in_quotes = false
  @checktrailing = false
end

Instance Method Details

#eofObject



40
41
42
# File 'lib/wikicloth/wiki_buffer/link.rb', line 40

def eof()
  self.current_param = self.data
end


11
12
13
# File 'lib/wikicloth/wiki_buffer/link.rb', line 11

def internal_link
  @internal_link ||= false
end

#to_htmlObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/wikicloth/wiki_buffer/link.rb', line 15

def to_html
  link_handler = @options[:link_handler]
  unless self.internal_link || params[0].strip !~ /^\s*((([a-z]+):\/\/|mailto:)|[\?\/])(.*)/
    if $1.downcase == "mailto:"
	return link_handler.external_link("#{params[0]}".strip, $4)
    elsif params.length > 1
	return link_handler.external_link("#{params[0]}".strip, params.last.strip)
    else
	return link_handler.external_link("#{params[0]}".strip)
    end
  else
    case
    when !self.internal_link
      return "[#{params[0]}]"        
    when params[0] =~ /^:(.*)/
      return link_handler.link_for(params[0],params[1])
    when params[0] =~ /^\s*([^\]\s:]+)\s*:(.*)$/
      return link_handler.link_for_resource($1,$2,params[1..-1])
    else
      return "" if params[0].blank? && params[1].blank?
      return link_handler.link_for(params[0],params[1])
    end
  end
end