twuckoo 0.3.0 → 0.3.1
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/.gitignore +3 -1
- data/VERSION +1 -1
- data/bin/twuckoo +2 -19
- data/lib/modules/one_line_from_file.rb +1 -1
- data/lib/modules/wikipedia_tfa.rb +2 -0
- data/lib/twuckoo/runner.rb +65 -5
- data/spec/one_line_from_file_spec.rb +1 -2
- data/spec/twuckoo/runner_spec.rb +16 -1
- data/spec/wikipedia_tfa_spec.rb +1 -2
- data/twuckoo.gemspec +10 -2
- data/vendor/gems/ruby/1.8/cache/gemcutter-0.3.0.gem +0 -0
- data/vendor/gems/ruby/1.8/cache/git-1.2.5.gem +0 -0
- data/vendor/gems/ruby/1.8/cache/jeweler-1.4.0.gem +0 -0
- data/vendor/gems/ruby/1.8/cache/json_pure-1.2.0.gem +0 -0
- data/vendor/gems/ruby/1.8/cache/mail-1.5.3.gem +0 -0
- data/vendor/gems/ruby/1.8/cache/rubyforge-2.0.3.gem +0 -0
- metadata +10 -2
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/bin/twuckoo
CHANGED
@@ -1,25 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
dir = File.join(File.dirname(__FILE__), '..', 'lib')
|
4
|
-
|
5
4
|
require File.join(dir, 'twuckoo')
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
module_to_include = case ARGV.first.downcase
|
12
|
-
when "from_file"
|
13
|
-
OneLineFromFile
|
14
|
-
when "file"
|
15
|
-
OneLineFromFile
|
16
|
-
when "wikipedia_tfa"
|
17
|
-
WikipediaTFA
|
18
|
-
else
|
19
|
-
raise "No module to include was provided."
|
20
|
-
end
|
21
|
-
|
22
|
-
Twuckoo::Runner.send(:include, module_to_include)
|
23
|
-
@runner = Twuckoo::Runner.new
|
24
|
-
# @cuckoo.set_testing
|
6
|
+
@runner = Twuckoo::Runner.new(ARGV)
|
7
|
+
# @runner.set_testing
|
25
8
|
@runner.run
|
data/lib/twuckoo/runner.rb
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
+
require "optparse"
|
2
|
+
require "ostruct"
|
3
|
+
|
4
|
+
class TwuckooException < Exception
|
5
|
+
end
|
6
|
+
|
1
7
|
class Twuckoo::Runner
|
2
8
|
# the idea is to include a module with a well-defined API with three methods:
|
3
9
|
# - load_tweets
|
4
10
|
# - next
|
5
11
|
# - store(tweet)
|
12
|
+
attr_reader :used_module
|
6
13
|
|
7
14
|
def run
|
8
15
|
setup_from_file
|
@@ -16,10 +23,45 @@ class Twuckoo::Runner
|
|
16
23
|
end
|
17
24
|
end
|
18
25
|
|
19
|
-
def initialize
|
26
|
+
def initialize(args=[])
|
27
|
+
@options = OpenStruct.new
|
28
|
+
parse_options!(args)
|
29
|
+
|
30
|
+
_module = args.pop
|
31
|
+
use_module(get_module(_module))
|
20
32
|
super
|
21
33
|
end
|
22
34
|
|
35
|
+
def parse_options!(args)
|
36
|
+
opts = OptionParser.new do |opts|
|
37
|
+
opts.banner = "Usage: twuckoo [options] module_to_use"
|
38
|
+
opts.on("-n name", "--name name",
|
39
|
+
"name will be the name of this twuckoo instance (used for email notifs)") do |name|
|
40
|
+
@options.name = name
|
41
|
+
end
|
42
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
43
|
+
puts opts
|
44
|
+
exit
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
if args.length.zero?
|
49
|
+
puts opts.banner
|
50
|
+
exit
|
51
|
+
end
|
52
|
+
|
53
|
+
# opts.on_tail("--version", "Show version") do
|
54
|
+
# File.read(...)
|
55
|
+
# exit
|
56
|
+
# end
|
57
|
+
|
58
|
+
opts.parse!(args)
|
59
|
+
end
|
60
|
+
|
61
|
+
def name
|
62
|
+
@options.name || File.split(File.dirname(__FILE__)).last
|
63
|
+
end
|
64
|
+
|
23
65
|
def wait_between_tweets?
|
24
66
|
config[:time_to_sleep] != "0"
|
25
67
|
end
|
@@ -32,10 +74,6 @@ class Twuckoo::Runner
|
|
32
74
|
def notify
|
33
75
|
send_email(config)
|
34
76
|
end
|
35
|
-
|
36
|
-
def config
|
37
|
-
@config ||= ::Twuckoo::Config.new
|
38
|
-
end
|
39
77
|
|
40
78
|
def tweet(message)
|
41
79
|
unless message.nil? or message.empty?
|
@@ -45,6 +83,10 @@ class Twuckoo::Runner
|
|
45
83
|
message
|
46
84
|
end
|
47
85
|
|
86
|
+
def config
|
87
|
+
@config ||= ::Twuckoo::Config.new
|
88
|
+
end
|
89
|
+
|
48
90
|
def get_config_values_from_file(file='config/cuckoo.yml')
|
49
91
|
begin
|
50
92
|
open(file, 'r') do |f|
|
@@ -68,6 +110,24 @@ class Twuckoo::Runner
|
|
68
110
|
end
|
69
111
|
|
70
112
|
private
|
113
|
+
def get_module(module_id)
|
114
|
+
case module_id
|
115
|
+
when "file"
|
116
|
+
OneLineFromFile
|
117
|
+
when "from_file"
|
118
|
+
OneLineFromFile
|
119
|
+
when "wikipedia_tfa"
|
120
|
+
WikipediaTFA
|
121
|
+
else
|
122
|
+
raise TwuckooException, "Invalid module: #{module_id.inspect}"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def use_module(_module)
|
127
|
+
@used_module = _module
|
128
|
+
self.class.class_eval { include _module }
|
129
|
+
end
|
130
|
+
|
71
131
|
def send_tweet(message)
|
72
132
|
twitter.status(:post, message)
|
73
133
|
end
|
@@ -2,8 +2,7 @@ require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
2
2
|
|
3
3
|
describe "A cuckoo twitterer with one line from a file" do
|
4
4
|
before do
|
5
|
-
Twuckoo::Runner.
|
6
|
-
@twuckoo = Twuckoo::Runner.new
|
5
|
+
@twuckoo = Twuckoo::Runner.new(["file"])
|
7
6
|
# just so that no files will be written
|
8
7
|
@twuckoo.stubs(:store).returns(nil)
|
9
8
|
# and the actual text tweets are not tweeted (twittered?)
|
data/spec/twuckoo/runner_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
|
|
2
2
|
|
3
3
|
describe Twuckoo::Runner do
|
4
4
|
before do
|
5
|
-
@twuckoo = Twuckoo::Runner.new
|
5
|
+
@twuckoo = Twuckoo::Runner.new(["file"])
|
6
6
|
# actual text tweets should not be tweeted (twittered?)
|
7
7
|
@twuckoo.stubs(:send_tweet).returns(true)
|
8
8
|
end
|
@@ -36,6 +36,21 @@ describe Twuckoo::Runner do
|
|
36
36
|
@twuckoo.config[:time_to_sleep].should == "3m"
|
37
37
|
end
|
38
38
|
|
39
|
+
it "should receive the module to use as the last parameter" do
|
40
|
+
runner = Twuckoo::Runner.new(%w[file])
|
41
|
+
runner.used_module.should == OneLineFromFile
|
42
|
+
end
|
43
|
+
|
44
|
+
it "name can be given through the -n option" do
|
45
|
+
runner = Twuckoo::Runner.new(%w[-n pragthinklearn file])
|
46
|
+
runner.name.should == "pragthinklearn"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "if no is given, the directory name is used" do
|
50
|
+
runner = Twuckoo::Runner.new(%w[file])
|
51
|
+
runner.name.should == "twuckoo"
|
52
|
+
end
|
53
|
+
|
39
54
|
describe "loading values from the config file" do
|
40
55
|
it "sets the time interval to wait b/w tweets correctly" do
|
41
56
|
@twuckoo.expects(:get_config_values_from_file).returns({ :time_to_sleep => "3m" })
|
data/spec/wikipedia_tfa_spec.rb
CHANGED
@@ -2,8 +2,7 @@ require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
2
2
|
|
3
3
|
describe "A cuckoo twitterer for wikipedia featured article" do
|
4
4
|
before do
|
5
|
-
Twuckoo::Runner.
|
6
|
-
@twuckoo = Twuckoo::Runner.new
|
5
|
+
@twuckoo = Twuckoo::Runner.new(["wikipedia_tfa"])
|
7
6
|
@twuckoo.setup do |config|
|
8
7
|
config[:time_to_sleep] = "0"
|
9
8
|
end
|
data/twuckoo.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{twuckoo}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Balint Erdi"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-13}
|
13
13
|
s.description = %q{ A simple yet elegant solution to tweet a message regularly from a file (from a webpage, a database, etc.)
|
14
14
|
}
|
15
15
|
s.email = %q{balint.erdi@gmail.com}
|
@@ -26,7 +26,9 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"bin/edit_json.rb",
|
29
|
+
"bin/jeweler",
|
29
30
|
"bin/prettify_json.rb",
|
31
|
+
"bin/rubyforge",
|
30
32
|
"bin/t4rsh",
|
31
33
|
"bin/twuckoo",
|
32
34
|
"lib/duration_string.rb",
|
@@ -48,11 +50,17 @@ Gem::Specification.new do |s|
|
|
48
50
|
"twuckoo.gemspec",
|
49
51
|
"vendor/gems/environment.rb",
|
50
52
|
"vendor/gems/ruby/1.8/cache/activesupport-2.3.5.gem",
|
53
|
+
"vendor/gems/ruby/1.8/cache/gemcutter-0.3.0.gem",
|
54
|
+
"vendor/gems/ruby/1.8/cache/git-1.2.5.gem",
|
51
55
|
"vendor/gems/ruby/1.8/cache/hpricot-0.8.2.gem",
|
56
|
+
"vendor/gems/ruby/1.8/cache/jeweler-1.4.0.gem",
|
52
57
|
"vendor/gems/ruby/1.8/cache/json-1.2.0.gem",
|
58
|
+
"vendor/gems/ruby/1.8/cache/json_pure-1.2.0.gem",
|
53
59
|
"vendor/gems/ruby/1.8/cache/mail-1.5.2.gem",
|
60
|
+
"vendor/gems/ruby/1.8/cache/mail-1.5.3.gem",
|
54
61
|
"vendor/gems/ruby/1.8/cache/mbbx6spp-twitter4r-0.4.0.gem",
|
55
62
|
"vendor/gems/ruby/1.8/cache/mime-types-1.16.gem",
|
63
|
+
"vendor/gems/ruby/1.8/cache/rubyforge-2.0.3.gem",
|
56
64
|
"vendor/gems/ruby/1.8/cache/twibot-0.1.7.gem"
|
57
65
|
]
|
58
66
|
s.homepage = %q{http://github.com/balinterdi/twuckoo}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twuckoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Balint Erdi
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-13 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -35,7 +35,9 @@ files:
|
|
35
35
|
- Rakefile
|
36
36
|
- VERSION
|
37
37
|
- bin/edit_json.rb
|
38
|
+
- bin/jeweler
|
38
39
|
- bin/prettify_json.rb
|
40
|
+
- bin/rubyforge
|
39
41
|
- bin/t4rsh
|
40
42
|
- bin/twuckoo
|
41
43
|
- lib/duration_string.rb
|
@@ -57,11 +59,17 @@ files:
|
|
57
59
|
- twuckoo.gemspec
|
58
60
|
- vendor/gems/environment.rb
|
59
61
|
- vendor/gems/ruby/1.8/cache/activesupport-2.3.5.gem
|
62
|
+
- vendor/gems/ruby/1.8/cache/gemcutter-0.3.0.gem
|
63
|
+
- vendor/gems/ruby/1.8/cache/git-1.2.5.gem
|
60
64
|
- vendor/gems/ruby/1.8/cache/hpricot-0.8.2.gem
|
65
|
+
- vendor/gems/ruby/1.8/cache/jeweler-1.4.0.gem
|
61
66
|
- vendor/gems/ruby/1.8/cache/json-1.2.0.gem
|
67
|
+
- vendor/gems/ruby/1.8/cache/json_pure-1.2.0.gem
|
62
68
|
- vendor/gems/ruby/1.8/cache/mail-1.5.2.gem
|
69
|
+
- vendor/gems/ruby/1.8/cache/mail-1.5.3.gem
|
63
70
|
- vendor/gems/ruby/1.8/cache/mbbx6spp-twitter4r-0.4.0.gem
|
64
71
|
- vendor/gems/ruby/1.8/cache/mime-types-1.16.gem
|
72
|
+
- vendor/gems/ruby/1.8/cache/rubyforge-2.0.3.gem
|
65
73
|
- vendor/gems/ruby/1.8/cache/twibot-0.1.7.gem
|
66
74
|
has_rdoc: true
|
67
75
|
homepage: http://github.com/balinterdi/twuckoo
|