open_calais 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .key
6
+ .rbenv-version
7
+ .yardoc
8
+ Gemfile.lock
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in open_calais.gemspec
4
+ gemspec
@@ -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.
@@ -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
@@ -0,0 +1,11 @@
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
@@ -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
@@ -0,0 +1,3 @@
1
+ module OpenCalais
2
+ VERSION = "0.0.1"
3
+ end
@@ -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
@@ -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
@@ -0,0 +1,4 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+
4
+ require 'open_calais'
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: