Class: Linkup::Linker

Inherits:
Object
  • Object
show all
Defined in:
lib/linkup.rb

Constant Summary collapse

/\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/u

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(string) ⇒ Linker

Returns a new instance of Linker.



18
19
20
# File 'lib/linkup.rb', line 18

def initialize(string)
  self.original = string
end

Instance Attribute Details

#originalObject

Returns the value of attribute original.



14
15
16
# File 'lib/linkup.rb', line 14

def original
  @original
end

Instance Method Details

#already_linked?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/linkup.rb', line 22

def already_linked?
  original.match(/href=/)
end

#linkify_text(text) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/linkup.rb', line 26

def linkify_text(text)
  text.gsub(LINK_REGEX) do |match|
    prefix = if (match =~/\Awww\./)
      prefix = 'http://'
    end
    %Q[<a href="#{prefix}#{match}">#{match}</a>]
  end
end

#to_sObject



35
36
37
# File 'lib/linkup.rb', line 35

def to_s
  already_linked? ? original : linkify_text(original)
end