Sha256: 4dbcf0f94613d6360fe6033849bc9c53455715dace1c2f8dc31c980cf19e9a61

Contents?: true

Size: 718 Bytes

Versions: 44

Compression:

Stored size: 718 Bytes

Contents

module Onebox
  class Matcher
    def initialize(link)
      @url = link
    end

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

    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
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
onebox-1.5.50 lib/onebox/matcher.rb
onebox-1.5.49 lib/onebox/matcher.rb
onebox-1.5.48 lib/onebox/matcher.rb
onebox-1.5.47 lib/onebox/matcher.rb
onebox-1.5.45 lib/onebox/matcher.rb
onebox-1.5.44 lib/onebox/matcher.rb
onebox-1.5.43 lib/onebox/matcher.rb
onebox-1.5.42 lib/onebox/matcher.rb
onebox-1.5.41 lib/onebox/matcher.rb
onebox-1.5.40 lib/onebox/matcher.rb
onebox-1.5.39 lib/onebox/matcher.rb
onebox-1.5.38 lib/onebox/matcher.rb
onebox-1.5.37 lib/onebox/matcher.rb
onebox-1.5.36 lib/onebox/matcher.rb
onebox-1.5.35 lib/onebox/matcher.rb
onebox-1.5.34 lib/onebox/matcher.rb
onebox-1.5.33 lib/onebox/matcher.rb
onebox-1.5.32 lib/onebox/matcher.rb
onebox-1.5.31 lib/onebox/matcher.rb
onebox-1.5.30 lib/onebox/matcher.rb