yahoo_content_analysis 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebe24840ce7a9b91217908445e58acb314271055
4
- data.tar.gz: 72a5f8b5fe8f93f60b4b78e4e9036f70997243c2
3
+ metadata.gz: c5610866e5c197f3deaf637b4a712337d46d28a0
4
+ data.tar.gz: 239fe0ae8b71623793b9cd45a601474ea32908ab
5
5
  SHA512:
6
- metadata.gz: 2dce3172f79367d081f82574b68cc8a266c1c0bff3b3f7025cbe01c3392858190b8d2d039c41ed3cec67bcdc0f38e40be2acc17dd98429c0b065efdabf4d7138
7
- data.tar.gz: 329470cde277adb4fdeb08e6e193833e9c5e4955264eba0b18697ede148108b1b0c2c22f5887bd1859c5336446fd499f062dc1fcf7d49a46ed2a10bbea6952df
6
+ metadata.gz: 1dcb125e31f5d3d84d81aa3fce40ebdc815c4e37faf087a82009a42d95336286a40dc8eb4e30ea9b5e82db692d2d1bfad434e4d67a780ea550a7f54f3c85cc5a
7
+ data.tar.gz: 9952e1c3e2625bf920b36d44fdb35949e8f75f1c0f82ea6be8ec827808448a545f14e731e35a53469082b7e116b6877f7eeae57048b8ff568c8e81826d2de7fc
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.1.6"
4
+ - "2.2.1"
data/README.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # YahooContentAnalysis
2
2
 
3
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)
4
+ [![Build Status](https://travis-ci.org/PRX/yahoo_content_analysis.svg?branch=master)](https://travis-ci.org/PRX/yahoo_content_analysis)
5
+ [![Code Climate](https://codeclimate.com/github/PRX/yahoo_content_analysis/badges/gpa.svg)](https://codeclimate.com/github/PRX/yahoo_content_analysis)
6
+ [![Coverage Status](https://coveralls.io/repos/PRX/yahoo_content_analysis/badge.svg?branch=master)](https://coveralls.io/r/PRX/yahoo_content_analysis?branch=master)
7
+ [![Dependency Status](https://gemnasium.com/PRX/yahoo_content_analysis.svg)](https://gemnasium.com/PRX/yahoo_content_analysis)
8
+
3
9
  Use the Yahoo! Content Analysis API to extract topics and entities.
4
10
 
5
- OAuth access is implemented, though not necessary (the docs imply higher limitd if requests are signed). This should be a useful example for those wanting to do 2-legged OAuth access to Yahoo APIs using Faraday and the OAuth Faraday Middleware.
11
+ OAuth access is implemented, though not necessary (the docs imply higher limits if requests are signed). This should be a useful example for those wanting to do 2-legged OAuth access to Yahoo APIs using Faraday and the OAuth Faraday Middleware.
6
12
 
7
13
  N.B. - I am not seeing the additional metadata nor related entities returned as the Yahoo docs claim they should.
8
14
 
@@ -24,13 +30,19 @@ Or install it yourself as:
24
30
  ```ruby
25
31
  require 'yahoo_content_analysis'
26
32
 
27
- YahooContentAnalysis.configure{|y|
33
+ YahooContentAnalysis.configure{|y|
28
34
  y.api_key = ENV['YAHOO_API_KEY']
29
35
  y.api_secret = ENV['YAHOO_API_SECRET']
30
36
  }
31
37
 
32
38
  r = YahooContentAnalysis::Client.new.analyze('Italian sculptors and painters of the renaissance favored the Virgin Mary for inspiration.')
33
39
 
40
+ names = r.entities.collect{|e| e.name}
41
+
42
+ # you can also query a uri
43
+ uri = 'http://www.npr.org/2015/06/03/411524156/in-search-of-the-red-cross-500-million-in-haiti-relief'
44
+ r = YahooContentAnalysis::Client.new.analyze(uri)
45
+
34
46
  names = r.entities.collect{|e| e.name}
35
47
  ```
36
48
  ## Contributing
data/Rakefile CHANGED
@@ -1 +1,11 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs.push 'lib'
6
+ t.libs.push 'test'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+ t.verbose = true
9
+ end
10
+
11
+ task default: :test
data/examples/text.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'yahoo_content_analysis'
2
+
3
+ YahooContentAnalysis.configure { |y|
4
+ y.api_key = ENV['YAHOO_API_KEY']
5
+ y.api_secret = ENV['YAHOO_API_SECRET']
6
+ }
7
+
8
+ text = 'Italian sculptors and painters of the renaissance favored the Virgin Mary for inspiration.'
9
+ r = YahooContentAnalysis::Client.new.analyze(text)
10
+ puts r.inspect
data/examples/uri.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'yahoo_content_analysis'
2
+
3
+ YahooContentAnalysis.configure { |y|
4
+ y.api_key = ENV['YAHOO_API_KEY']
5
+ y.api_secret = ENV['YAHOO_API_SECRET']
6
+ }
7
+
8
+ uri = 'http://www.npr.org/2015/06/03/411524156/in-search-of-the-red-cross-500-million-in-haiti-relief'
9
+ r = YahooContentAnalysis::Client.new.analyze(uri)
10
+ puts r.inspect
@@ -41,7 +41,7 @@ module YahooContentAnalysis
41
41
  end
42
42
 
43
43
  def query(content)
44
- "SELECT * FROM contentanalysis.analyze WHERE related_entities = \"true\" and #{condition(content)}"
44
+ "SELECT * FROM contentanalysis.analyze WHERE related_entities = 'true' and #{condition(content)}"
45
45
  end
46
46
 
47
47
  def condition(content)
@@ -49,11 +49,11 @@ module YahooContentAnalysis
49
49
  end
50
50
 
51
51
  def url(content)
52
- %{ url = "#{content}" }
52
+ %{ url = '#{content}' }
53
53
  end
54
54
 
55
55
  def text(content)
56
- %{ text = "#{content.gsub('"', '\"')}" }
56
+ %{ text = '#{content.gsub("'", %q(\\\'))}' }
57
57
  end
58
58
 
59
59
  def options(content)
@@ -74,6 +74,5 @@ module YahooContentAnalysis
74
74
  rescue URI::InvalidURIError
75
75
  false
76
76
  end
77
-
78
77
  end
79
78
  end
@@ -98,6 +98,5 @@ module YahooContentAnalysis
98
98
  self.unique = DEFAULT_UNIQUE
99
99
  self
100
100
  end
101
-
102
101
  end
103
102
  end
@@ -21,7 +21,7 @@ module YahooContentAnalysis
21
21
  :headers => {
22
22
  # generic http headers
23
23
  'User-Agent' => user_agent,
24
- 'Accept' => "application/json;charset=utf-8"
24
+ 'Accept' => 'application/json;charset=utf-8'
25
25
  },
26
26
  :ssl => {:verify => false},
27
27
  :url => endpoint
@@ -50,6 +50,5 @@ module YahooContentAnalysis
50
50
  nil
51
51
  end
52
52
  end
53
-
54
53
  end
55
54
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  require 'language_list'
3
4
 
4
5
  module YahooContentAnalysis
@@ -27,8 +28,8 @@ module YahooContentAnalysis
27
28
  return if (!response.respond_to?(:body))
28
29
  return if (!response.body['query'] || !response.body['query']['results'])
29
30
 
31
+ @language = get_language(response.body['query']['lang'])
30
32
  r = response.body['query']['results']
31
- @language = get_language(r['lang'])
32
33
 
33
34
  yahoo_categories = (r['yctCategories'] || {})['yctCategory'] || []
34
35
  yahoo_categories = [yahoo_categories] unless yahoo_categories.is_a?(Array)
@@ -79,6 +80,5 @@ module YahooContentAnalysis
79
80
  content = (content[1] || content[0] || '').remove_formatting.titleize
80
81
  content.blank? ? nil : content
81
82
  end
82
-
83
83
  end
84
84
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module YahooContentAnalysis
4
- VERSION = "0.1.3"
4
+ VERSION = '0.2.0'
5
5
  end
data/test/client_test.rb CHANGED
@@ -1,8 +1,51 @@
1
- require 'yahoo_content_analysis'
2
- YahooContentAnalysis.configure{|y|
3
- y.api_key = ENV['YAHOO_API_KEY']
4
- y.api_secret = ENV['YAHOO_API_SECRET']
5
- }
6
-
7
- r = YahooContentAnalysis::Client.new.analyze('Italian sculptors and painters of the renaissance favored the Virgin Mary for inspiration.')
8
- puts r.inspect
1
+ require 'test_helper'
2
+
3
+ describe YahooContentAnalysis::Client do
4
+
5
+ it 'is initialized with defaults' do
6
+ oc = YahooContentAnalysis::Client.new
7
+ oc.current_options.wont_be_nil
8
+ oc.current_options.must_equal YahooContentAnalysis.options
9
+ end
10
+
11
+ it 'is initialized with specific values' do
12
+ oc = YahooContentAnalysis::Client.new(:api_key => 'current')
13
+ oc.current_options.wont_be_nil
14
+ oc.current_options.wont_equal YahooContentAnalysis.options
15
+ oc.current_options[:api_key].must_equal 'current'
16
+ oc.api_key.must_equal 'current'
17
+ end
18
+
19
+ it 'gets tags for text' do
20
+
21
+ body = "{\"query\":{\"count\":1,\"created\":\"2015-06-04T01:01:34Z\",\"lang\":\"en-US\",\"results\":{\"entities\":{\"entity\":[{\"score\":\"0.882\",\"text\":{\"end\":\"12\",\"endchar\":\"12\",\"start\":\"0\",\"startchar\":\"0\",\"content\":\"Ruby on Rails\"},\"wiki_url\":\"http://en.wikipedia.com/wiki/Ruby_on_Rails\"},{\"score\":\"0.701\",\"text\":{\"end\":\"41\",\"endchar\":\"41\",\"start\":\"29\",\"startchar\":\"29\",\"content\":\"web framework\"},\"wiki_url\":\"http://en.wikipedia.com/wiki/Web_application_framework\"},{\"score\":\"0.64\",\"text\":{\"end\":\"89\",\"endchar\":\"89\",\"start\":\"65\",\"startchar\":\"65\",\"content\":\"ruby programming language\"},\"wiki_url\":\"http://en.wikipedia.com/wiki/Ruby_%28programming_language%29\"}]}}}}"
22
+
23
+ stub_request(:post, "http://query.yahooapis.com/v1/public/yql").
24
+ with(:body => {"format"=>"json", "max"=>"50", "q"=>"SELECT * FROM contentanalysis.analyze WHERE related_entities = 'true' and text = 'Ruby on Rails is a fantastic web framework. It uses MVC, and the ruby programming language invented by Matz' ", "related_entities"=>"true", "show_metadata"=>"true"},
25
+ :headers => {'Accept'=>'application/json;charset=utf-8', 'Content-Type'=>'application/x-www-form-urlencoded', 'Host'=>'query.yahooapis.com:80'}).
26
+ to_return(:status => 200, :body => body, :headers => {})
27
+
28
+ text = "Ruby on Rails is a fantastic web framework. It uses MVC, and the ruby programming language invented by Matz"
29
+ response = YahooContentAnalysis::Client.new.analyze(text)
30
+ response.wont_be_nil
31
+ response.raw.wont_be_nil
32
+ response.entities.count.must_equal 3
33
+ end
34
+
35
+ it 'gets tags for a url' do
36
+
37
+ body = "{\"query\":{\"count\":2,\"created\":\"2015-06-04T01:18:24Z\",\"lang\":\"en-US\",\"results\":{\"yctCategories\":{\"yctCategory\":[{\"score\":\"0.952\",\"content\":\"Society & Culture\"},{\"score\":\"0.693333\",\"content\":\"Volunteering & Philanthropy\"},{\"score\":\"0.666667\",\"content\":\"Society & Culture Organizations\"}]},\"entities\":{\"entity\":[{\"score\":\"0.959\",\"text\":{\"end\":\"19248\",\"endchar\":\"19248\",\"start\":\"19236\",\"startchar\":\"19236\",\"content\":\"The Red Cross\"},\"wiki_url\":\"http://en.wikipedia.com/wiki/American_Red_Cross\"},{\"score\":\"0.943\",\"text\":{\"end\":\"36452\",\"endchar\":\"36443\",\"start\":\"36440\",\"startchar\":\"36431\",\"content\":\"The Red Cross\"}},{\"score\":\"0.93\",\"text\":{\"end\":\"19271\",\"endchar\":\"19271\",\"start\":\"19267\",\"startchar\":\"19267\",\"content\":\"Haiti\"},\"wiki_url\":\"http://en.wikipedia.com/wiki/Haiti\",\"types\":{\"type\":{\"region\":\"us\",\"content\":\"/place/destination\"}}},{\"score\":\"0.919\",\"text\":{\"end\":\"35722\",\"endchar\":\"35713\",\"start\":\"35714\",\"startchar\":\"35705\",\"content\":\"Red Cross\"},\"types\":{\"type\":{\"region\":\"us\",\"content\":\"/organization\"}}},{\"score\":\"0.916\",\"text\":{\"end\":\"35673\",\"endchar\":\"35664\",\"start\":\"35669\",\"startchar\":\"35660\",\"content\":\"Haiti\"},\"types\":{\"type\":[{\"region\":\"us\",\"content\":\"/place\"},{\"region\":\"us\",\"content\":\"/place/destination\"}]}},{\"score\":\"0.87\",\"text\":{\"end\":\"31454\",\"endchar\":\"31445\",\"start\":\"31444\",\"startchar\":\"31435\",\"content\":\"Marie Arago\"},\"types\":{\"type\":{\"region\":\"us\",\"content\":\"/person\"}}},{\"score\":\"0.583\",\"text\":{\"end\":\"36220\",\"endchar\":\"36211\",\"start\":\"36208\",\"startchar\":\"36199\",\"content\":\"David Meltzer\"},\"types\":{\"type\":{\"region\":\"us\",\"content\":\"/person\"}}}]}}}}"
38
+
39
+
40
+ stub_request(:post, "http://query.yahooapis.com/v1/public/yql").
41
+ with(:body => {"format"=>"json", "max"=>"50", "q"=>"SELECT * FROM contentanalysis.analyze WHERE related_entities = 'true' and url = 'http://www.npr.org/2015/06/03/411524156/in-search-of-the-red-cross-500-million-in-haiti-relief' ", "related_entities"=>"true", "show_metadata"=>"true"},
42
+ :headers => {'Accept'=>'application/json;charset=utf-8', 'Content-Type'=>'application/x-www-form-urlencoded', 'Host'=>'query.yahooapis.com:80'}).
43
+ to_return(:status => 200, :body => body, :headers => {})
44
+
45
+ uri = 'http://www.npr.org/2015/06/03/411524156/in-search-of-the-red-cross-500-million-in-haiti-relief'
46
+ response = YahooContentAnalysis::Client.new.analyze(uri)
47
+ response.wont_be_nil
48
+ response.raw.wont_be_nil
49
+ response.entities.count.must_equal 5
50
+ end
51
+ end
@@ -0,0 +1,20 @@
1
+ require 'test_helper'
2
+
3
+ module TestConfig
4
+ extend YahooContentAnalysis::Configuration
5
+ end
6
+
7
+ describe YahooContentAnalysis::Configuration do
8
+
9
+ let(:config) { YahooContentAnalysis::Configuration }
10
+
11
+ it 'can be configured' do
12
+ TestConfig.configure do |c|
13
+ c.must_be_kind_of config
14
+ end
15
+ end
16
+
17
+ it 'has default keys' do
18
+ config.keys.must_equal config::VALID_OPTIONS_KEYS
19
+ end
20
+ end
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+ describe YahooContentAnalysis::Response do
4
+
5
+ it 'is initialized with json' do
6
+ oc = YahooContentAnalysis::Response.new("{}")
7
+ oc.wont_be_nil
8
+ end
9
+
10
+ it 'gets tags for text' do
11
+
12
+ body = {"query"=>{"count"=>1, "created"=>"2015-06-04T01:01:34Z", "lang"=>"en-US", "results"=>{"entities"=>{"entity"=>[{"score"=>"0.882", "text"=>{"end"=>"12", "endchar"=>"12", "start"=>"0", "startchar"=>"0", "content"=>"Ruby on Rails"}, "wiki_url"=>"http://en.wikipedia.com/wiki/Ruby_on_Rails"}, {"score"=>"0.701", "text"=>{"end"=>"41", "endchar"=>"41", "start"=>"29", "startchar"=>"29", "content"=>"web framework"}, "wiki_url"=>"http://en.wikipedia.com/wiki/Web_application_framework"}, {"score"=>"0.64", "text"=>{"end"=>"89", "endchar"=>"89", "start"=>"65", "startchar"=>"65", "content"=>"ruby programming language"}, "wiki_url"=>"http://en.wikipedia.com/wiki/Ruby_%28programming_language%29"}]}}}}
13
+
14
+ mock_message = Minitest::Mock.new
15
+ 4.times { mock_message.expect(:body, body) }
16
+ mock_message.expect(:nil?, false)
17
+
18
+ response = YahooContentAnalysis::Response.new(mock_message)
19
+ response.entities.count.must_equal 3
20
+ end
21
+
22
+ it 'gets tags for a url' do
23
+
24
+ body = {"query"=>{"count"=>2, "created"=>"2015-06-04T01:18:24Z", "lang"=>"en-US", "results"=>{"yctCategories"=>{"yctCategory"=>[{"score"=>"0.952", "content"=>"Society & Culture"}, {"score"=>"0.693333", "content"=>"Volunteering & Philanthropy"}, {"score"=>"0.666667", "content"=>"Society & Culture Organizations"}]}, "entities"=>{"entity"=>[{"score"=>"0.959", "text"=>{"end"=>"19248", "endchar"=>"19248", "start"=>"19236", "startchar"=>"19236", "content"=>"The Red Cross"}, "wiki_url"=>"http://en.wikipedia.com/wiki/American_Red_Cross"}, {"score"=>"0.943", "text"=>{"end"=>"36452", "endchar"=>"36443", "start"=>"36440", "startchar"=>"36431", "content"=>"The Red Cross"}}, {"score"=>"0.93", "text"=>{"end"=>"19271", "endchar"=>"19271", "start"=>"19267", "startchar"=>"19267", "content"=>"Haiti"}, "wiki_url"=>"http://en.wikipedia.com/wiki/Haiti", "types"=>{"type"=>{"region"=>"us", "content"=>"/place/destination"}}}, {"score"=>"0.919", "text"=>{"end"=>"35722", "endchar"=>"35713", "start"=>"35714", "startchar"=>"35705", "content"=>"Red Cross"}, "types"=>{"type"=>{"region"=>"us", "content"=>"/organization"}}}, {"score"=>"0.916", "text"=>{"end"=>"35673", "endchar"=>"35664", "start"=>"35669", "startchar"=>"35660", "content"=>"Haiti"}, "types"=>{"type"=>[{"region"=>"us", "content"=>"/place"}, {"region"=>"us", "content"=>"/place/destination"}]}}, {"score"=>"0.87", "text"=>{"end"=>"31454", "endchar"=>"31445", "start"=>"31444", "startchar"=>"31435", "content"=>"Marie Arago"}, "types"=>{"type"=>{"region"=>"us", "content"=>"/person"}}}, {"score"=>"0.583", "text"=>{"end"=>"36220", "endchar"=>"36211", "start"=>"36208", "startchar"=>"36199", "content"=>"David Meltzer"}, "types"=>{"type"=>{"region"=>"us", "content"=>"/person"}}}]}}}}
25
+
26
+ mock_message = Minitest::Mock.new
27
+ 4.times { mock_message.expect(:body, body) }
28
+ mock_message.expect(:nil?, false)
29
+
30
+ response = YahooContentAnalysis::Response.new(mock_message)
31
+ response.entities.count.must_equal 5
32
+ end
33
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ # ENV['EXCON_DEBUG'] = 'true'
4
+
5
+ require 'simplecov'
6
+ SimpleCov.start
7
+
8
+ if ENV['TRAVIS']
9
+ require 'coveralls'
10
+ Coveralls.wear!
11
+ end
12
+
13
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
14
+
15
+ require 'minitest'
16
+ require 'minitest/autorun'
17
+ require 'minitest/spec'
18
+ require 'minitest/mock'
19
+ require 'webmock/minitest'
20
+ require 'hashie/mash'
21
+
22
+ require 'yahoo_content_analysis'
23
+
24
+ YahooContentAnalysis.configure do |y|
25
+ y.api_key = ENV['YAHOO_API_KEY'] || 'test_api_key'
26
+ y.api_secret = ENV['YAHOO_API_SECRET'] || 'test_api_secret'
27
+ end
@@ -17,9 +17,10 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_runtime_dependency('faraday', ['>= 0.7.4', '~> 0.9'])
20
+ gem.add_runtime_dependency('faraday', '>= 0.7.4')
21
21
  gem.add_runtime_dependency('faraday_middleware', '~> 0.9')
22
22
  gem.add_runtime_dependency('multi_json', '>= 1.0.3', '~> 1.0')
23
+ gem.add_runtime_dependency('multi_xml')
23
24
  gem.add_runtime_dependency('excon')
24
25
  gem.add_runtime_dependency('hashie', '>= 0.4.0')
25
26
  gem.add_runtime_dependency('simple_oauth')
@@ -29,4 +30,7 @@ Gem::Specification.new do |gem|
29
30
 
30
31
  gem.add_development_dependency('rake')
31
32
  gem.add_development_dependency('minitest')
33
+ gem.add_development_dependency('simplecov')
34
+ gem.add_development_dependency('coveralls')
35
+ gem.add_development_dependency('webmock')
32
36
  end
metadata CHANGED
@@ -1,179 +1,229 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yahoo_content_analysis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kuklewicz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-18 00:00:00.000000000 Z
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.7.4
20
- - - ~>
21
- - !ruby/object:Gem::Version
22
- version: '0.9'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.7.4
30
- - - ~>
31
- - !ruby/object:Gem::Version
32
- version: '0.9'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: faraday_middleware
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - ~>
31
+ - - "~>"
38
32
  - !ruby/object:Gem::Version
39
33
  version: '0.9'
40
34
  type: :runtime
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
- - - ~>
38
+ - - "~>"
45
39
  - !ruby/object:Gem::Version
46
40
  version: '0.9'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: multi_json
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: 1.0.3
54
- - - ~>
48
+ - - "~>"
55
49
  - !ruby/object:Gem::Version
56
50
  version: '1.0'
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
54
  requirements:
61
- - - '>='
55
+ - - ">="
62
56
  - !ruby/object:Gem::Version
63
57
  version: 1.0.3
64
- - - ~>
58
+ - - "~>"
65
59
  - !ruby/object:Gem::Version
66
60
  version: '1.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: multi_xml
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
67
75
  - !ruby/object:Gem::Dependency
68
76
  name: excon
69
77
  requirement: !ruby/object:Gem::Requirement
70
78
  requirements:
71
- - - '>='
79
+ - - ">="
72
80
  - !ruby/object:Gem::Version
73
81
  version: '0'
74
82
  type: :runtime
75
83
  prerelease: false
76
84
  version_requirements: !ruby/object:Gem::Requirement
77
85
  requirements:
78
- - - '>='
86
+ - - ">="
79
87
  - !ruby/object:Gem::Version
80
88
  version: '0'
81
89
  - !ruby/object:Gem::Dependency
82
90
  name: hashie
83
91
  requirement: !ruby/object:Gem::Requirement
84
92
  requirements:
85
- - - '>='
93
+ - - ">="
86
94
  - !ruby/object:Gem::Version
87
95
  version: 0.4.0
88
96
  type: :runtime
89
97
  prerelease: false
90
98
  version_requirements: !ruby/object:Gem::Requirement
91
99
  requirements:
92
- - - '>='
100
+ - - ">="
93
101
  - !ruby/object:Gem::Version
94
102
  version: 0.4.0
95
103
  - !ruby/object:Gem::Dependency
96
104
  name: simple_oauth
97
105
  requirement: !ruby/object:Gem::Requirement
98
106
  requirements:
99
- - - '>='
107
+ - - ">="
100
108
  - !ruby/object:Gem::Version
101
109
  version: '0'
102
110
  type: :runtime
103
111
  prerelease: false
104
112
  version_requirements: !ruby/object:Gem::Requirement
105
113
  requirements:
106
- - - '>='
114
+ - - ">="
107
115
  - !ruby/object:Gem::Version
108
116
  version: '0'
109
117
  - !ruby/object:Gem::Dependency
110
118
  name: language_list
111
119
  requirement: !ruby/object:Gem::Requirement
112
120
  requirements:
113
- - - '>='
121
+ - - ">="
114
122
  - !ruby/object:Gem::Version
115
123
  version: '0'
116
124
  type: :runtime
117
125
  prerelease: false
118
126
  version_requirements: !ruby/object:Gem::Requirement
119
127
  requirements:
120
- - - '>='
128
+ - - ">="
121
129
  - !ruby/object:Gem::Version
122
130
  version: '0'
123
131
  - !ruby/object:Gem::Dependency
124
132
  name: activesupport
125
133
  requirement: !ruby/object:Gem::Requirement
126
134
  requirements:
127
- - - '>='
135
+ - - ">="
128
136
  - !ruby/object:Gem::Version
129
137
  version: '0'
130
138
  type: :runtime
131
139
  prerelease: false
132
140
  version_requirements: !ruby/object:Gem::Requirement
133
141
  requirements:
134
- - - '>='
142
+ - - ">="
135
143
  - !ruby/object:Gem::Version
136
144
  version: '0'
137
145
  - !ruby/object:Gem::Dependency
138
146
  name: stringex
139
147
  requirement: !ruby/object:Gem::Requirement
140
148
  requirements:
141
- - - '>='
149
+ - - ">="
142
150
  - !ruby/object:Gem::Version
143
151
  version: '0'
144
152
  type: :runtime
145
153
  prerelease: false
146
154
  version_requirements: !ruby/object:Gem::Requirement
147
155
  requirements:
148
- - - '>='
156
+ - - ">="
149
157
  - !ruby/object:Gem::Version
150
158
  version: '0'
151
159
  - !ruby/object:Gem::Dependency
152
160
  name: rake
153
161
  requirement: !ruby/object:Gem::Requirement
154
162
  requirements:
155
- - - '>='
163
+ - - ">="
156
164
  - !ruby/object:Gem::Version
157
165
  version: '0'
158
166
  type: :development
159
167
  prerelease: false
160
168
  version_requirements: !ruby/object:Gem::Requirement
161
169
  requirements:
162
- - - '>='
170
+ - - ">="
163
171
  - !ruby/object:Gem::Version
164
172
  version: '0'
165
173
  - !ruby/object:Gem::Dependency
166
174
  name: minitest
167
175
  requirement: !ruby/object:Gem::Requirement
168
176
  requirements:
169
- - - '>='
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: simplecov
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: coveralls
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: webmock
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
170
220
  - !ruby/object:Gem::Version
171
221
  version: '0'
172
222
  type: :development
173
223
  prerelease: false
174
224
  version_requirements: !ruby/object:Gem::Requirement
175
225
  requirements:
176
- - - '>='
226
+ - - ">="
177
227
  - !ruby/object:Gem::Version
178
228
  version: '0'
179
229
  description: Use the Yahoo! Content Analysis API to extract topics and entities.
@@ -183,11 +233,14 @@ executables: []
183
233
  extensions: []
184
234
  extra_rdoc_files: []
185
235
  files:
186
- - .gitignore
236
+ - ".gitignore"
237
+ - ".travis.yml"
187
238
  - Gemfile
188
239
  - LICENSE.txt
189
240
  - README.md
190
241
  - Rakefile
242
+ - examples/text.rb
243
+ - examples/uri.rb
191
244
  - lib/yahoo_content_analysis.rb
192
245
  - lib/yahoo_content_analysis/client.rb
193
246
  - lib/yahoo_content_analysis/configuration.rb
@@ -195,6 +248,9 @@ files:
195
248
  - lib/yahoo_content_analysis/response.rb
196
249
  - lib/yahoo_content_analysis/version.rb
197
250
  - test/client_test.rb
251
+ - test/configuration_test.rb
252
+ - test/response_test.rb
253
+ - test/test_helper.rb
198
254
  - yahoo_content_analysis.gemspec
199
255
  homepage: https://github.com/PRX/yahoo_content_analysis
200
256
  licenses: []
@@ -205,19 +261,22 @@ require_paths:
205
261
  - lib
206
262
  required_ruby_version: !ruby/object:Gem::Requirement
207
263
  requirements:
208
- - - '>='
264
+ - - ">="
209
265
  - !ruby/object:Gem::Version
210
266
  version: '0'
211
267
  required_rubygems_version: !ruby/object:Gem::Requirement
212
268
  requirements:
213
- - - '>='
269
+ - - ">="
214
270
  - !ruby/object:Gem::Version
215
271
  version: '0'
216
272
  requirements: []
217
273
  rubyforge_project:
218
- rubygems_version: 2.1.11
274
+ rubygems_version: 2.4.5
219
275
  signing_key:
220
276
  specification_version: 4
221
277
  summary: Use the Yahoo! Content Analysis API to extract topics and entities.
222
278
  test_files:
223
279
  - test/client_test.rb
280
+ - test/configuration_test.rb
281
+ - test/response_test.rb
282
+ - test/test_helper.rb