open_calais 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +19 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +53 -0
- data/Rakefile +11 -0
- data/lib/open_calais.rb +51 -0
- data/lib/open_calais/client.rb +49 -0
- data/lib/open_calais/configuration.rb +58 -0
- data/lib/open_calais/connection.rb +57 -0
- data/lib/open_calais/response.rb +70 -0
- data/lib/open_calais/version.rb +3 -0
- data/open_calais.gemspec +30 -0
- data/test/client_test.rb +26 -0
- data/test/configuration_test.rb +15 -0
- data/test/open_calais_test.rb +25 -0
- data/test/test_helper.rb +4 -0
- metadata +207 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Andrew Kuklewicz
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# OpenCalais
|
2
|
+
|
3
|
+
Ruby gem to access the OpenCalaid API, using the new-ish REST API, and JSON responses.
|
4
|
+
It uses Faraday to abstract HTTP library (defaults to use excon because ot is excellent), and multi_json to abstract JSON parsing.
|
5
|
+
|
6
|
+
It returns a parsed version of the response, but the response contains the raw response (converted from json to hashes/arrays/string/etc).
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
gem 'open_calais'
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
$ bundle
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
$ gem install open_calais
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
OpenCalais has one main method, 'enrich', and so does the gem:
|
25
|
+
|
26
|
+
require 'open_calais'
|
27
|
+
|
28
|
+
# you can configure for all calls
|
29
|
+
OpenCalais.configure do |c|
|
30
|
+
c.api_key = "this is a test key"
|
31
|
+
end
|
32
|
+
|
33
|
+
# or you can configure for a single call
|
34
|
+
open_calais = OpenCalais::Client.new(:api_key=>'an api key')
|
35
|
+
|
36
|
+
# it returns a OpenCalais::Response instance
|
37
|
+
response = open_calais.enrich('Ruby on Rails is a fantastic web framework. It uses MVC, and the Ruby programming language invented by Matz in Japan.')
|
38
|
+
|
39
|
+
# which has the 'raw' response
|
40
|
+
response.raw
|
41
|
+
|
42
|
+
# and has been parsed a bit to get :language, :topics, :tags, :entities, :relations, :locations
|
43
|
+
# as lists of hashes
|
44
|
+
response.tags.each{|t| puts t[:name] }
|
45
|
+
|
46
|
+
|
47
|
+
## Contributing
|
48
|
+
|
49
|
+
1. Fork it
|
50
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
51
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
52
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
53
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/lib/open_calais.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'open_calais/version'
|
5
|
+
require 'open_calais/configuration'
|
6
|
+
require 'open_calais/client'
|
7
|
+
|
8
|
+
module OpenCalais
|
9
|
+
extend Configuration
|
10
|
+
|
11
|
+
HEADERS = {
|
12
|
+
:license_id => 'x-calais-licenseID',
|
13
|
+
:content_type => 'Content-Type',
|
14
|
+
:output_format => 'outputFormat',
|
15
|
+
:reltag_base_url => 'reltagBaseURL',
|
16
|
+
:calculate_relevance_score => 'calculateRelevanceScore',
|
17
|
+
:enable_metadata_type => 'enableMetadataType',
|
18
|
+
:doc_rdf_accessible => 'docRDFaccessible',
|
19
|
+
:discard_metadata => 'discardMetadata',
|
20
|
+
:omit_outputting_original_text => 'omitOutputtingOriginalText',
|
21
|
+
:allow_distribution => 'allowDistribution',
|
22
|
+
:allow_search => 'allowSearch',
|
23
|
+
:external_id => 'externalID',
|
24
|
+
:submitter => 'submitter'
|
25
|
+
}
|
26
|
+
|
27
|
+
CONTENT_TYPES = {
|
28
|
+
:xml => 'TEXT/XML',
|
29
|
+
:html => 'TEXT/HTML',
|
30
|
+
:htmlraw => 'TEXT/HTMLRAW',
|
31
|
+
:raw => 'TEXT/RAW'
|
32
|
+
}
|
33
|
+
|
34
|
+
OUTPUT_FORMATS = {
|
35
|
+
:rdf => 'XML/RDF',
|
36
|
+
:simple => 'Text/Simple',
|
37
|
+
:microformats => 'Text/Microformats',
|
38
|
+
:json => 'Application/JSON'
|
39
|
+
}
|
40
|
+
|
41
|
+
METADATA_SOCIAL_TAGS = 'SocialTags'
|
42
|
+
METADATA_GENERIC_RELATIONS = 'GenericRelations'
|
43
|
+
METADATA_TYPES = [METADATA_GENERIC_RELATIONS, METADATA_SOCIAL_TAGS]
|
44
|
+
|
45
|
+
TOPICS = ['Business_Finance', 'Disaster_Accident', 'Education', 'Entertainment_Culture', 'Environment', 'Health_Medical_Pharma', 'Hospitality_Recreation', 'Human Interest', 'Labor', 'Law_Crime', 'Politics', 'Religion_Belief', 'Social Issues', 'Sports', 'Technology_Internet', 'Weather', 'War_Conflict', 'Other']
|
46
|
+
ENTITY_TYPES = %w(Anniversary City Company Continent Country Currency EmailAddress EntertainmentAwardEvent Facility FaxNumber Holiday IndustryTerm MarketIndex MedicalCondition MedicalTreatment Movie MusicAlbum MusicGroup NaturalFeature OperatingSystem Organization Person PhoneNumber PoliticalEvent Position Product ProgrammingLanguage ProvinceOrState PublishedMedium RadioProgram RadioStation Region SportsEvent SportsGame SportsLeague Technology TVShow TVStation URL)
|
47
|
+
GEO_TYPES = %w(City Continent Country NaturalFeature ProvinceOrState Region)
|
48
|
+
|
49
|
+
DISAMBUGUATIONS = %w(er/Company er/Geo er/Product)
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'open_calais/configuration'
|
2
|
+
require 'open_calais/connection'
|
3
|
+
require 'open_calais/response'
|
4
|
+
|
5
|
+
module OpenCalais
|
6
|
+
class Client
|
7
|
+
|
8
|
+
include Connection
|
9
|
+
|
10
|
+
attr_reader *OpenCalais::Configuration.keys
|
11
|
+
|
12
|
+
attr_accessor :current_options
|
13
|
+
|
14
|
+
class_eval do
|
15
|
+
OpenCalais::Configuration.keys.each do |key|
|
16
|
+
define_method "#{key}=" do |arg|
|
17
|
+
self.instance_variable_set("@#{key}", arg)
|
18
|
+
self.current_options.merge!({:"#{key}" => arg})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize(options={}, &block)
|
24
|
+
setup(options)
|
25
|
+
yield(self) if block_given?
|
26
|
+
end
|
27
|
+
|
28
|
+
def setup(options={})
|
29
|
+
options = OpenCalais.options.merge(options)
|
30
|
+
self.current_options = options
|
31
|
+
Configuration.keys.each do |key|
|
32
|
+
send("#{key}=", options[key])
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def enrich(text, opts={})
|
37
|
+
raise 'Specify a value for the text' unless (text && text.length > 0)
|
38
|
+
|
39
|
+
response = connection.post do |request|
|
40
|
+
request.body = text
|
41
|
+
OpenCalais::HEADERS.each do |k,v|
|
42
|
+
request.headers[v] = opts[k] if opts.key?(k)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
OpenCalais::Response.new(response)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module OpenCalais
|
4
|
+
module Configuration
|
5
|
+
|
6
|
+
VALID_OPTIONS_KEYS = [
|
7
|
+
:api_key,
|
8
|
+
:adapter,
|
9
|
+
:endpoint,
|
10
|
+
:user_agent
|
11
|
+
].freeze
|
12
|
+
|
13
|
+
# this you need to get from open calais - go register!
|
14
|
+
DEFAULT_API_KEY = nil
|
15
|
+
|
16
|
+
# Adapters are whatever Faraday supports - I like excon alot, so I'm defaulting it
|
17
|
+
DEFAULT_ADAPTER = :excon
|
18
|
+
|
19
|
+
# The api endpoint to get REST info from opencalais
|
20
|
+
DEFAULT_ENDPOINT = 'http://api.opencalais.com/tag/rs/enrich'.freeze
|
21
|
+
|
22
|
+
# The value sent in the http header for 'User-Agent' if none is set
|
23
|
+
DEFAULT_USER_AGENT = "OpenCalais Ruby Gem #{OpenCalais::VERSION}".freeze
|
24
|
+
|
25
|
+
attr_accessor *VALID_OPTIONS_KEYS
|
26
|
+
|
27
|
+
# Convenience method to allow for global setting of configuration options
|
28
|
+
def configure
|
29
|
+
yield self
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.extended(base)
|
33
|
+
base.reset!
|
34
|
+
end
|
35
|
+
|
36
|
+
class << self
|
37
|
+
def keys
|
38
|
+
VALID_OPTIONS_KEYS
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def options
|
43
|
+
options = {}
|
44
|
+
VALID_OPTIONS_KEYS.each { |k| options[k] = send(k) }
|
45
|
+
options
|
46
|
+
end
|
47
|
+
|
48
|
+
# Reset configuration options to their defaults
|
49
|
+
def reset!
|
50
|
+
self.api_key = DEFAULT_API_KEY
|
51
|
+
self.adapter = DEFAULT_ADAPTER
|
52
|
+
self.endpoint = DEFAULT_ENDPOINT
|
53
|
+
self.user_agent = DEFAULT_USER_AGENT
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'faraday_middleware'
|
2
|
+
|
3
|
+
module OpenCalais
|
4
|
+
module Connection
|
5
|
+
|
6
|
+
ALLOWED_OPTIONS = [
|
7
|
+
:headers,
|
8
|
+
:url,
|
9
|
+
:params,
|
10
|
+
:request,
|
11
|
+
:ssl
|
12
|
+
].freeze
|
13
|
+
|
14
|
+
def add_default_options(opts={})
|
15
|
+
headers = opts.delete(:headers) || {}
|
16
|
+
options = {
|
17
|
+
:headers => {
|
18
|
+
# generic http headers
|
19
|
+
'User-Agent' => user_agent,
|
20
|
+
'Accept' => "#{OpenCalais::OUTPUT_FORMATS[:json]};charset=utf-8",
|
21
|
+
|
22
|
+
# open calais default headers
|
23
|
+
OpenCalais::HEADERS[:license_id] => api_key,
|
24
|
+
OpenCalais::HEADERS[:content_type] => OpenCalais::CONTENT_TYPES[:raw],
|
25
|
+
OpenCalais::HEADERS[:output_format] => OpenCalais::OUTPUT_FORMATS[:json],
|
26
|
+
OpenCalais::HEADERS[:calculate_relevance_score] => 'false',
|
27
|
+
OpenCalais::HEADERS[:enable_metadata_type] => 'SocialTags',
|
28
|
+
OpenCalais::HEADERS[:doc_rdf_accessible] => 'false',
|
29
|
+
OpenCalais::HEADERS[:omit_outputting_original_text] => 'TRUE' # case matters here, actually
|
30
|
+
},
|
31
|
+
:ssl => {:verify => false},
|
32
|
+
:url => endpoint
|
33
|
+
}.merge(opts)
|
34
|
+
options[:headers] = options[:headers].merge(headers)
|
35
|
+
options
|
36
|
+
end
|
37
|
+
|
38
|
+
def connection(options={})
|
39
|
+
opts = add_default_options(options)
|
40
|
+
Faraday::Connection.new(opts) do |connection|
|
41
|
+
connection.request :url_encoded
|
42
|
+
connection.response :mashify
|
43
|
+
connection.response :logger if ENV['DEBUG']
|
44
|
+
|
45
|
+
if opts[:headers][OpenCalais::HEADERS[:output_format]] == OpenCalais::OUTPUT_FORMATS[:json]
|
46
|
+
connection.response :json
|
47
|
+
else
|
48
|
+
connection.response :xml
|
49
|
+
end
|
50
|
+
|
51
|
+
connection.adapter(adapter)
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module OpenCalais
|
2
|
+
class Response
|
3
|
+
attr_accessor :raw, :language, :topics, :tags, :entities, :relations, :locations
|
4
|
+
|
5
|
+
def initialize(response)
|
6
|
+
@raw = response
|
7
|
+
|
8
|
+
@language = 'English'
|
9
|
+
@topics = []
|
10
|
+
@tags = []
|
11
|
+
@entities = []
|
12
|
+
@relations = []
|
13
|
+
@locations = []
|
14
|
+
|
15
|
+
parse(response)
|
16
|
+
end
|
17
|
+
|
18
|
+
def humanize_topic(topic)
|
19
|
+
topic.gsub('_', ' and ')
|
20
|
+
end
|
21
|
+
|
22
|
+
def importance_to_score(imp)
|
23
|
+
case imp
|
24
|
+
when 1 then 0.9
|
25
|
+
when 2 then 0.7
|
26
|
+
else 0.5
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def parse(response)
|
31
|
+
r = response.body
|
32
|
+
@language = r.doc.meta.language rescue nil
|
33
|
+
@language = nil if @language == 'InputTextTooShort'
|
34
|
+
|
35
|
+
r.each do |k,v|
|
36
|
+
case v._typeGroup
|
37
|
+
when 'topics'
|
38
|
+
self.topics << {:name => humanize_topic(v.categoryName), :score => v.score, :original => v.categoryName}
|
39
|
+
when 'socialTag'
|
40
|
+
self.tags << {:name => v.name, :score => importance_to_score(v.importance)}
|
41
|
+
when 'entities'
|
42
|
+
item = {:guid => k, :name => v.name, :type => v._type}
|
43
|
+
|
44
|
+
instances = Array(v.instances).select{|i| i.exact.downcase != item[:name].downcase }
|
45
|
+
item[:matches] = instances if instances && instances.size > 0
|
46
|
+
|
47
|
+
if OpenCalais::GEO_TYPES.include?(v._type)
|
48
|
+
if (v.resolutions && v.resolutions.size > 0)
|
49
|
+
r = v.resolutions.first
|
50
|
+
item[:name] = r.shortname
|
51
|
+
item[:latitude] = r.latitude
|
52
|
+
item[:longitude] = r.longitude
|
53
|
+
item[:country] = r.containedbycountry if r.containedbycountry
|
54
|
+
item[:state] = r.containedbystate if r.containedbystate
|
55
|
+
end
|
56
|
+
self.locations << item
|
57
|
+
else
|
58
|
+
self.entities << item
|
59
|
+
end
|
60
|
+
when 'relations'
|
61
|
+
item = v.reject_if{|k,v| k[0] == '_' || k == 'instances'}
|
62
|
+
item[:type] = v._type
|
63
|
+
self.relations << item
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# remove social tags which are in the topics list already
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/open_calais.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'open_calais/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "open_calais"
|
8
|
+
gem.version = OpenCalais::VERSION
|
9
|
+
gem.authors = ["Andrew Kuklewicz"]
|
10
|
+
gem.email = ["andrew@prx.org"]
|
11
|
+
gem.summary = %q{This is a gem to call the OpenCalais improved REST API.}
|
12
|
+
gem.description = %q{This is a gem to call the OpenCalais improved REST API. http://www.opencalais.com/ http://www.opencalais.com/documentation/calais-web-service-api/api-invocation/rest}
|
13
|
+
gem.homepage = "https://github.com/PRX/open_calais"
|
14
|
+
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
|
+
gem.require_paths = ["lib"]
|
20
|
+
|
21
|
+
gem.add_runtime_dependency('faraday', ['>= 0.7.4', '< 0.9'])
|
22
|
+
gem.add_runtime_dependency('faraday_middleware', '~> 0.9')
|
23
|
+
gem.add_runtime_dependency('multi_json', '>= 1.0.3', '~> 1.0')
|
24
|
+
gem.add_runtime_dependency('multi_xml')
|
25
|
+
gem.add_runtime_dependency('excon')
|
26
|
+
gem.add_runtime_dependency('hashie', '>= 0.4.0')
|
27
|
+
|
28
|
+
gem.add_development_dependency('rake')
|
29
|
+
gem.add_development_dependency('minitest')
|
30
|
+
end
|
data/test/client_test.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
2
|
+
|
3
|
+
describe OpenCalais::Client do
|
4
|
+
|
5
|
+
it "is initialized with defaults" do
|
6
|
+
oc = OpenCalais::Client.new
|
7
|
+
oc.current_options.wont_be_nil
|
8
|
+
oc.current_options.must_equal OpenCalais.options
|
9
|
+
end
|
10
|
+
|
11
|
+
it "is initialized with specific values" do
|
12
|
+
oc = OpenCalais::Client.new(:api_key => 'current')
|
13
|
+
oc.current_options.wont_be_nil
|
14
|
+
oc.current_options.wont_equal OpenCalais.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
|
+
oc = OpenCalais::Client.new(:api_key => ENV['OPEN_CALAIS_KEY'])
|
21
|
+
response = oc.enrich("Ruby on Rails is a fantastic web framework. It uses MVC, and the ruby programming language invented by Matz")
|
22
|
+
response.wont_be_nil
|
23
|
+
response.raw.wont_be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
2
|
+
|
3
|
+
module TestConfig
|
4
|
+
extend OpenCalais::Configuration
|
5
|
+
end
|
6
|
+
|
7
|
+
describe OpenCalais::Configuration do
|
8
|
+
|
9
|
+
it "can be configured" do
|
10
|
+
TestConfig.configure do |c|
|
11
|
+
c.must_be_kind_of OpenCalais::Configuration
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
2
|
+
|
3
|
+
describe OpenCalais do
|
4
|
+
|
5
|
+
it "has default configuration options" do
|
6
|
+
OpenCalais.options.wont_be_nil
|
7
|
+
OpenCalais.options[:adapter].must_equal OpenCalais::Configuration::DEFAULT_ADAPTER
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can be configured" do
|
11
|
+
OpenCalais.must_respond_to(:configure)
|
12
|
+
|
13
|
+
OpenCalais.api_key.must_be_nil
|
14
|
+
|
15
|
+
OpenCalais.configure do |c|
|
16
|
+
c.must_equal OpenCalais
|
17
|
+
c.api_key = "this is a test key"
|
18
|
+
end
|
19
|
+
|
20
|
+
OpenCalais.api_key.must_equal "this is a test key"
|
21
|
+
|
22
|
+
OpenCalais.options[:api_key].must_equal "this is a test key"
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: open_calais
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andrew Kuklewicz
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: faraday
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.7.4
|
22
|
+
- - <
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0.9'
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.7.4
|
33
|
+
- - <
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0.9'
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: faraday_middleware
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.9'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ~>
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0.9'
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: multi_json
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 1.0.3
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.0.3
|
71
|
+
- - ~>
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '1.0'
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: multi_xml
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: excon
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
type: :runtime
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: hashie
|
108
|
+
requirement: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 0.4.0
|
114
|
+
type: :runtime
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 0.4.0
|
122
|
+
- !ruby/object:Gem::Dependency
|
123
|
+
name: rake
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
type: :development
|
131
|
+
prerelease: false
|
132
|
+
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ! '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
- !ruby/object:Gem::Dependency
|
139
|
+
name: minitest
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
description: This is a gem to call the OpenCalais improved REST API. http://www.opencalais.com/
|
155
|
+
http://www.opencalais.com/documentation/calais-web-service-api/api-invocation/rest
|
156
|
+
email:
|
157
|
+
- andrew@prx.org
|
158
|
+
executables: []
|
159
|
+
extensions: []
|
160
|
+
extra_rdoc_files: []
|
161
|
+
files:
|
162
|
+
- .gitignore
|
163
|
+
- Gemfile
|
164
|
+
- LICENSE.txt
|
165
|
+
- README.md
|
166
|
+
- Rakefile
|
167
|
+
- lib/open_calais.rb
|
168
|
+
- lib/open_calais/client.rb
|
169
|
+
- lib/open_calais/configuration.rb
|
170
|
+
- lib/open_calais/connection.rb
|
171
|
+
- lib/open_calais/response.rb
|
172
|
+
- lib/open_calais/version.rb
|
173
|
+
- open_calais.gemspec
|
174
|
+
- test/client_test.rb
|
175
|
+
- test/configuration_test.rb
|
176
|
+
- test/open_calais_test.rb
|
177
|
+
- test/test_helper.rb
|
178
|
+
homepage: https://github.com/PRX/open_calais
|
179
|
+
licenses: []
|
180
|
+
post_install_message:
|
181
|
+
rdoc_options: []
|
182
|
+
require_paths:
|
183
|
+
- lib
|
184
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
192
|
+
requirements:
|
193
|
+
- - ! '>='
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
requirements: []
|
197
|
+
rubyforge_project:
|
198
|
+
rubygems_version: 1.8.23
|
199
|
+
signing_key:
|
200
|
+
specification_version: 3
|
201
|
+
summary: This is a gem to call the OpenCalais improved REST API.
|
202
|
+
test_files:
|
203
|
+
- test/client_test.rb
|
204
|
+
- test/configuration_test.rb
|
205
|
+
- test/open_calais_test.rb
|
206
|
+
- test/test_helper.rb
|
207
|
+
has_rdoc:
|