zemanta 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/.rspec +2 -0
- data/.rvmrc +49 -0
- data/Gemfile +4 -0
- data/Guardfile +19 -0
- data/LICENSE +22 -0
- data/README.md +122 -0
- data/Rakefile +2 -0
- data/bin/zemanta +102 -0
- data/lib/zemanta/version.rb +3 -0
- data/lib/zemanta.rb +65 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/zemanta_spec.rb +99 -0
- data/zemanta.gemspec +29 -0
- metadata +151 -0
data/.gitignore
ADDED
data/.rspec
ADDED
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
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
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
|
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
|
data/spec/spec_helper.rb
ADDED
@@ -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
|