Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Klout to use the latest API #2

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# rcov generated
coverage

# rdoc generated
rdoc

# yard generated
doc
.yardoc

# bundler
.bundle

# jeweler generated
pkg

# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
#
# * Create a file at ~/.gitignore
# * Include files you want ignored
# * Run: git config --global core.excludesfile ~/.gitignore
#
# After doing this, these files will be ignored in all your git projects,
# saving you from having to 'pollute' every project you touch with them
#
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
#
# For MacOS:
#
#.DS_Store
#
# For TextMate
#*.tmproj
#tmtags
#
# For emacs:
#*~
#\#*
#.\#*
#
# For vim:
#*.swp
12 changes: 12 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
source "http://rubygems.org"

gem 'json'

group :development do
gem "shoulda", ">= 0"
gem "bundler", "~> 1.0.0"
gem "jeweler", "~> 1.5.1"
gem "rcov", ">= 0"
gem "fakeweb"
gem "rspec"
end
52 changes: 42 additions & 10 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,15 +1,47 @@
require 'rubygems'
require 'echoe'
require 'fileutils'
require './lib/klout'
require 'bundler'
require 'rspec'
require 'rspec/core'
require 'rspec/core/rake_task'
require 'rake/rdoctask'

Echoe.new 'klout', '0.1.0' do |p|
p.author = 'Jason Torres'
p.email = '[email protected]'
p.url = 'http://github.com/jasontorres/klout'
p.description = "Klout - Twitter Analytics"
p.runtime_dependencies = ["typhoeus"]
begin
Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e
$stderr.puts e.message
$stderr.puts "Run `bundle install` to install missing gems"
exit e.status_code
end
require 'rake'

require 'jeweler'
Jeweler::Tasks.new do |gem|
gem.summary = "Ruby library for consuming the Klout API"
gem.description = "Klout measures influence on topics across the social web to find the people the world listens to. See http://klout.com for more information about their service"
gem.authors = 'Jason Torres'
gem.email = '[email protected]'
gem.homepage = 'http://github.com/jasontorres/klout'
gem.name = "klout"
gem.license = "MIT"
end
Jeweler::RubygemsDotOrgTasks.new

RSpec::Core::RakeTask.new(:spec) do |spec|
spec.pattern = FileList['spec/**/*_spec.rb']
end

Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
RSpec::Core::RakeTask.new(:rcov) do |spec|
spec.pattern = 'spec/**/*_spec.rb'
spec.rcov = true
end

task :default => :spec

Rake::RDocTask.new do |rdoc|
version = File.exist?('VERSION') ? File.read('VERSION') : ""

rdoc.rdoc_dir = 'rdoc'
rdoc.title = "new_k #{version}"
rdoc.rdoc_files.include('README*')
rdoc.rdoc_files.include('lib/**/*.rb')
end
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.2.0
11 changes: 11 additions & 0 deletions examples/examples.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
$:.unshift(File.dirname(__FILE__) + '/../lib')
require 'rubygems'
require 'klout'
require 'json'

Klout.api_key = 'YOUR_API_KEY'
p Klout.score('jsgoecke')
p Klout.score([ 'jsgoecke', 'chrismatthieu', 'johnnydiggz' ])

p Klout.profile('jsgoecke')
p Klout.profile([ 'jsgoecke', 'chrismatthieu', 'johnnydiggz' ])
73 changes: 73 additions & 0 deletions klout.gemspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Generated by jeweler
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*-

Gem::Specification.new do |s|
s.name = %q{klout}
s.version = "0.2.0"

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Jason Torres"]
s.date = %q{2010-12-30}
s.description = %q{Klout measures influence on topics across the social web to find the people the world listens to. See http://klout.com for more information about their service}
s.email = %q{[email protected]}
s.extra_rdoc_files = [
"README"
]
s.files = [
"Gemfile",
"Manifest",
"README",
"Rakefile",
"VERSION",
"examples/examples.rb",
"lib/klout.rb",
"spec/klout_spec.rb",
"spec/spec.opts",
"spec/spec_helper.rb",
"tasks/rspec.rake"
]
s.homepage = %q{http://github.com/jasontorres/klout}
s.licenses = ["MIT"]
s.require_paths = ["lib"]
s.rubygems_version = %q{1.3.6}
s.summary = %q{Ruby library for consuming the Klout API}
s.test_files = [
"examples/examples.rb",
"spec/klout_spec.rb",
"spec/spec_helper.rb"
]

if s.respond_to? :specification_version then
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
s.specification_version = 3

if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<json>, [">= 0"])
s.add_development_dependency(%q<shoulda>, [">= 0"])
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
s.add_development_dependency(%q<rcov>, [">= 0"])
s.add_development_dependency(%q<fakeweb>, [">= 0"])
s.add_development_dependency(%q<rspec>, [">= 0"])
else
s.add_dependency(%q<json>, [">= 0"])
s.add_dependency(%q<shoulda>, [">= 0"])
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
s.add_dependency(%q<rcov>, [">= 0"])
s.add_dependency(%q<fakeweb>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
end
else
s.add_dependency(%q<json>, [">= 0"])
s.add_dependency(%q<shoulda>, [">= 0"])
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
s.add_dependency(%q<rcov>, [">= 0"])
s.add_dependency(%q<fakeweb>, [">= 0"])
s.add_dependency(%q<rspec>, [">= 0"])
end
end

28 changes: 20 additions & 8 deletions lib/klout.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
require 'rubygems'
require 'json'
require 'open-uri'
require 'net/http'

$:.unshift(File.dirname(__FILE__)) unless
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))

Expand All @@ -19,6 +22,8 @@

class Klout
VERSION = '0.0.1'
BASE_URI = 'http://api.klout.com/1'

class << self
@@base_host = "klout.com"

Expand All @@ -32,20 +37,30 @@ def api_key
@@api_key
end

def score(username)
request_uri = "http://klout.com/api/twitter/1/klout/#{@@api_key}/#{username}.json"
def score(usernames)
request_uri = "#{BASE_URI}/klout.json?key=#{ @@api_key }&users=#{ join_usernames(usernames) }"
return request(request_uri)
end

def profile(username)
request_uri = "http://klout.com/api/twitter/1.1/profiledetail/#{@@api_key}/#{username}.json"
def profile(usernames)
request_uri = "#{BASE_URI}/users/show.json?key=#{ @@api_key }&users=#{ join_usernames(usernames) }"
return request(request_uri)
end

private

def join_usernames(usernames)
if usernames.instance_of? Array
usernames.join(',')
else
usernames
end
end

def request(request_uri)
url = URI.parse(request_uri)
response = Net::HTTP.start(url.host, url.port) { |http|
http.get(url.path)
http.get(url.request_uri)
}

case response
Expand All @@ -62,8 +77,5 @@ def request(request_uri)
response.error!
end
end



end
end
Binary file removed pkg/klout-0.1.0.gem
Binary file not shown.
Binary file removed pkg/klout-0.1.0.tar.gz
Binary file not shown.
8 changes: 0 additions & 8 deletions pkg/klout-0.1.0/Manifest

This file was deleted.

23 changes: 0 additions & 23 deletions pkg/klout-0.1.0/README

This file was deleted.

15 changes: 0 additions & 15 deletions pkg/klout-0.1.0/Rakefile

This file was deleted.

33 changes: 0 additions & 33 deletions pkg/klout-0.1.0/klout.gemspec

This file was deleted.

Loading