stars 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -0
- data/Gemfile.lock +26 -0
- data/README.markdown +48 -62
- data/Rakefile +130 -35
- data/bin/stars +1 -3
- data/lib/stars/client.rb +79 -62
- data/lib/stars/config.rb +41 -0
- data/lib/stars/core_ext/string.rb +6 -0
- data/lib/stars/post.rb +57 -0
- data/lib/stars/services/convore.rb +40 -0
- data/lib/stars/services/favstar.rb +79 -0
- data/lib/stars/services/service.rb +32 -0
- data/lib/stars.rb +37 -6
- data/stars.gemspec +85 -65
- data/test/examples/stars.yml +1 -0
- data/test/helper.rb +10 -27
- data/test/test_client.rb +18 -35
- data/test/test_config.rb +29 -0
- data/test/test_favstar.rb +19 -7
- data/test/test_post.rb +30 -0
- metadata +57 -22
- data/.document +0 -5
- data/.gitignore +0 -21
- data/VERSION +0 -1
- data/lib/stars/favstar.rb +0 -33
- data/lib/stars/formatter.rb +0 -70
- data/test/test_formatter.rb +0 -66
- data/test/test_stars.rb +0 -9
@@ -0,0 +1,79 @@
|
|
1
|
+
#{"title"=>"6 stars: Why can't we hardware-accelerate animated gifs? I thought this was the future.", "pubDate"=>"Wed, 16 Feb 2011 05:56:32 +0000", "guid"=>"http://favstar.fm/users/holman/status/37752168152825856?6", "description"=>"Has been faved by 6 people<br /><br /><a href=\"http://favstar.fm/users/holman/status/37752168152825856\">This tweet</a> <a href=\"http://favstar.fm/users/holman/recent\">All Recent</a>", "link"=>"http://favstar.fm/users/holman/status/37752168152825856"}
|
2
|
+
|
3
|
+
module Stars
|
4
|
+
class Favstar < Service
|
5
|
+
|
6
|
+
base_uri 'favstar.fm'
|
7
|
+
|
8
|
+
attr_reader :posts
|
9
|
+
|
10
|
+
def name
|
11
|
+
"favstar"
|
12
|
+
end
|
13
|
+
|
14
|
+
def posts
|
15
|
+
parse_xml
|
16
|
+
@posts
|
17
|
+
end
|
18
|
+
|
19
|
+
def xml_feed
|
20
|
+
self.class.get("/users/#{username}/rss",
|
21
|
+
:format => :xml)['rss']['channel']['item']
|
22
|
+
end
|
23
|
+
|
24
|
+
def parse_xml
|
25
|
+
@posts = []
|
26
|
+
|
27
|
+
xml_feed.each do |xml|
|
28
|
+
@posts << parse_post(xml)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def parse_post(xml)
|
33
|
+
title = xml["title"]
|
34
|
+
Post.new(:name => parse_title(title),
|
35
|
+
:url => xml["guid"],
|
36
|
+
:service => name,
|
37
|
+
:date => DateTime.parse(xml["pubDate"]),
|
38
|
+
:stars_count => parse_stars(title))
|
39
|
+
end
|
40
|
+
|
41
|
+
# Parse the title from a Favstar RSS title.
|
42
|
+
#
|
43
|
+
# title - a Favstar-formatted String (x stars: title here)
|
44
|
+
#
|
45
|
+
# This splits on the first colon, and then use everything after that. To
|
46
|
+
# account for tweets with colons in them, we have to strip the first ": "
|
47
|
+
# String we find, and then shift the String back two characters.
|
48
|
+
def parse_title(title)
|
49
|
+
strip = title.split(':').first
|
50
|
+
title = title.gsub(strip,'')
|
51
|
+
title = title[2..-1] if title[0..1] == ": "
|
52
|
+
title
|
53
|
+
end
|
54
|
+
|
55
|
+
def parse_stars(title)
|
56
|
+
title.match(/[\d]+/)[0].to_i
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.more(post)
|
60
|
+
# hardcode 17 to strip favstar domain for now
|
61
|
+
html = get(post.url[17..200], :format => :html)
|
62
|
+
|
63
|
+
output = ''
|
64
|
+
|
65
|
+
Nokogiri::HTML(html).css('div[id^="faved_by_others"] img').collect do |img|
|
66
|
+
output << " ★ #{img.attributes['alt'].value}\n"
|
67
|
+
end
|
68
|
+
|
69
|
+
Nokogiri::HTML(html).css('div[id^="rt_by_others"] img').collect do |img|
|
70
|
+
output << " RT #{img.attributes['alt'].value}\n"
|
71
|
+
end
|
72
|
+
|
73
|
+
output << "\n"
|
74
|
+
output << "More info at:\n"
|
75
|
+
output << " #{post.url}\n\n"
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Stars
|
2
|
+
class Service
|
3
|
+
# Each Service is a party.
|
4
|
+
include HTTParty
|
5
|
+
|
6
|
+
# Returns a String name of the Service.
|
7
|
+
#
|
8
|
+
# We'll display this across Stars to identify this service.
|
9
|
+
def name ; end
|
10
|
+
|
11
|
+
def username
|
12
|
+
Stars.config.username(name)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns an Array of Posts.
|
16
|
+
#
|
17
|
+
# This method — to be overriden by individual Service classes — returns an
|
18
|
+
# Array of Post items. Items in each Post should be associated with
|
19
|
+
# individual Star objects, so we can quickly iterate over a Post's Stars.
|
20
|
+
def posts ; end
|
21
|
+
|
22
|
+
def self.more(post) ; end
|
23
|
+
|
24
|
+
# Initializes a instance and returns the Posts.
|
25
|
+
#
|
26
|
+
# Creates a new instance of the Service and returns an Array of Post
|
27
|
+
# objects.
|
28
|
+
def self.posts
|
29
|
+
self.new.posts
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/stars.rb
CHANGED
@@ -1,8 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/stars')
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
2
|
|
3
|
+
require 'date'
|
4
|
+
require 'fileutils'
|
5
5
|
require 'httparty'
|
6
|
-
require '
|
7
|
-
require '
|
8
|
-
require '
|
6
|
+
require 'keep'
|
7
|
+
require 'nokogiri'
|
8
|
+
require 'open-uri'
|
9
|
+
require 'terminal-table/import'
|
10
|
+
|
11
|
+
require 'stars/client'
|
12
|
+
require 'stars/config'
|
13
|
+
require 'stars/post'
|
14
|
+
|
15
|
+
require 'stars/core_ext/string'
|
16
|
+
|
17
|
+
require 'stars/services/service'
|
18
|
+
require 'stars/services/convore'
|
19
|
+
require 'stars/services/favstar'
|
20
|
+
|
21
|
+
module Stars
|
22
|
+
VERSION = '0.5.0'
|
23
|
+
|
24
|
+
def self.config
|
25
|
+
@config ||= Config.new
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.services
|
29
|
+
%w(favstar convore)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.installed_services
|
33
|
+
config.keep.keys
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.uninstalled_services
|
37
|
+
services - installed_services
|
38
|
+
end
|
39
|
+
end
|
data/stars.gemspec
CHANGED
@@ -1,72 +1,92 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
## This is the rakegem gemspec template. Make sure you read and understand
|
2
|
+
## all of the comments. Some sections require modification, and others can
|
3
|
+
## be deleted if you don't need them. Once you understand the contents of
|
4
|
+
## this file, feel free to delete any comments that begin with two hash marks.
|
5
|
+
## You can find comprehensive Gem::Specification documentation, at
|
6
|
+
## http://docs.rubygems.org/read/chapter/20
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.
|
8
|
-
s.version = "0.4.0"
|
9
|
-
|
8
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
10
9
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
s.rubygems_version = '1.3.5'
|
11
|
+
|
12
|
+
## Leave these as is they will be modified for you by the rake gemspec task.
|
13
|
+
## If your rubyforge_project name is different, then edit it and comment out
|
14
|
+
## the sub! line in the Rakefile
|
15
|
+
s.name = 'stars'
|
16
|
+
s.version = '0.5.0'
|
17
|
+
s.date = '2011-04-18'
|
18
|
+
s.rubyforge_project = 'stars'
|
19
|
+
|
20
|
+
## Make sure your summary is short. The description may be as long
|
21
|
+
## as you like.
|
22
|
+
s.summary = "Recent stars on your command line."
|
23
|
+
s.description = "Twitter stars, Convore stars. On the command line."
|
24
|
+
|
25
|
+
## List the primary authors. If there are a bunch of authors, it's probably
|
26
|
+
## better to set the email to an email list or something. If you don't have
|
27
|
+
## a custom homepage, consider using your GitHub URL or the like.
|
28
|
+
s.authors = ["Zach Holman"]
|
29
|
+
s.email = 'github.com@zachholman.com'
|
30
|
+
s.homepage = 'https://github.com/holman/stars'
|
31
|
+
|
32
|
+
## This gets added to the $LOAD_PATH so that 'lib/NAME.rb' can be required as
|
33
|
+
## require 'NAME.rb' or'/lib/NAME/file.rb' can be as require 'NAME/file.rb'
|
34
|
+
s.require_paths = %w[lib]
|
35
|
+
|
36
|
+
## This sections is only necessary if you have C extensions.
|
37
|
+
#s.require_paths << 'ext'
|
38
|
+
#s.extensions = %w[ext/extconf.rb]
|
39
|
+
|
40
|
+
## If your gem includes any executables, list them here.
|
16
41
|
s.executables = ["stars"]
|
17
|
-
s.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
".gitignore",
|
24
|
-
"LICENSE",
|
25
|
-
"README.markdown",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"bin/stars",
|
29
|
-
"lib/stars.rb",
|
30
|
-
"lib/stars/client.rb",
|
31
|
-
"lib/stars/favstar.rb",
|
32
|
-
"lib/stars/formatter.rb",
|
33
|
-
"stars.gemspec",
|
34
|
-
"test/helper.rb",
|
35
|
-
"test/test_client.rb",
|
36
|
-
"test/test_favstar.rb",
|
37
|
-
"test/test_formatter.rb",
|
38
|
-
"test/test_stars.rb"
|
39
|
-
]
|
40
|
-
s.homepage = %q{http://github.com/holman/stars}
|
42
|
+
s.default_executable = 'stars'
|
43
|
+
|
44
|
+
## Specify any RDoc options here. You'll want to add your README and
|
45
|
+
## LICENSE files to the extra_rdoc_files list.
|
41
46
|
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
-
s.
|
43
|
-
s.rubygems_version = %q{1.3.7}
|
44
|
-
s.summary = %q{Recent favstar faves on your command line}
|
45
|
-
s.test_files = [
|
46
|
-
"test/helper.rb",
|
47
|
-
"test/test_client.rb",
|
48
|
-
"test/test_favstar.rb",
|
49
|
-
"test/test_formatter.rb",
|
50
|
-
"test/test_stars.rb"
|
51
|
-
]
|
47
|
+
s.extra_rdoc_files = %w[README.markdown LICENSE]
|
52
48
|
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
## List your runtime dependencies here. Runtime dependencies are those
|
50
|
+
## that are needed for an end user to actually USE your code.
|
51
|
+
s.add_dependency('httparty', [">= 0"])
|
52
|
+
s.add_dependency('terminal-table', [">= 0"])
|
53
|
+
s.add_dependency('nokogiri', [">= 0"])
|
54
|
+
s.add_dependency('keep', ["~> 0.0.3"])
|
56
55
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
56
|
+
## List your development dependencies here. Development dependencies are
|
57
|
+
## those that are only needed during development
|
58
|
+
s.add_development_dependency('mocha', "~> 0.9.9")
|
59
|
+
|
60
|
+
## Leave this section as-is. It will be automatically generated from the
|
61
|
+
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
62
|
+
## THE MANIFEST COMMENTS, they are used as delimiters by the task.
|
63
|
+
# = MANIFEST =
|
64
|
+
s.files = %w[
|
65
|
+
Gemfile
|
66
|
+
Gemfile.lock
|
67
|
+
LICENSE
|
68
|
+
README.markdown
|
69
|
+
Rakefile
|
70
|
+
bin/stars
|
71
|
+
lib/stars.rb
|
72
|
+
lib/stars/client.rb
|
73
|
+
lib/stars/config.rb
|
74
|
+
lib/stars/core_ext/string.rb
|
75
|
+
lib/stars/post.rb
|
76
|
+
lib/stars/services/convore.rb
|
77
|
+
lib/stars/services/favstar.rb
|
78
|
+
lib/stars/services/service.rb
|
79
|
+
stars.gemspec
|
80
|
+
test/examples/stars.yml
|
81
|
+
test/helper.rb
|
82
|
+
test/test_client.rb
|
83
|
+
test/test_config.rb
|
84
|
+
test/test_favstar.rb
|
85
|
+
test/test_post.rb
|
86
|
+
]
|
87
|
+
# = MANIFEST =
|
72
88
|
|
89
|
+
## Test files will be grabbed from the file list. Make sure the path glob
|
90
|
+
## matches what you actually use.
|
91
|
+
s.test_files = s.files.select { |path| path =~ /^test\/test_.*\.rb/ }
|
92
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
favstar: holman
|
data/test/helper.rb
CHANGED
@@ -1,39 +1,22 @@
|
|
1
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
|
2
3
|
require 'test/unit'
|
3
|
-
require 'rr'
|
4
4
|
|
5
5
|
begin
|
6
|
+
require 'rubygems'
|
6
7
|
require 'redgreen'
|
8
|
+
require 'leftright'
|
7
9
|
rescue LoadError
|
8
10
|
end
|
9
11
|
|
12
|
+
require 'mocha'
|
13
|
+
|
10
14
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
15
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
16
|
+
|
12
17
|
require 'stars'
|
13
18
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
def favstar_tweet_hash
|
19
|
-
[
|
20
|
-
{
|
21
|
-
"title"=>"2 stars: I pre-ordered an iPad, checked into lunch, and now you want me to follow someone just because it's Friday? I CAN'T KEEP UP WITH YOU GUYS",
|
22
|
-
"pubDate"=>"Fri, 12 Mar 2010 20:43:40 +0000",
|
23
|
-
"guid"=>"http://favstar.fm/users/holman/status/10389110831?2",
|
24
|
-
"description"=>"Has been faved by 2 people<br /><br /><a href=\"http://favstar.fm/users/holman/status/10389110831\">This tweet</a>
|
25
|
-
<a href=\"http://favstar.fm/users/holman/recent\">All Recent</a>",
|
26
|
-
"link"=>"http://favstar.fm/users/holman/status/10389110831"
|
27
|
-
},
|
28
|
-
{
|
29
|
-
"title"=>"1 star: In another life I want to be a pop star heartthrob who also codes Perl in his free time. That'll confuse those impressionable teen fangirls.",
|
30
|
-
"pubDate"=>"Fri, 12 Mar 2010 20:13:46 +0000",
|
31
|
-
"guid"=>"http://favstar.fm/users/holman/status/10387998839?1",
|
32
|
-
"description"=>"Has been faved by 1 person<br /><br /><a href=\"http://favstar.fm/users/holman/status/10387998839\">This tweet</a>
|
33
|
-
<a href=\"http://favstar.fm/users/holman/recent\">All Recent</a>",
|
34
|
-
"link"=>"http://favstar.fm/users/holman/status/10387998839"
|
35
|
-
}
|
36
|
-
]
|
37
|
-
end
|
38
|
-
|
19
|
+
def global_setup
|
20
|
+
Stars::Config.any_instance.stubs(:config_path).
|
21
|
+
returns("test/examples/stars.yml")
|
39
22
|
end
|
data/test/test_client.rb
CHANGED
@@ -1,43 +1,26 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
+
module Kernel
|
4
|
+
def system(s) ; end
|
5
|
+
def puts(s) ; end
|
6
|
+
end
|
7
|
+
|
3
8
|
class TestClient < Test::Unit::TestCase
|
4
9
|
|
5
|
-
def
|
6
|
-
|
7
|
-
mock(Stars::Formatter).new.times(any_times).with_any_args
|
8
|
-
mock(Stars::Client).puts.times(any_times).with_any_args
|
9
|
-
mock(Stars::Client).print.times(any_times).with_any_args
|
10
|
-
mock(Stars::Client).input.times(any_times).with_any_args.returns('q')
|
11
|
-
Stars::Client.load!('holman')
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_load_without_username
|
15
|
-
mock(Stars::Client).system.with('clear').returns('')
|
16
|
-
mock(Stars::Formatter).new.times(any_times).with_any_args
|
17
|
-
mock(Stars::Client).puts.times(any_times).with_any_args
|
18
|
-
mock(Stars::Client).print.times(any_times).with_any_args
|
19
|
-
mock(Stars::Client).input.times(any_times).with_any_args.returns('q')
|
20
|
-
Stars::Client.load!(nil)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_username_when_exists
|
24
|
-
mock(File).exists?.with_any_args.returns(true)
|
25
|
-
mock(File).read.with_any_args
|
26
|
-
Stars::Client.username
|
10
|
+
def setup
|
11
|
+
global_setup
|
27
12
|
end
|
28
|
-
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
Stars::Client.
|
33
|
-
|
34
|
-
|
35
|
-
def test_write_home_config
|
36
|
-
assert_equal Stars::Client.remember_username('holman'), 'holman'
|
13
|
+
|
14
|
+
def test_add_service
|
15
|
+
Stars.config.expects(:prompt_for_username).with('favstar').once
|
16
|
+
Stars::Client.any_instance.stubs(:display)
|
17
|
+
Stars::Client.any_instance.stubs(:star_loop)
|
18
|
+
Stars::Client.new(%w(add favstar))
|
37
19
|
end
|
38
|
-
|
39
|
-
def
|
40
|
-
|
20
|
+
|
21
|
+
def test_show_only_one_service
|
22
|
+
Stars::Favstar.expects(:posts).returns([])
|
23
|
+
Stars::Client.any_instance.stubs(:star_loop)
|
24
|
+
Stars::Client.new(['favstar'])
|
41
25
|
end
|
42
|
-
|
43
26
|
end
|
data/test/test_config.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestConfig < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
global_setup
|
7
|
+
@config = Stars::Config.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_yaml_load
|
11
|
+
assert_equal 'holman', @config.username('favstar')
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_prompt_for_username_existing_service
|
15
|
+
@config.keep.stubs(:present?).returns(true)
|
16
|
+
Keep.any_instance.expects(:get)
|
17
|
+
@config.prompt_for_username("favstar")
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_add_username_to_nonexistent_service
|
21
|
+
Stars::Config.any_instance.expects(:exit)
|
22
|
+
@config.prompt_for_username("trololol")
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_config_path
|
26
|
+
assert @config.config_path.kind_of?(String)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/test/test_favstar.rb
CHANGED
@@ -3,14 +3,26 @@ require 'helper'
|
|
3
3
|
class TestFavstar < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
|
+
global_setup
|
6
7
|
@favstar = Stars::Favstar.new
|
7
8
|
end
|
8
|
-
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
|
10
|
+
def test_parse_title
|
11
|
+
title = "6 stars: Zach Holman is attractive and handsome."
|
12
|
+
parsed_title = @favstar.parse_title(title)
|
13
|
+
assert_equal "Zach Holman is attractive and handsome.", parsed_title
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_parse_title_with_colons
|
17
|
+
title = "6 stars: Zach Holman is: attractive and handsome."
|
18
|
+
parsed_title = @favstar.parse_title(title)
|
19
|
+
assert_equal "Zach Holman is: attractive and handsome.", parsed_title
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_parse_stars
|
23
|
+
title = "6 stars: Zach Holman is attractive and handsome."
|
24
|
+
parsed_stars = @favstar.parse_stars(title)
|
25
|
+
assert_equal 6, parsed_stars
|
14
26
|
end
|
15
27
|
|
16
|
-
end
|
28
|
+
end
|
data/test/test_post.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestPost < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
global_setup
|
7
|
+
@post = Stars::Post.new(:name => 'post')
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_short_name
|
11
|
+
s = ""
|
12
|
+
36.times { s << "x" }
|
13
|
+
@post.name = s
|
14
|
+
assert_equal true, @post.short_name.include?('...')
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_full_short_name
|
18
|
+
s = ""
|
19
|
+
10.times { s << "x" }
|
20
|
+
@post.name = s
|
21
|
+
assert_equal false, @post.short_name.include?('...')
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_moar
|
25
|
+
@post.stubs(:service).returns("Favstar")
|
26
|
+
Stars::Favstar.expects(:more).returns("favstar more")
|
27
|
+
assert_equal "favstar more", @post.more
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stars
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 11
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 5
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Zach Holman
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-04-18 00:00:00 -07:00
|
19
19
|
default_executable: stars
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -60,35 +60,71 @@ dependencies:
|
|
60
60
|
version: "0"
|
61
61
|
type: :runtime
|
62
62
|
version_requirements: *id003
|
63
|
-
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: keep
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ~>
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 25
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
- 0
|
75
|
+
- 3
|
76
|
+
version: 0.0.3
|
77
|
+
type: :runtime
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: mocha
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 41
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
- 9
|
91
|
+
- 9
|
92
|
+
version: 0.9.9
|
93
|
+
type: :development
|
94
|
+
version_requirements: *id005
|
95
|
+
description: Twitter stars, Convore stars. On the command line.
|
64
96
|
email: github.com@zachholman.com
|
65
97
|
executables:
|
66
98
|
- stars
|
67
99
|
extensions: []
|
68
100
|
|
69
101
|
extra_rdoc_files:
|
70
|
-
- LICENSE
|
71
102
|
- README.markdown
|
103
|
+
- LICENSE
|
72
104
|
files:
|
73
|
-
-
|
74
|
-
- .
|
105
|
+
- Gemfile
|
106
|
+
- Gemfile.lock
|
75
107
|
- LICENSE
|
76
108
|
- README.markdown
|
77
109
|
- Rakefile
|
78
|
-
- VERSION
|
79
110
|
- bin/stars
|
80
111
|
- lib/stars.rb
|
81
112
|
- lib/stars/client.rb
|
82
|
-
- lib/stars/
|
83
|
-
- lib/stars/
|
113
|
+
- lib/stars/config.rb
|
114
|
+
- lib/stars/core_ext/string.rb
|
115
|
+
- lib/stars/post.rb
|
116
|
+
- lib/stars/services/convore.rb
|
117
|
+
- lib/stars/services/favstar.rb
|
118
|
+
- lib/stars/services/service.rb
|
84
119
|
- stars.gemspec
|
120
|
+
- test/examples/stars.yml
|
85
121
|
- test/helper.rb
|
86
122
|
- test/test_client.rb
|
123
|
+
- test/test_config.rb
|
87
124
|
- test/test_favstar.rb
|
88
|
-
- test/
|
89
|
-
- test/test_stars.rb
|
125
|
+
- test/test_post.rb
|
90
126
|
has_rdoc: true
|
91
|
-
homepage:
|
127
|
+
homepage: https://github.com/holman/stars
|
92
128
|
licenses: []
|
93
129
|
|
94
130
|
post_install_message:
|
@@ -116,14 +152,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
152
|
version: "0"
|
117
153
|
requirements: []
|
118
154
|
|
119
|
-
rubyforge_project:
|
120
|
-
rubygems_version: 1.
|
155
|
+
rubyforge_project: stars
|
156
|
+
rubygems_version: 1.6.2
|
121
157
|
signing_key:
|
122
|
-
specification_version:
|
123
|
-
summary: Recent
|
158
|
+
specification_version: 2
|
159
|
+
summary: Recent stars on your command line.
|
124
160
|
test_files:
|
125
|
-
- test/helper.rb
|
126
161
|
- test/test_client.rb
|
162
|
+
- test/test_config.rb
|
127
163
|
- test/test_favstar.rb
|
128
|
-
- test/
|
129
|
-
- test/test_stars.rb
|
164
|
+
- test/test_post.rb
|