peteog-tagometer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest +11 -0
- data/Rakefile +18 -0
- data/init.rb +1 -0
- data/lib/tagometer/client.rb +11 -0
- data/lib/tagometer/summary.rb +40 -0
- data/lib/tagometer/version.rb +3 -0
- data/lib/tagometer.rb +10 -0
- data/tagometer.gemspec +38 -0
- data/test/fixtures/google.yml +16 -0
- data/test/test_helper.rb +14 -0
- data/test/test_summary.rb +29 -0
- data/test/test_tagometer.rb +7 -0
- metadata +91 -0
data/Manifest
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
require 'lib/tagometer/version'
|
5
|
+
|
6
|
+
Echoe.new('tagometer', Tagometer::Version) do |p|
|
7
|
+
p.description = 'A simple wrapper for the Delicious tagometer'
|
8
|
+
p.author = "Pete O'Grady"
|
9
|
+
p.email = 'pete@peteogrady.com'
|
10
|
+
p.extra_deps = [['httparty', '0.2.4']]
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'Preps the gem for a new release'
|
14
|
+
task :prepare do
|
15
|
+
%w[manifest build_gemspec].each do |task|
|
16
|
+
Rake::Task[task].invoke
|
17
|
+
end
|
18
|
+
end
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'tagometer'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Tagometer
|
2
|
+
class Summary
|
3
|
+
attr_reader :url, :client, :md5_url
|
4
|
+
|
5
|
+
def initialize(url, client=Client.new)
|
6
|
+
@url = url
|
7
|
+
@client = client
|
8
|
+
@md5_url = create_md5_url(url)
|
9
|
+
populate
|
10
|
+
end
|
11
|
+
|
12
|
+
def title
|
13
|
+
@title || ''
|
14
|
+
end
|
15
|
+
|
16
|
+
def total_posts
|
17
|
+
@total_posts || 0
|
18
|
+
end
|
19
|
+
|
20
|
+
def top_tags
|
21
|
+
@top_tags || {}
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def create_md5_url(url)
|
27
|
+
Digest::MD5.hexdigest(url)
|
28
|
+
end
|
29
|
+
|
30
|
+
def populate
|
31
|
+
data = @client.get(@md5_url)
|
32
|
+
|
33
|
+
if data.any?
|
34
|
+
@title = data.first['title']
|
35
|
+
@total_posts = data.first['total_posts']
|
36
|
+
@top_tags = data.first['top_tags']
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/tagometer.rb
ADDED
data/tagometer.gemspec
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{tagometer}
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Pete O'Grady"]
|
9
|
+
s.date = %q{2008-12-30}
|
10
|
+
s.description = %q{A simple wrapper for the Delicious tagometer}
|
11
|
+
s.email = %q{pete@peteogrady.com}
|
12
|
+
s.extra_rdoc_files = ["lib/tagometer/client.rb", "lib/tagometer/summary.rb", "lib/tagometer/version.rb", "lib/tagometer.rb"]
|
13
|
+
s.files = ["init.rb", "lib/tagometer/client.rb", "lib/tagometer/summary.rb", "lib/tagometer/version.rb", "lib/tagometer.rb", "Rakefile", "test/fixtures/google.yml", "test/test_helper.rb", "test/test_summary.rb", "test/test_tagometer.rb", "Manifest", "tagometer.gemspec"]
|
14
|
+
s.has_rdoc = true
|
15
|
+
s.homepage = %q{}
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Tagometer", "--main", "README.md"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = %q{tagometer}
|
19
|
+
s.rubygems_version = %q{1.3.1}
|
20
|
+
s.summary = %q{A simple wrapper for the Delicious tagometer}
|
21
|
+
s.test_files = ["test/test_helper.rb", "test/test_summary.rb", "test/test_tagometer.rb"]
|
22
|
+
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
+
s.specification_version = 2
|
26
|
+
|
27
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_runtime_dependency(%q<httparty>, ["= 0.2.4"])
|
29
|
+
s.add_development_dependency(%q<echoe>, [">= 0"])
|
30
|
+
else
|
31
|
+
s.add_dependency(%q<httparty>, ["= 0.2.4"])
|
32
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
33
|
+
end
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<httparty>, ["= 0.2.4"])
|
36
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
- title: Google
|
3
|
+
hash: ff90821feeb2b02a33a6f9fc8e5f3fcd
|
4
|
+
url: http://www.google.com/
|
5
|
+
total_posts: 30879
|
6
|
+
top_tags:
|
7
|
+
reference: 873
|
8
|
+
search: 9183
|
9
|
+
tools: 548
|
10
|
+
internet: 756
|
11
|
+
engine: 2106
|
12
|
+
google: 7400
|
13
|
+
research: 451
|
14
|
+
searchengines: 1112
|
15
|
+
web: 1247
|
16
|
+
searchengine: 3383
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'context'
|
4
|
+
require 'stump'
|
5
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'tagometer')
|
6
|
+
|
7
|
+
def successful_response_data
|
8
|
+
load_yaml_fixture("google.yml")
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_yaml_fixture(path)
|
12
|
+
absolute_path = File.join(File.dirname(__FILE__), '..', "test", "fixtures", path)
|
13
|
+
YAML::load_file absolute_path
|
14
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class TestRequest < Test::Unit::TestCase
|
4
|
+
before do
|
5
|
+
@client.stub!(:get, :return => successful_response_data)
|
6
|
+
@summary = Tagometer::Summary.new('http://www.google.com/', @client)
|
7
|
+
end
|
8
|
+
|
9
|
+
test "should set client and url on initalize" do
|
10
|
+
assert_equal(@client, @summary.client)
|
11
|
+
assert_equal('http://www.google.com/', @summary.url)
|
12
|
+
end
|
13
|
+
|
14
|
+
test 'should set MD5 url' do
|
15
|
+
assert_equal('ff90821feeb2b02a33a6f9fc8e5f3fcd', @summary.md5_url)
|
16
|
+
end
|
17
|
+
|
18
|
+
test 'should have title' do
|
19
|
+
assert_equal(successful_response_data.first['title'], @summary.title)
|
20
|
+
end
|
21
|
+
|
22
|
+
test 'should have total_posts' do
|
23
|
+
assert_equal(successful_response_data.first['total_posts'], @summary.total_posts)
|
24
|
+
end
|
25
|
+
|
26
|
+
test 'should have top_tags' do
|
27
|
+
assert_equal(successful_response_data.first['top_tags'], @summary.top_tags)
|
28
|
+
end
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: peteog-tagometer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pete O'Grady
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-12-30 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: httparty
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - "="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.2.4
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: echoe
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: "0"
|
32
|
+
version:
|
33
|
+
description: A simple wrapper for the Delicious tagometer
|
34
|
+
email: pete@peteogrady.com
|
35
|
+
executables: []
|
36
|
+
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- lib/tagometer/client.rb
|
41
|
+
- lib/tagometer/summary.rb
|
42
|
+
- lib/tagometer/version.rb
|
43
|
+
- lib/tagometer.rb
|
44
|
+
files:
|
45
|
+
- init.rb
|
46
|
+
- lib/tagometer/client.rb
|
47
|
+
- lib/tagometer/summary.rb
|
48
|
+
- lib/tagometer/version.rb
|
49
|
+
- lib/tagometer.rb
|
50
|
+
- Rakefile
|
51
|
+
- test/fixtures/google.yml
|
52
|
+
- test/test_helper.rb
|
53
|
+
- test/test_summary.rb
|
54
|
+
- test/test_tagometer.rb
|
55
|
+
- Manifest
|
56
|
+
- tagometer.gemspec
|
57
|
+
has_rdoc: true
|
58
|
+
homepage: ""
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options:
|
61
|
+
- --line-numbers
|
62
|
+
- --inline-source
|
63
|
+
- --title
|
64
|
+
- Tagometer
|
65
|
+
- --main
|
66
|
+
- README.md
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "1.2"
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project: tagometer
|
84
|
+
rubygems_version: 1.2.0
|
85
|
+
signing_key:
|
86
|
+
specification_version: 2
|
87
|
+
summary: A simple wrapper for the Delicious tagometer
|
88
|
+
test_files:
|
89
|
+
- test/test_helper.rb
|
90
|
+
- test/test_summary.rb
|
91
|
+
- test/test_tagometer.rb
|