Sha256: b4b9cc386bec8eff444ab40648068aa85bfeba427901edf568dfab2e563a672d

Contents?: true

Size: 876 Bytes

Versions: 6

Compression:

Stored size: 876 Bytes

Contents

module Zemanta
  class Markup
    attr_reader :text, :links

    def initialize(opts = {})
      @text  = opts["text"]
      @links = opts["links"].map{ |link| Link.new(link) }
    end

    def self.fetch(text, opts = {})
      relevance  = opts.delete(:relevance)  || 0
      confidence = opts.delete(:confidence) || 0

      new(suggest_markup_request(text, opts)).tap do |markup|
        markup.drop_links_below(relevance, confidence)
      end
    end

    def drop_links_below(relevance, confidence)
      @links.keep_if do |link|
        link.above?(relevance, confidence)
      end
    end

    private

    def self.suggest_markup_request(text, opts)
      return {'links' => []} if text.to_s.empty?
      request({ text: text, method: "zemanta.suggest_markup" }.merge(opts))["markup"]
    end

    def self.request(opts)
      Fetcher.new(opts).post
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
zemanta_client-0.0.8 lib/zemanta/markup.rb
zemanta_client-0.0.7 lib/zemanta/markup.rb
zemanta_client-0.0.6 lib/zemanta/markup.rb
zemanta_client-0.0.5 lib/zemanta/markup.rb
zemanta_client-0.0.4 lib/zemanta/markup.rb
zemanta_client-0.0.3 lib/zemanta/markup.rb