Sha256: 710abc039b2e95c41fcb9240ebf165e63dc3d16c1db5580adb5923f83ec98458

Contents?: true

Size: 661 Bytes

Versions: 3

Compression:

Stored size: 661 Bytes

Contents

require 'json'
require 'net/http'
require 'uri'
require 'timeout'

require 'related_word/formatter'

class RelatedWord
  class Service
    class SemanticService
      LINK = "http://semantic-link.com/related.php?word="

      attr_reader :word

      def initialize(word)
        @word = word
      end

      def find
        Timeout::timeout(Configure.timeout) do
          resp      = Net::HTTP.get_response(word_uri)
          json_resp = JSON.parse(resp.body)
          Formatter::SemanticFormatter.new(json_resp).format
        end
      end

      private

      def word_uri
        @word_uri ||= URI.parse("#{LINK}#{word}")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
related_word-0.3.2 lib/related_word/service/semantic_service.rb
related_word-0.3.1 lib/related_word/service/semantic_service.rb
related_word-0.3 lib/related_word/service/semantic_service.rb