Class: Tinysky::FacetParser

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

Constant Summary collapse

URL_PATTERN =
/https?:\/\/\S+/

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(text) ⇒ FacetParser

Returns a new instance of FacetParser.



10
11
12
# File 'lib/tinysky/facet_parser.rb', line 10

def initialize(text)
  @text = text || ""
end

Class Method Details

.for(text) ⇒ Object



5
6
7
8
# File 'lib/tinysky/facet_parser.rb', line 5

def self.for(text)
  parser = new(text)
  parser.find_facets
end

Instance Method Details

#find_facetsObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/tinysky/facet_parser.rb', line 14

def find_facets
  scan_enumerator = @text.enum_for(:scan, URL_PATTERN)

  scan_enumerator.map do |url|
    char_start = Regexp.last_match.begin(0)
    byte_start = @text[0, char_start].bytesize
    byte_end = byte_start + url.bytesize
    LinkFacet.new(byte_start, byte_end, url)
  end
end