zemanta 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ test_file.*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --drb
data/.rvmrc ADDED
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
+ environment_id="ruby-1.9.2-p180@zemanta"
8
+
9
+ #
10
+ # First we attempt to load the desired environment directly from the environment
11
+ # file. This is very fast and efficicent compared to running through the entire
12
+ # CLI and selector. If you want feedback on which environment was used then
13
+ # insert the word 'use' after --create as this triggers verbose mode.
14
+ #
15
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
16
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] ; then
17
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
18
+
19
+ [[ -s ".rvm/hooks/after_use" ]] && . ".rvm/hooks/after_use"
20
+ else
21
+ # If the environment file has not yet been created, use the RVM CLI to select.
22
+ rvm --create "$environment_id"
23
+ fi
24
+
25
+ #
26
+ # If you use an RVM gemset file to install a list of gems (*.gems), you can have
27
+ # it be automatically loaded. Uncomment the following and adjust the filename if
28
+ # necessary.
29
+ #
30
+ # filename=".gems"
31
+ # if [[ -s "$filename" ]] ; then
32
+ # rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
33
+ # fi
34
+
35
+ #
36
+ # If you use bundler and would like to run bundle each time you enter the
37
+ # directory, you can uncomment the following code.
38
+ #
39
+ # # Ensure that Bundler is installed. Install it if it is not.
40
+ # if ! command -v bundle >/dev/null; then
41
+ # printf "The rubygem 'bundler' is not installed. Installing it now.\n"
42
+ # gem install bundler
43
+ # fi
44
+ #
45
+ # # Bundle while reducing excess noise.
46
+ # printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
47
+ # bundle | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
48
+ #
49
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in zemanta.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,19 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ # watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ # watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ # watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", # "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ # watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ # watch('config/routes.rb') { "spec/routing" }
15
+ # watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+ # # Capybara request specs
17
+ # watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
18
+ end
19
+
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Oto Brglez
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,122 @@
1
+ # Ruby client for Zemanta
2
+
3
+ This Gem provides Ruby client and comand-line tool for Zemanta API.
4
+
5
+ ## Requirements
6
+
7
+ To use this client you must gain API key.
8
+ You can get API key on http://developer.zemanta.com
9
+
10
+ ## Installation
11
+
12
+ Add this line to your Gemfile
13
+
14
+ gem 'zemanta'
15
+
16
+ Or install it as seperate gem
17
+
18
+ $ gem install zemanta
19
+
20
+ ## Using Zemanta from comand-line
21
+
22
+ After installing the Gem create file ~/.zemanta with API key.
23
+
24
+ ZEMANTA_KEY="xxx"
25
+
26
+ For comand-line usage use command -h. You will get following output...
27
+
28
+ Usage: zemanta COMMAND [options]
29
+
30
+ Commands
31
+ suggest: Suggest method allows to query Zemanta for contextual metadata about a given text.
32
+ Options
33
+ -h, --help help
34
+ -a, --api_key NEW_KEY Zemanta api_key
35
+ -t, --text TEXT Text to work on
36
+ -f, --file FILE File to work on
37
+ -m, --mtype TYPE Output type (JSON or RB)
38
+ -r, --result_field FIELD Result field
39
+
40
+ Usage example would be...
41
+
42
+ zemanta suggest -f test_file.txt -r articles -m json
43
+
44
+ ## Using Zemanta in your Ruby application
45
+
46
+ You can use client from your Ruby code or from comand-line.
47
+
48
+ ### Configuration
49
+
50
+ Zemanta API requires API key, so to use this client you also have to set the key. You can do this like so...
51
+
52
+ zemanta = Zemanta.new "API_KEY_GOES_HERE"
53
+
54
+ Or if you like class wide key...
55
+
56
+ Zemanta.api_key = "API_KEY_GOES_HERE"
57
+
58
+ The 3rd option is to set enviroment variable "ZEMANTA_KEY" and client will pick it up.
59
+
60
+ ### Suggests with #suggest method
61
+
62
+ Zemanta API provides 3 methods; and so does this client.
63
+ You can use suggest method like so...
64
+
65
+ suggests = Zemanta.new.suggest("My long text goes here...")
66
+
67
+ suggests['articles'] # All the suggested articles
68
+ suggests['images'] # All suggested images
69
+ ...
70
+
71
+ For more information and structure look at this #suggest resource.
72
+
73
+ http://developer.zemanta.com/docs/suggest/
74
+
75
+ ### Suggests with #suggest_markup
76
+
77
+ In comparison to #zemanta_suggest, this method returns only links to semantical entities.
78
+
79
+ suggests = Zemanta.new.suggest_markup("My long text goes here...")
80
+ suggests['markup']
81
+
82
+ For more information about this response see suggest_markup method documentation.
83
+
84
+ http://developer.zemanta.com/docs/suggest_markup/
85
+
86
+ ### #preferences method
87
+
88
+ Method #preferences allows Zemanta API users to get preferences of specific user.
89
+
90
+ me = Zemanta.new.preferences
91
+ me['user'] # Get nice key...
92
+
93
+ ### Client options
94
+
95
+ Zemanta API methods also provide some additional options. You can use them like so:
96
+
97
+ suggests = z.suggest("
98
+ Some text here...
99
+ ",{
100
+ return_images: 0, # Don't return any images.
101
+ articles_limit: 2 # Limit of articles returned
102
+ })
103
+
104
+ For more options please read:
105
+ http://developer.zemanta.com/docs/suggest/
106
+
107
+ ## Limits
108
+
109
+ Your daily limit is set at 1.000 calls per day. Send email to support@zemanta.com to make it 10.000 calls per day.
110
+
111
+ ## Testing and developement
112
+
113
+ Client is tested/build with RSpec with help of Guard, but it does NOT use mockups or anything like that. For testing and developement you must get your own Zemanta API Key.
114
+
115
+ ## About
116
+
117
+ This is unofficial client and comes without any warranty. Please
118
+ read and use documentation provided by Zemanta.
119
+
120
+ ## Contribution and authors
121
+
122
+ Oto Brglez / @otobrglez / <oto.brglez@opalab.com>
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/bin/zemanta ADDED
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require 'zemanta'
5
+ require 'pp'
6
+
7
+ # Read content of ~/.zemanta or die.
8
+ def read_key_from_zemanta_rc path=nil
9
+ path = "#{ENV['HOME']}/.zemanta" if path.nil?
10
+ unless File.exist? path
11
+ puts "Please create \"#{path}\" with content: "
12
+ puts "ZEMANTA_KEY=\"your_key_here\""
13
+ exit(1)
14
+ end
15
+ eval(File.read(path))
16
+ return ZEMANTA_KEY
17
+ end
18
+
19
+ api_key = ENV["ZEMANTA_KEY"]
20
+ api_key = read_key_from_zemanta_rc if api_key.nil? or api_key.strip==""
21
+
22
+ options = {
23
+ output_type: "RB"
24
+ }
25
+
26
+ parser = OptionParser.new do |opt|
27
+ opt.banner = "Usage: zemanta COMMAND [options]"
28
+ opt.separator ""
29
+ opt.separator "Commands"
30
+ opt.separator " suggest: Suggest method allows to query Zemanta for contextual metadata about a given text."
31
+
32
+ # opt.separator " suggest_markup: In comparison to suggest, this method returns only links to semantical entities."
33
+
34
+ opt.separator "Options"
35
+ opt.on("-h","--help","help") do
36
+ puts parser
37
+ end
38
+
39
+ opt.on("-a","--api_key NEW_KEY","Zemanta api_key") do |a|
40
+ api_key=a
41
+ end
42
+
43
+ opt.on("-t","--text TEXT","Text to work on") do |t|
44
+ options[:text] = t
45
+ end
46
+
47
+ opt.on("-f","--file FILE","File to work on") do |t|
48
+ if File.exist? t
49
+ options[:text] = File.read(t)
50
+ else
51
+ puts "Can't read file: #{t}"
52
+ exit(1)
53
+ end
54
+ end
55
+
56
+ opt.on("-m","--mtype TYPE","Output type (JSON or RB)") do |t|
57
+ allowed = %w(JSON RB)
58
+ if allowed.include?t.upcase
59
+ options[:output_type] = t.upcase
60
+ else
61
+ puts "Alowed output types: " + allowed.join(", ")
62
+ exit(1)
63
+ end
64
+ end
65
+
66
+ opt.on("-r","--result_field FIELD","Result field") do |o|
67
+ options[:result_field] = o.split(",").map(&:strip).first
68
+ end
69
+ end
70
+
71
+ # Dirty/ugly hack!!!
72
+ if not(ARGV[1].nil?) and ARGV[1][0] != "-"
73
+ options[:text] = ARGV[1]
74
+ end
75
+
76
+ parser.parse!
77
+
78
+ ##### The thing ######
79
+
80
+ def output response, options
81
+ if options[:output_type] =~ /json/i
82
+ puts response.to_json
83
+ else
84
+ pp response
85
+ end
86
+ end
87
+
88
+ z = Zemanta.new(api_key)
89
+
90
+ case ARGV[0]
91
+ when "suggest"
92
+ suggests = z.suggest(options[:text], options)
93
+ if options[:result_field].nil?
94
+ output(suggests,options)
95
+ else
96
+ output(suggests[ (options[:result_field]) ],options)
97
+ end
98
+ #else
99
+ # puts "\"#{ARGV[0]}\" is not implemented in comand-line yet!!!"
100
+ else
101
+ parser
102
+ end
@@ -0,0 +1,3 @@
1
+ class Zemanta
2
+ VERSION = "0.0.1"
3
+ end
data/lib/zemanta.rb ADDED
@@ -0,0 +1,65 @@
1
+ require "zemanta/version"
2
+ require "httparty"
3
+
4
+ class Zemanta
5
+ include HTTParty
6
+ base_uri 'http://api.zemanta.com'
7
+
8
+ # api_key for Zemanta
9
+ @@api_key=nil
10
+ def self.api_key=(key); @@api_key=key end
11
+ def self.api_key; @@api_key end
12
+ def api_key; Zemanta.api_key end
13
+
14
+ # Initialize the client
15
+ def initialize(api_key=nil)
16
+ @@api_key = api_key unless api_key.nil?
17
+ @@api_key = ENV["ZEMANTA_KEY"] if @@api_key.nil? and not(ENV["ZEMANTA_KEY"].nil?)
18
+ end
19
+
20
+ # Provide contextual metadata about text
21
+ # See: http://developer.zemanta.com/docs/suggest/
22
+ def suggest text, options={}
23
+ get("suggest",options.merge!({
24
+ text: text
25
+ }))
26
+ end
27
+
28
+ # Suggest method allows developers to query Zemanta
29
+ # for contextual metadata on a given text.
30
+ # In comparison to zemanta.suggest, this method returns
31
+ # only links to semantical entities.
32
+ def suggest_markup text, options={}
33
+ get("suggest_markup",options.merge!({
34
+ text: text
35
+ }))
36
+ end
37
+
38
+ # Get preferences of specific user.
39
+ def preferences options={}
40
+ get("preferences",options)
41
+ end
42
+
43
+ # Get REST service with JSON response
44
+ def get(method,options)
45
+ options.merge!({
46
+ method: "zemanta.#{method}",
47
+ api_key: @@api_key,
48
+ format: "json"})
49
+
50
+ handle_response(
51
+ self.class.get('/services/rest/0.0/',query:options),
52
+ options)
53
+ end
54
+
55
+ # Handle response from service
56
+ def handle_response response, options={}
57
+ unless response['status'] =~ /ok/
58
+ msg = response.parsed_response.match("<h1>(.+?)</h1>")[1]
59
+ msg = "Error." if msg.nil?
60
+ throw "Zemanta: %s" % msg
61
+ end
62
+
63
+ response
64
+ end
65
+ end
@@ -0,0 +1,8 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+
4
+ require "zemanta"
5
+
6
+ RSpec.configure do |config|
7
+
8
+ end
@@ -0,0 +1,99 @@
1
+ require "spec_helper"
2
+
3
+ describe Zemanta do
4
+ it "should respond to #VERSION" do
5
+ Zemanta::VERSION.should_not be_nil
6
+ end
7
+
8
+ it "can use ENV variable for api_key" do
9
+ ENV["ZEMANTA_KEY"].should_not be_nil
10
+ end
11
+
12
+ it "has some methods" do
13
+ client = Zemanta.new ENV["ZEMANTA_KEY"]
14
+ client.should respond_to :suggest
15
+ client.should respond_to :suggest_markup
16
+ client.should respond_to :preferences
17
+ end
18
+
19
+ context "Initialization process" do
20
+ it "has api_key from ENV" do
21
+ Zemanta.api_key.should == ENV["ZEMANTA_KEY"]
22
+ end
23
+
24
+ it "should break if no #api_key is present" do
25
+ client = Zemanta.new "AAA"
26
+ client.api_key.should == "AAA"
27
+
28
+ Zemanta.api_key = "BBB"
29
+ Zemanta.api_key.should == "BBB"
30
+ client_2 = Zemanta.new
31
+ client_2.api_key.should == "BBB"
32
+ end
33
+
34
+ it "should break on fake api_key" do
35
+ client = Zemanta.new("FAKE")
36
+ expect{
37
+ suggests = client.suggest("fake it till u make it...")
38
+ }.to raise_error
39
+ end
40
+ end
41
+
42
+ context "#suggest method" do
43
+ let(:z){ Zemanta.new(ENV["ZEMANTA_KEY"]) }
44
+
45
+ it "can #suggest to some text" do
46
+ suggests = z.suggest("
47
+ The Phoenix Mars Lander has successfully deployed its robotic arm and
48
+ tested other instruments including a laser designed to detect dust,
49
+ clouds, and fog.
50
+ ")
51
+
52
+ suggests['articles'].should_not be_nil
53
+ suggests['images'].should_not be_nil
54
+ suggests['markup'].should_not be_nil
55
+ suggests['signature'].should_not be_nil
56
+ suggests['keywords'].should_not be_nil
57
+ suggests['rid'].should_not be_nil
58
+ suggests['categories'].should_not be_nil
59
+ suggests['rich_objects'].should_not be_nil
60
+ end
61
+
62
+ it "can do some additional #attributes" do
63
+ suggests = z.suggest("
64
+ Ronald Reagan je bil 40. predsednik ZDA v letih 1981-1989 in 33. guverner drzave Kalifornija v letih 1967-1975.
65
+ Pred vstopom v politiko je bil Reagan tudi napovedovalec, filmski igralec in predsednik Ameriskega zdruzenja igralcev.
66
+ ",{
67
+ return_images: 0,
68
+ articles_limit: 2
69
+ })
70
+
71
+ suggests['articles'].size.should == 2
72
+ suggests['images'].should be_nil
73
+ end
74
+ end
75
+
76
+ context "#suggest_markup" do
77
+ let(:z){ Zemanta.new(ENV["ZEMANTA_KEY"]) }
78
+ it "can #suggest_markup to some text" do
79
+ suggests = z.suggest_markup "
80
+ The Phoenix Mars Lander has successfully deployed its robotic arm and
81
+ tested other instruments including a laser designed to detect dust,
82
+ clouds, and fog. The arm will be used to dig up samples of the Martian
83
+ surface which will be analyzed as a possible habitat for life.
84
+ "
85
+
86
+ suggests["markup"].should_not be_nil
87
+ suggests["markup"]["text"].should_not be_nil
88
+ end
89
+ end
90
+
91
+ context "#preferences" do
92
+ let(:z){ Zemanta.new(ENV["ZEMANTA_KEY"]) }
93
+ it "can have #preferences" do
94
+ z.should respond_to :preferences
95
+ prefs = z.preferences
96
+ prefs["user"].should_not be_nil
97
+ end
98
+ end
99
+ end
data/zemanta.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/zemanta/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Oto Brglez"]
6
+ gem.email = ["otobrglez@gmail.com"]
7
+ gem.description = %q{Ruby client for Zemanta}
8
+ gem.summary = %q{This GEM provides Ruby client and comand-line tool for Zemanta API.}
9
+ gem.homepage = "https://github.com/otobrglez/zemanta"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "zemanta"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Zemanta::VERSION
17
+
18
+ gem.has_rdoc = false
19
+
20
+ gem.add_dependency "httparty"
21
+ # gem.add_dependency "nokogiri"
22
+
23
+ gem.add_development_dependency 'rspec'
24
+ gem.add_development_dependency 'rake'
25
+ gem.add_development_dependency 'guard'
26
+ gem.add_development_dependency 'guard-rspec'
27
+ gem.add_development_dependency 'growl'
28
+ gem.add_development_dependency 'spork', '~> 1.0rc'
29
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zemanta
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Oto Brglez
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-06-12 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: httparty
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &id003 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: guard
50
+ requirement: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: guard-rspec
61
+ requirement: &id005 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: growl
72
+ requirement: &id006 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: spork
83
+ requirement: &id007 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0rc
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *id007
92
+ description: Ruby client for Zemanta
93
+ email:
94
+ - otobrglez@gmail.com
95
+ executables:
96
+ - zemanta
97
+ extensions: []
98
+
99
+ extra_rdoc_files: []
100
+
101
+ files:
102
+ - .gitignore
103
+ - .rspec
104
+ - .rvmrc
105
+ - Gemfile
106
+ - Guardfile
107
+ - LICENSE
108
+ - README.md
109
+ - Rakefile
110
+ - bin/zemanta
111
+ - lib/zemanta.rb
112
+ - lib/zemanta/version.rb
113
+ - spec/spec_helper.rb
114
+ - spec/zemanta_spec.rb
115
+ - zemanta.gemspec
116
+ homepage: https://github.com/otobrglez/zemanta
117
+ licenses: []
118
+
119
+ post_install_message:
120
+ rdoc_options: []
121
+
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: -4004596336368350971
130
+ segments:
131
+ - 0
132
+ version: "0"
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ hash: -4004596336368350971
139
+ segments:
140
+ - 0
141
+ version: "0"
142
+ requirements: []
143
+
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.12
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: This GEM provides Ruby client and comand-line tool for Zemanta API.
149
+ test_files:
150
+ - spec/spec_helper.rb
151
+ - spec/zemanta_spec.rb