Class: Onebox::Matcher

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

Instance Method Summary collapse

Constructor Details

#initialize(link) ⇒ Matcher

Returns a new instance of Matcher.



3
4
5
# File 'lib/onebox/matcher.rb', line 3

def initialize(link)
  @url = link
end

Instance Method Details

#oneboxedObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/onebox/matcher.rb', line 13

def oneboxed
  uri = URI(@url)

  # A onebox needs a path, query or fragment string to be considered
  return if (uri.query.nil? || uri.query.size == 0) &&
            (uri.fragment.nil? || uri.fragment.size == 0) &&
            (uri.path.size == 0 || uri.path == "/")

  ordered_engines.select do |engine|
    engine === uri
  end.first
rescue URI::InvalidURIError
  # If it's not a valid URL, don't even match
  nil
end

#ordered_enginesObject



7
8
9
10
11
# File 'lib/onebox/matcher.rb', line 7

def ordered_engines
  @ordered_engines ||= Engine.engines.sort_by do |e|
    e.respond_to?(:priority) ? e.priority : 100
  end
end