bhauman-twroute 0.1.3 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -10,7 +10,7 @@ targeted web app is out of service for a bit.
10
10
  As a Rails developer the motivation to write this gem is because
11
11
  I wanted a super simple way to write a twitter app where my app
12
12
  can recieve messages from twitter over http and respond to the sender
13
- by simply responding to the http request. [Not implemented yet]
13
+ by simply responding to the http request.
14
14
 
15
15
  In other words an ordinary Rails/Merb/Sinatra controller can recieve
16
16
  a tweet and then reply to the sender by simply rendering a response.
@@ -140,7 +140,7 @@ First comment out all the tests except for the first one.
140
140
  We are going to only work on this one and then repeat the process for
141
141
  the other routes.
142
142
 
143
- Open the +config+/+twroutes.rb+ file in your editor of choice remove
143
+ Open the +config+/+twroutes+.+rb+ file in your editor of choice remove
144
144
  or comment the exiting routes. So it should read something like this:
145
145
 
146
146
  Twroute::Routes.draw do |map|
@@ -385,7 +385,7 @@ You can start and stop both the daemons using the +rake+ +twroute+:+start+ and
385
385
  === No output
386
386
 
387
387
  You can check that your Twitter stream request is functioning by
388
- temporarily making a catchall route at the end of you routes like so:
388
+ temporarily making a catchall route at the end of your routes like so:
389
389
 
390
390
  map.regex( { :match_all_tweets => /.*/ }, '/badshot/create' )
391
391
 
@@ -393,6 +393,15 @@ This will force all tweets from the stream to be sent to your app.
393
393
  This is very useful to verify that tweets are coming down and going
394
394
  through the system.
395
395
 
396
+ == Responses will be Tweeted!
397
+
398
+ When your web app responds with a 200 status and with the
399
+ +ContentType+ header set to +text+/+twitter+ Twroute will tweet the response.
400
+
401
+ It won't respond to the sender. It will simply tweet the response. So
402
+ if you want to respond you need to specify the @+user+ at the
403
+ beginning of the tweet.
404
+
396
405
  == Monit and God
397
406
 
398
407
  Don't forget to setup either Monit, God or some other server process
@@ -400,8 +409,6 @@ monitor because Twitter reserves the right to close the connection
400
409
  whenever they want. I would say that it's fairly safe to simply
401
410
  restart the daemons periodically as well.
402
411
 
403
-
404
-
405
412
  == License
406
413
 
407
414
  (The MIT License)
data/Rakefile CHANGED
@@ -15,13 +15,14 @@ begin
15
15
  gem.executables = ['twroute', 'twroute_runner', 'twroute_worker']
16
16
  gem.add_dependency('activerecord', '>= 2.1.0')
17
17
  gem.add_dependency('tobi-delayed_job', '>= 1.7.0')
18
- gem.add_dependency('brianmario-yajl-ruby', '>= 0.5.12')
18
+ gem.add_dependency('brianmario-yajl-ruby', '= 0.5.12')
19
19
  gem.add_dependency('daemons', '>= 1.0.10')
20
20
  gem.add_dependency('rubigen', '>= 1.5.2')
21
21
  gem.add_dependency('thoughtbot-shoulda', '>= 2.10.1')
22
22
  gem.add_dependency('mhennemeyer-matchy', '>= 0.3.3')
23
23
  gem.add_dependency('jeremymcanally-stump', '>= 0.0.2')
24
- gem.add_dependency('sqlite-ruby', '>= 2.2.3')
24
+ # gem.add_dependency('sqlite3-ruby', '>= 2.2.3')
25
+ gem.add_dependency('hayesdavis-grackle', '>= 0.1.4')
25
26
  end
26
27
 
27
28
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.7
@@ -11,11 +11,36 @@ require 'twroute'
11
11
 
12
12
  class Test::Unit::TestCase
13
13
  def self.should_route_to(tweet, path)
14
- should "route to #{path}" do
14
+ @@counter ||= 0
15
+ @@counter += 1
16
+ should "route to #{path}, #{@@counter}" do
15
17
  dispatcher = ::Twroute::Dispatcher.new({ :host => 'test_host.com'}, *::Twroute::Routes.routes)
16
18
  route = dispatcher.find_route({ :text => tweet})
17
19
  val = route ? route.path : nil
18
20
  val.should == path
19
21
  end
20
22
  end
23
+
24
+ def self.should_not_route_to(tweet, path)
25
+ @@counter ||= 0
26
+ @@counter += 1
27
+ should "not route to #{path}, #{@@counter}" do
28
+ dispatcher = ::Twroute::Dispatcher.new({ :host => 'test_host.com'}, *::Twroute::Routes.routes)
29
+ route = dispatcher.find_route({ :text => tweet})
30
+ val = route ? route.path : nil
31
+ val.should_not == path
32
+ end
33
+ end
34
+
35
+ def self.hash_key_should_have_value(tweet, key, value)
36
+ @@counter ||= 0
37
+ @@counter += 1
38
+ should "have value #{value} for key #{key}, #{@@counter}" do
39
+ dispatcher = ::Twroute::Dispatcher.new({ :host => 'test_host.com'}, *::Twroute::Routes.routes)
40
+ route = dispatcher.find_route({ :text => tweet})
41
+ post_args = route ? route.get_post_args : nil
42
+ val = post_args ? post_args['sender[' + key.to_s + ']'] : nil
43
+ val.should == value
44
+ end
45
+ end
21
46
  end
data/bin/twroute_runner CHANGED
@@ -5,7 +5,8 @@ require 'twroute'
5
5
  require 'twroute/application'
6
6
 
7
7
  Daemons.run_proc('twroute_runner.rb', :dir_mode => :normal, :dir => 'log') do
8
- ActiveRecord::Base.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/database.log'), 'a'))
8
+ ActiveRecord::Base.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/database.log'), 'a'))
9
+ Twroute::Application.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/twroute.log'), 'a'))
9
10
  Twroute::Application.run
10
11
  end
11
12
 
data/bin/twroute_worker CHANGED
@@ -5,7 +5,8 @@ require 'twroute'
5
5
  require 'twroute/application'
6
6
 
7
7
  Daemons.run_proc('twroute_worker.rb', :dir_mode => :normal, :dir => 'log') do
8
- ActiveRecord::Base.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/delayed.log'), 'a'))
8
+ ActiveRecord::Base.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/delayed.log'), 'a'))
9
+ Twroute::Application.logger = Logger.new(File.open(File.join(::Twroute::Application.root_dir, 'log/twroute.log'), 'a'))
9
10
  ::Delayed::Worker.new(:min_priority => ENV['MIN_PRIORITY'],
10
11
  :max_priority => ENV['MAX_PRIORITY']).start
11
12
  end
@@ -14,7 +14,19 @@ module Twroute
14
14
  end
15
15
  def self.root_dir=(root)
16
16
  @@root_dir = root
17
- end
17
+ end
18
+ def self.twitter_client
19
+ @@twitter_client
20
+ end
21
+ def self.twitter_client=(grackle_client)
22
+ @@twitter_client = grackle_client
23
+ end
24
+ def self.logger
25
+ @@logger
26
+ end
27
+ def self.logger=(logger)
28
+ @@logger = logger
29
+ end
18
30
  class Config
19
31
  def self.load_config(file)
20
32
  Application.config = self.open_struct(YAML.load_file(file))
@@ -1,3 +1,5 @@
1
+ require 'twroute/requester/delayed/db_connection'
2
+ require 'delayed_job'
1
3
  require 'twroute/requester/delayed'
2
4
 
3
5
  module Twroute
@@ -5,6 +5,12 @@ require File.join(Dir.pwd, 'config', 'twroutes.rb')
5
5
  require 'twroute/application/config'
6
6
  ::Twroute::Application::Config.load_config(File.join(Dir.pwd, 'config', 'config.yml'))
7
7
  ::Twroute::Application.root_dir = Dir.pwd
8
+ require 'grackle'
9
+ ::Twroute::Application.twitter_client = Grackle::Client.new(:auth => {
10
+ :type =>:basic,
11
+ :username => ::Twroute::Application.config.twitter.user,
12
+ :password => ::Twroute::Application.config.twitter.password
13
+ })
8
14
 
9
15
  # this pulls in delayed job and is dependant on the config having been read
10
16
  require 'twroute/application/twrouter'
@@ -1,7 +1,5 @@
1
- require 'twroute/requester/delayed/db_connection'
2
- require 'delayed_job'
3
-
4
1
  require 'net/http'
2
+
5
3
  module Twroute
6
4
  module Requester
7
5
 
@@ -14,7 +12,26 @@ module Twroute
14
12
  class DelayedRequest < Struct.new(:uri, :post_args)
15
13
  def perform
16
14
  response = Net::HTTP.post_form(uri, post_args)
17
- end
15
+ do_response(response)
16
+ response
17
+ end
18
+
19
+ def do_response(response)
20
+ if(is_twitter_response?(response))
21
+ tweet_it(response.body)
22
+ end
23
+ end
24
+
25
+ def tweet_it( tweet )
26
+ if tweet
27
+ ::Twroute::Application.twitter_client.statuses.update! :status => tweet[0,139]
28
+ end
29
+ end
30
+
31
+ def is_twitter_response?(response)
32
+ !!(response && response.is_a?(Net::HTTPOK) && response.header['content-type'].match( /text\/twitter/ ))
33
+ end
34
+
18
35
  end
19
36
 
20
37
  end
@@ -0,0 +1,67 @@
1
+ require 'test_helper.rb'
2
+ require 'twroute/requester/delayed'
3
+
4
+
5
+ class Net::HTTP
6
+ def self._testing_response_fixture=(x)
7
+ @@testing_response = YAML.load_file(File.join(File.dirname(__FILE__), 'fixtures', x + '.yaml'))
8
+ end
9
+
10
+ def self._testing_response_fixture
11
+ @@testing_response
12
+ end
13
+
14
+ def self.post_form(uri, post_args)
15
+ self._testing_response_fixture
16
+ end
17
+ end
18
+
19
+ class Twroute::Requester::DelayedRequest
20
+ attr_accessor :tweet
21
+ def tweet_it(tweet)
22
+ self.tweet = tweet
23
+ end
24
+ end
25
+
26
+ class DelayedRequestTest < Test::Unit::TestCase
27
+ context "with a url" do
28
+ setup do
29
+ @delayed = ::Twroute::Requester::DelayedRequest.new(URI.parse('http://localhost:3000/tweets.twitter'), { :some_arg => 'true' })
30
+ Net::HTTP._testing_response_fixture = 'twitter_response'
31
+ end
32
+
33
+ should "make a request" do
34
+ resp = @delayed.perform
35
+ resp.should_not be_nil
36
+ resp.body.should == 'good job josie'
37
+ resp.header['content-type'].match( /text\/twitter/ ).should_not be_nil
38
+ resp.header['content-type'].match( /text\/html/ ).should be_nil
39
+ @delayed.tweet.should == 'good job josie'
40
+ end
41
+
42
+ should "be able to tell if it is twitter response" do
43
+ resp = @delayed.perform
44
+ @delayed.is_twitter_response?(resp).should == true
45
+ Net::HTTP._testing_response_fixture = 'non_twitter_response'
46
+ resp = @delayed.perform
47
+ @delayed.is_twitter_response?(resp).should == false
48
+ end
49
+
50
+ should "not tweet if not a twitter response" do
51
+ Net::HTTP._testing_response_fixture = 'non_twitter_response'
52
+ @delayed.tweet.should be_nil
53
+ resp = @delayed.perform
54
+ @delayed.is_twitter_response?(resp).should == false
55
+ @delayed.tweet.should be_nil
56
+ end
57
+
58
+ should "not tweet if a twitter response has a bad status" do
59
+ Net::HTTP._testing_response_fixture = 'twitter_response_bad_status'
60
+ @delayed.tweet.should be_nil
61
+ resp = @delayed.perform
62
+ @delayed.is_twitter_response?(resp).should == false
63
+ @delayed.tweet.should be_nil
64
+ end
65
+
66
+ end
67
+ end
@@ -0,0 +1,27 @@
1
+ --- !ruby/object:Net::HTTPOK
2
+ body: <html></html>
3
+ body_exist: true
4
+ code: "200"
5
+ header:
6
+ cache-control:
7
+ - private, max-age=0, must-revalidate
8
+ connection:
9
+ - Keep-Alive
10
+ etag:
11
+ - "\"fa04cb9a5611a014eb15c2c6c5ca2ff0\""
12
+ content-type:
13
+ - text/html; charset=utf-8
14
+ date:
15
+ - Sun, 16 Aug 2009 19:20:20 GMT
16
+ x-runtime:
17
+ - "29"
18
+ server:
19
+ - WEBrick/1.3.1 (Ruby/1.8.6/2007-09-24)
20
+ set-cookie:
21
+ - _twroute_app_session=BAh7BzoPc2Vzc2lvbl9pZCIlNTNiNmVmNWRkYzc3MjI2YWI5MjkxYmMyZDkzOTEzMzIiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIiRUd2VldCB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuBjoKQHVzZWR7BjsHRg%3D%3D--e4b177a06966db7f3bbe061f3a5dd89bd43cd358; path=/; HttpOnly
22
+ content-length:
23
+ - "14"
24
+ http_version: "1.1"
25
+ message: "OK "
26
+ read: true
27
+ socket:
@@ -0,0 +1,27 @@
1
+ --- !ruby/object:Net::HTTPOK
2
+ body: good job josie
3
+ body_exist: true
4
+ code: "200"
5
+ header:
6
+ cache-control:
7
+ - private, max-age=0, must-revalidate
8
+ connection:
9
+ - Keep-Alive
10
+ etag:
11
+ - "\"fa04cb9a5611a014eb15c2c6c5ca2ff0\""
12
+ content-type:
13
+ - text/twitter; charset=utf-8
14
+ date:
15
+ - Sun, 16 Aug 2009 19:20:20 GMT
16
+ x-runtime:
17
+ - "29"
18
+ server:
19
+ - WEBrick/1.3.1 (Ruby/1.8.6/2007-09-24)
20
+ set-cookie:
21
+ - _twroute_app_session=BAh7BzoPc2Vzc2lvbl9pZCIlNTNiNmVmNWRkYzc3MjI2YWI5MjkxYmMyZDkzOTEzMzIiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIiRUd2VldCB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuBjoKQHVzZWR7BjsHRg%3D%3D--e4b177a06966db7f3bbe061f3a5dd89bd43cd358; path=/; HttpOnly
22
+ content-length:
23
+ - "14"
24
+ http_version: "1.1"
25
+ message: "OK "
26
+ read: true
27
+ socket:
@@ -0,0 +1,25 @@
1
+ !ruby/object:Net::HTTPClientError
2
+ body: good job josie
3
+ body_exist: true
4
+ code: "422"
5
+ header:
6
+ cache-control:
7
+ - no-cache
8
+ connection:
9
+ - Keep-Alive
10
+ content-type:
11
+ - text/twitter; charset=utf-8
12
+ date:
13
+ - Sun, 16 Aug 2009 20:20:57 GMT
14
+ x-runtime:
15
+ - "34"
16
+ server:
17
+ - WEBrick/1.3.1 (Ruby/1.8.6/2007-09-24)
18
+ set-cookie:
19
+ - _twroute_app_session=BAh7BzoPc2Vzc2lvbl9pZCIlYzAwY2Q5NDM1NDIzNGUyYWI0ZDRkZDNiOTg2ODM4NWYiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlIiRUd2VldCB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuBjoKQHVzZWR7BjsHRg%3D%3D--da5f07b30f227e21bd6131185c7962154b0cc091; path=/; HttpOnly
20
+ content-length:
21
+ - "14"
22
+ http_version: "1.1"
23
+ message: ""
24
+ read: true
25
+ socket:
data/twroute.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{twroute}
5
- s.version = "0.1.3"
5
+ s.version = "0.1.7"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["bhauman"]
9
- s.date = %q{2009-08-15}
9
+ s.date = %q{2009-08-25}
10
10
  s.description = %q{Twroute listens for Twitter updates and redirects them to HTTP post requests}
11
11
  s.email = %q{bhauman@gmail.com}
12
12
  s.executables = ["twroute", "twroute_runner", "twroute_worker"]
@@ -26,7 +26,6 @@ Gem::Specification.new do |s|
26
26
  "app_generators/twroute/templates/twroutes_test.rb",
27
27
  "app_generators/twroute/twroute_generator.rb",
28
28
  "bin/twroute",
29
- "bin/twroute_gen",
30
29
  "bin/twroute_runner",
31
30
  "bin/twroute_worker",
32
31
  "example_app/Rakefile",
@@ -53,8 +52,12 @@ Gem::Specification.new do |s|
53
52
  "lib/twroute/tweet_route.rb",
54
53
  "lib/twroute/tweeter.rb",
55
54
  "test/config_test.rb",
55
+ "test/delayed_request_test.rb",
56
56
  "test/dispatcher_test.rb",
57
57
  "test/fixtures/config.yml",
58
+ "test/fixtures/non_twitter_response.yaml",
59
+ "test/fixtures/twitter_response.yaml",
60
+ "test/fixtures/twitter_response_bad_status.yaml",
58
61
  "test/reqex_parser_test.rb",
59
62
  "test/routes_test.rb",
60
63
  "test/tags_parser_test.rb",
@@ -75,6 +78,7 @@ Gem::Specification.new do |s|
75
78
  s.summary = %q{Twroute listens for Twitter updates and redirects them to HTTP post requests}
76
79
  s.test_files = [
77
80
  "test/config_test.rb",
81
+ "test/delayed_request_test.rb",
78
82
  "test/dispatcher_test.rb",
79
83
  "test/reqex_parser_test.rb",
80
84
  "test/routes_test.rb",
@@ -95,33 +99,33 @@ Gem::Specification.new do |s|
95
99
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
96
100
  s.add_runtime_dependency(%q<activerecord>, [">= 2.1.0"])
97
101
  s.add_runtime_dependency(%q<tobi-delayed_job>, [">= 1.7.0"])
98
- s.add_runtime_dependency(%q<brianmario-yajl-ruby>, [">= 0.5.12"])
102
+ s.add_runtime_dependency(%q<brianmario-yajl-ruby>, ["= 0.5.12"])
99
103
  s.add_runtime_dependency(%q<daemons>, [">= 1.0.10"])
100
104
  s.add_runtime_dependency(%q<rubigen>, [">= 1.5.2"])
101
105
  s.add_runtime_dependency(%q<thoughtbot-shoulda>, [">= 2.10.1"])
102
106
  s.add_runtime_dependency(%q<mhennemeyer-matchy>, [">= 0.3.3"])
103
107
  s.add_runtime_dependency(%q<jeremymcanally-stump>, [">= 0.0.2"])
104
- s.add_runtime_dependency(%q<sqlite-ruby>, [">= 2.2.3"])
108
+ s.add_runtime_dependency(%q<hayesdavis-grackle>, [">= 0.1.4"])
105
109
  else
106
110
  s.add_dependency(%q<activerecord>, [">= 2.1.0"])
107
111
  s.add_dependency(%q<tobi-delayed_job>, [">= 1.7.0"])
108
- s.add_dependency(%q<brianmario-yajl-ruby>, [">= 0.5.12"])
112
+ s.add_dependency(%q<brianmario-yajl-ruby>, ["= 0.5.12"])
109
113
  s.add_dependency(%q<daemons>, [">= 1.0.10"])
110
114
  s.add_dependency(%q<rubigen>, [">= 1.5.2"])
111
115
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 2.10.1"])
112
116
  s.add_dependency(%q<mhennemeyer-matchy>, [">= 0.3.3"])
113
117
  s.add_dependency(%q<jeremymcanally-stump>, [">= 0.0.2"])
114
- s.add_dependency(%q<sqlite-ruby>, [">= 2.2.3"])
118
+ s.add_dependency(%q<hayesdavis-grackle>, [">= 0.1.4"])
115
119
  end
116
120
  else
117
121
  s.add_dependency(%q<activerecord>, [">= 2.1.0"])
118
122
  s.add_dependency(%q<tobi-delayed_job>, [">= 1.7.0"])
119
- s.add_dependency(%q<brianmario-yajl-ruby>, [">= 0.5.12"])
123
+ s.add_dependency(%q<brianmario-yajl-ruby>, ["= 0.5.12"])
120
124
  s.add_dependency(%q<daemons>, [">= 1.0.10"])
121
125
  s.add_dependency(%q<rubigen>, [">= 1.5.2"])
122
126
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 2.10.1"])
123
127
  s.add_dependency(%q<mhennemeyer-matchy>, [">= 0.3.3"])
124
128
  s.add_dependency(%q<jeremymcanally-stump>, [">= 0.0.2"])
125
- s.add_dependency(%q<sqlite-ruby>, [">= 2.2.3"])
129
+ s.add_dependency(%q<hayesdavis-grackle>, [">= 0.1.4"])
126
130
  end
127
131
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bhauman-twroute
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - bhauman
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-15 00:00:00 -07:00
12
+ date: 2009-08-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -38,7 +38,7 @@ dependencies:
38
38
  version_requirement:
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - "="
42
42
  - !ruby/object:Gem::Version
43
43
  version: 0.5.12
44
44
  version:
@@ -93,14 +93,14 @@ dependencies:
93
93
  version: 0.0.2
94
94
  version:
95
95
  - !ruby/object:Gem::Dependency
96
- name: sqlite-ruby
96
+ name: hayesdavis-grackle
97
97
  type: :runtime
98
98
  version_requirement:
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 2.2.3
103
+ version: 0.1.4
104
104
  version:
105
105
  description: Twroute listens for Twitter updates and redirects them to HTTP post requests
106
106
  email: bhauman@gmail.com
@@ -125,7 +125,6 @@ files:
125
125
  - app_generators/twroute/templates/twroutes_test.rb
126
126
  - app_generators/twroute/twroute_generator.rb
127
127
  - bin/twroute
128
- - bin/twroute_gen
129
128
  - bin/twroute_runner
130
129
  - bin/twroute_worker
131
130
  - example_app/Rakefile
@@ -152,8 +151,12 @@ files:
152
151
  - lib/twroute/tweet_route.rb
153
152
  - lib/twroute/tweeter.rb
154
153
  - test/config_test.rb
154
+ - test/delayed_request_test.rb
155
155
  - test/dispatcher_test.rb
156
156
  - test/fixtures/config.yml
157
+ - test/fixtures/non_twitter_response.yaml
158
+ - test/fixtures/twitter_response.yaml
159
+ - test/fixtures/twitter_response_bad_status.yaml
157
160
  - test/reqex_parser_test.rb
158
161
  - test/routes_test.rb
159
162
  - test/tags_parser_test.rb
@@ -194,6 +197,7 @@ specification_version: 2
194
197
  summary: Twroute listens for Twitter updates and redirects them to HTTP post requests
195
198
  test_files:
196
199
  - test/config_test.rb
200
+ - test/delayed_request_test.rb
197
201
  - test/dispatcher_test.rb
198
202
  - test/reqex_parser_test.rb
199
203
  - test/routes_test.rb
data/bin/twroute_gen DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/ruby
2
- require 'rubygems'
3
- require 'twroute/application/generator'
4
-
5
- ::Twroute::Application::Generator.new(['create']).command('create')
6
-