governor_twitter 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -9,7 +9,7 @@ source "http://rubygems.org"
9
9
  gem 'twitter', '>= 1.1'
10
10
  gem 'shortie'
11
11
  gem 'governor', '>= 0.5.3'
12
- gem 'governor_background', '~> 0.2.2'
12
+ gem 'governor_background', '>= 0.3.0'
13
13
 
14
14
  group :development, :test do
15
15
  gem 'jeweler', '~> 1.5.2'
@@ -24,5 +24,6 @@ group :development, :test do
24
24
  gem 'devise'
25
25
  gem 'governor_twitter', :path => './'
26
26
  gem 'delayed_job'
27
+ gem 'resque'
27
28
  gem 'dynamic_form'
28
29
  end
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ./
3
3
  specs:
4
- governor_twitter (0.1.0)
4
+ governor_twitter (0.1.1)
5
5
  governor (>= 0.5.3)
6
- governor_background (~> 0.2.2)
6
+ governor_background (>= 0.3.0)
7
7
  shortie
8
8
  twitter (>= 1.1)
9
9
 
@@ -66,9 +66,9 @@ GEM
66
66
  faraday_middleware (0.6.3)
67
67
  faraday (~> 0.6.0)
68
68
  git (1.2.5)
69
- governor (0.5.3)
70
- rails (~> 3.0.5)
71
- governor_background (0.2.2)
69
+ governor (0.5.4)
70
+ rails (>= 3.0.5)
71
+ governor_background (0.3.0)
72
72
  governor
73
73
  hashie (1.0.0)
74
74
  i18n (0.5.0)
@@ -76,6 +76,7 @@ GEM
76
76
  bundler (~> 1.0.0)
77
77
  git (>= 1.2.5)
78
78
  rake
79
+ json (1.4.6)
79
80
  mail (2.2.19)
80
81
  activesupport (>= 2.3.6)
81
82
  i18n (>= 0.4.0)
@@ -109,6 +110,14 @@ GEM
109
110
  rake (0.8.7)
110
111
  rash (0.3.0)
111
112
  hashie (~> 1.0.0)
113
+ redis (2.2.0)
114
+ redis-namespace (0.10.0)
115
+ redis (< 3.0.0)
116
+ resque (1.15.0)
117
+ json (~> 1.4.6)
118
+ redis-namespace (>= 0.10.0)
119
+ sinatra (>= 0.9.2)
120
+ vegas (~> 0.1.2)
112
121
  rspec (2.5.0)
113
122
  rspec-core (~> 2.5.0)
114
123
  rspec-expectations (~> 2.5.0)
@@ -126,8 +135,12 @@ GEM
126
135
  simplehttp (>= 0.1.3)
127
136
  simple_oauth (0.1.5)
128
137
  simplehttp (0.1.3)
138
+ sinatra (1.2.3)
139
+ rack (~> 1.1)
140
+ tilt (>= 1.2.2, < 2.0)
129
141
  sqlite3 (1.3.3)
130
142
  thor (0.14.6)
143
+ tilt (1.3)
131
144
  treetop (1.4.9)
132
145
  polyglot (>= 0.3.1)
133
146
  twitter (1.4.1)
@@ -139,6 +152,8 @@ GEM
139
152
  rash (~> 0.3.0)
140
153
  simple_oauth (~> 0.1.4)
141
154
  tzinfo (0.3.27)
155
+ vegas (0.1.8)
156
+ rack (>= 1.0.0)
142
157
  warden (1.0.4)
143
158
  rack (>= 1.0)
144
159
  will_paginate (3.0.pre2)
@@ -154,10 +169,11 @@ DEPENDENCIES
154
169
  factory_girl (~> 2.0.0.beta)
155
170
  factory_girl_rails (~> 1.1.beta)
156
171
  governor (>= 0.5.3)
157
- governor_background (~> 0.2.2)
172
+ governor_background (>= 0.3.0)
158
173
  governor_twitter!
159
174
  jeweler (~> 1.5.2)
160
175
  mocha
176
+ resque
161
177
  rspec-rails
162
178
  shortie
163
179
  sqlite3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,5 @@
1
+ en:
2
+ governor_background:
3
+ twitter_post_completed: 'Your article was successfully posted to Twitter.'
4
+ twitter_post_failed: 'Unable to tweet your article: %{message}.'
5
+ twitter_post_killed: 'Your tweet was interrupted: %{message}.'
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{governor_twitter}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Liam Morley"]
12
- s.date = %q{2011-05-13}
12
+ s.date = %q{2011-05-15}
13
13
  s.description = %q{A plugin for the Rails 3-based Governor blogging system that posts your blog entries to Twitter for you.}
14
14
  s.email = %q{liam@carpeliam.com}
15
15
  s.extra_rdoc_files = [
@@ -26,13 +26,12 @@ Gem::Specification.new do |s|
26
26
  "Rakefile",
27
27
  "VERSION",
28
28
  "app/views/governor/articles/_twitter_form.html.erb",
29
+ "config/locales/en.yml",
29
30
  "governor_twitter.gemspec",
30
31
  "lib/governor_twitter.rb",
31
32
  "lib/governor_twitter/controllers/methods.rb",
32
- "lib/governor_twitter/models/methods.rb",
33
33
  "lib/governor_twitter/rails.rb",
34
34
  "spec/governor_twitter_spec.rb",
35
- "spec/models/article_spec.rb",
36
35
  "spec/rails_app/.gitignore",
37
36
  "spec/rails_app/Gemfile",
38
37
  "spec/rails_app/Gemfile.lock",
@@ -97,7 +96,6 @@ Gem::Specification.new do |s|
97
96
  s.summary = %q{A plugin that connects Governor with a Twitter account.}
98
97
  s.test_files = [
99
98
  "spec/governor_twitter_spec.rb",
100
- "spec/models/article_spec.rb",
101
99
  "spec/rails_app/app/controllers/application_controller.rb",
102
100
  "spec/rails_app/app/controllers/home_controller.rb",
103
101
  "spec/rails_app/app/helpers/application_helper.rb",
@@ -136,7 +134,7 @@ Gem::Specification.new do |s|
136
134
  s.add_runtime_dependency(%q<twitter>, [">= 1.1"])
137
135
  s.add_runtime_dependency(%q<shortie>, [">= 0"])
138
136
  s.add_runtime_dependency(%q<governor>, [">= 0.5.3"])
139
- s.add_runtime_dependency(%q<governor_background>, ["~> 0.2.2"])
137
+ s.add_runtime_dependency(%q<governor_background>, [">= 0.3.0"])
140
138
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
141
139
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
142
140
  s.add_development_dependency(%q<rspec-rails>, [">= 0"])
@@ -148,12 +146,13 @@ Gem::Specification.new do |s|
148
146
  s.add_development_dependency(%q<devise>, [">= 0"])
149
147
  s.add_development_dependency(%q<governor_twitter>, [">= 0"])
150
148
  s.add_development_dependency(%q<delayed_job>, [">= 0"])
149
+ s.add_development_dependency(%q<resque>, [">= 0"])
151
150
  s.add_development_dependency(%q<dynamic_form>, [">= 0"])
152
151
  else
153
152
  s.add_dependency(%q<twitter>, [">= 1.1"])
154
153
  s.add_dependency(%q<shortie>, [">= 0"])
155
154
  s.add_dependency(%q<governor>, [">= 0.5.3"])
156
- s.add_dependency(%q<governor_background>, ["~> 0.2.2"])
155
+ s.add_dependency(%q<governor_background>, [">= 0.3.0"])
157
156
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
158
157
  s.add_dependency(%q<sqlite3>, [">= 0"])
159
158
  s.add_dependency(%q<rspec-rails>, [">= 0"])
@@ -165,13 +164,14 @@ Gem::Specification.new do |s|
165
164
  s.add_dependency(%q<devise>, [">= 0"])
166
165
  s.add_dependency(%q<governor_twitter>, [">= 0"])
167
166
  s.add_dependency(%q<delayed_job>, [">= 0"])
167
+ s.add_dependency(%q<resque>, [">= 0"])
168
168
  s.add_dependency(%q<dynamic_form>, [">= 0"])
169
169
  end
170
170
  else
171
171
  s.add_dependency(%q<twitter>, [">= 1.1"])
172
172
  s.add_dependency(%q<shortie>, [">= 0"])
173
173
  s.add_dependency(%q<governor>, [">= 0.5.3"])
174
- s.add_dependency(%q<governor_background>, ["~> 0.2.2"])
174
+ s.add_dependency(%q<governor_background>, [">= 0.3.0"])
175
175
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
176
176
  s.add_dependency(%q<sqlite3>, [">= 0"])
177
177
  s.add_dependency(%q<rspec-rails>, [">= 0"])
@@ -183,6 +183,7 @@ Gem::Specification.new do |s|
183
183
  s.add_dependency(%q<devise>, [">= 0"])
184
184
  s.add_dependency(%q<governor_twitter>, [">= 0"])
185
185
  s.add_dependency(%q<delayed_job>, [">= 0"])
186
+ s.add_dependency(%q<resque>, [">= 0"])
186
187
  s.add_dependency(%q<dynamic_form>, [">= 0"])
187
188
  end
188
189
  end
@@ -1,16 +1,17 @@
1
1
  require 'governor_twitter/rails'
2
- require 'governor_twitter/models/methods'
3
2
  require 'governor_twitter/controllers/methods'
4
3
 
5
4
  twitter = Governor::Plugin.new('twitter')
6
5
 
7
- twitter.register_model_callback do |base|
8
- base.send :include, GovernorTwitter::Models::Methods
9
- base.send :include, ActionView::Helpers::TextHelper
10
- end
11
6
  twitter.register_controller_callback do |controller|
12
7
  controller.send :include, GovernorTwitter::Controllers::Methods
13
8
  end
14
9
  twitter.register_partial :bottom_of_form, 'articles/twitter_form'
15
10
 
11
+ GovernorBackground.register('twitter_post') do |content, url|
12
+ include ActionView::Helpers::TextHelper
13
+ shortened_url = Shortie::Service.find_by_key("bitly").shorten(url)
14
+ Twitter.update("#{truncate(content, :length => 139 - shortened_url.size)} #{shortened_url}")
15
+ end
16
+
16
17
  Governor::PluginManager.register twitter
@@ -7,7 +7,9 @@ module GovernorTwitter
7
7
 
8
8
  def send_to_twitter
9
9
  if params[:post_to_twitter] && resource.errors.blank?
10
- resource.post_to_twitter_in_background(params[:twitter_content], polymorphic_url(resource))
10
+ content, url = params[:twitter_content], polymorphic_url(resource)
11
+ logger.info 'posting to twitter in the background'
12
+ GovernorBackground.run('twitter_post', content, url)
11
13
  end
12
14
  end
13
15
  end
@@ -1,7 +1,20 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe GovernorTwitter do
4
- it "registers the plugin" do
4
+ it "registers the plugin with Governor" do
5
5
  Governor::PluginManager.plugins.size == 1
6
6
  end
7
+
8
+ it "registers a job with GovernorBackground" do
9
+ GovernorBackground.retrieve('twitter_post').should_not be_blank
10
+ end
11
+
12
+ it "can post to twitter" do
13
+ content = "Visit my site!"
14
+ url = 'http://blago.gov/money_please'
15
+ shortened_url = 'http://bit.ly/short'
16
+ Shortie::Service.find_by_key("bitly").expects(:shorten).with(url).returns(shortened_url)
17
+ Twitter.expects(:update).with("#{content} #{shortened_url}")
18
+ GovernorBackground.run('twitter.post', content, url)
19
+ end
7
20
  end
@@ -8,9 +8,9 @@ gem 'rails', '3.0.5'
8
8
  gem 'sqlite3'
9
9
 
10
10
  gem 'devise'
11
- gem 'delayed_job'
11
+ gem 'resque'
12
12
  gem 'governor'
13
- gem 'governor_background'
13
+ gem 'governor_background', '>= 0.3.0'
14
14
  gem 'governor_twitter', :path => '../..'
15
15
 
16
16
  gem 'dynamic_form'
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- governor_twitter (0.1.0)
5
- governor
6
- governor_background
4
+ governor_twitter (0.1.1)
5
+ governor (>= 0.5.3)
6
+ governor_background (>= 0.3.0)
7
7
  shortie
8
8
  twitter (>= 1.1)
9
9
 
@@ -41,10 +41,6 @@ GEM
41
41
  arel (2.0.9)
42
42
  bcrypt-ruby (2.1.4)
43
43
  builder (2.1.2)
44
- daemons (1.1.3)
45
- delayed_job (2.1.4)
46
- activesupport (~> 3.0)
47
- daemons
48
44
  devise (1.3.4)
49
45
  bcrypt-ruby (~> 2.1.2)
50
46
  orm_adapter (~> 0.0.3)
@@ -58,12 +54,13 @@ GEM
58
54
  rack (>= 1.1.0, < 2)
59
55
  faraday_middleware (0.6.3)
60
56
  faraday (~> 0.6.0)
61
- governor (0.5.3)
62
- rails (~> 3.0.5)
63
- governor_background (0.2.2)
57
+ governor (0.5.4)
58
+ rails (>= 3.0.5)
59
+ governor_background (0.3.0)
64
60
  governor
65
61
  hashie (1.0.0)
66
62
  i18n (0.5.0)
63
+ json (1.4.6)
67
64
  mail (2.2.19)
68
65
  activesupport (>= 2.3.6)
69
66
  i18n (>= 0.4.0)
@@ -72,7 +69,7 @@ GEM
72
69
  mime-types (1.16)
73
70
  multi_json (1.0.2)
74
71
  multi_xml (0.2.2)
75
- multipart-post (1.1.0)
72
+ multipart-post (1.1.1)
76
73
  orm_adapter (0.0.5)
77
74
  polyglot (0.3.1)
78
75
  rack (1.2.2)
@@ -96,12 +93,24 @@ GEM
96
93
  rake (0.8.7)
97
94
  rash (0.3.0)
98
95
  hashie (~> 1.0.0)
96
+ redis (2.2.0)
97
+ redis-namespace (0.10.0)
98
+ redis (< 3.0.0)
99
+ resque (1.15.0)
100
+ json (~> 1.4.6)
101
+ redis-namespace (>= 0.10.0)
102
+ sinatra (>= 0.9.2)
103
+ vegas (~> 0.1.2)
99
104
  shortie (1.0.0)
100
105
  simplehttp (>= 0.1.3)
101
106
  simple_oauth (0.1.5)
102
107
  simplehttp (0.1.3)
108
+ sinatra (1.2.6)
109
+ rack (~> 1.1)
110
+ tilt (>= 1.2.2, < 2.0)
103
111
  sqlite3 (1.3.3)
104
112
  thor (0.14.6)
113
+ tilt (1.3)
105
114
  treetop (1.4.9)
106
115
  polyglot (>= 0.3.1)
107
116
  twitter (1.4.1)
@@ -113,6 +122,8 @@ GEM
113
122
  rash (~> 0.3.0)
114
123
  simple_oauth (~> 0.1.4)
115
124
  tzinfo (0.3.27)
125
+ vegas (0.1.8)
126
+ rack (>= 1.0.0)
116
127
  warden (1.0.4)
117
128
  rack (>= 1.0)
118
129
  will_paginate (3.0.pre2)
@@ -121,12 +132,12 @@ PLATFORMS
121
132
  ruby
122
133
 
123
134
  DEPENDENCIES
124
- delayed_job
125
135
  devise
126
136
  dynamic_form
127
137
  governor
128
- governor_background
138
+ governor_background (>= 0.3.0)
129
139
  governor_twitter!
130
140
  rails (= 3.0.5)
141
+ resque
131
142
  sqlite3
132
143
  will_paginate (~> 3.0.beta)
@@ -5,3 +5,5 @@ require File.expand_path('../config/application', __FILE__)
5
5
  require 'rake'
6
6
 
7
7
  RailsApp::Application.load_tasks
8
+
9
+ require 'resque/tasks'
@@ -1,6 +1,6 @@
1
1
  Twitter.configure do |config|
2
- config.consumer_key = ''
3
- config.consumer_secret = ''
4
- config.oauth_token = ''
5
- config.oauth_token_secret = ''
2
+ config.consumer_key = 'x2kAIZqhVbB8aYBkbIhLA'
3
+ config.consumer_secret = 'N3m27LRWN6kglvJ2QIoqS6HKv0y1MBqFNMBUpEl8g'
4
+ config.oauth_token = '298776110-A4adk6Whxn6ROReYsNyx2Ate948qXS2hQpIGVAkg'
5
+ config.oauth_token_secret = 'C2eeyC3R28PjNlaXAZXmr9hKC1MvBZy0A3wawO4xI'
6
6
  end
data/spec/spec_helper.rb CHANGED
@@ -33,4 +33,11 @@ module Governor
33
33
  end
34
34
  end
35
35
  end
36
+ end
37
+
38
+ # get GovernorBackground to run jobs directly
39
+ module GovernorBackground
40
+ def self.run(job_name, *arguments)
41
+ retrieve(job_name).call(*arguments)
42
+ end
36
43
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: governor_twitter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Liam Morley
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-13 00:00:00 -04:00
18
+ date: 2011-05-15 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -70,14 +70,14 @@ dependencies:
70
70
  version_requirements: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
73
- - - ~>
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  hash: 19
76
76
  segments:
77
77
  - 0
78
- - 2
79
- - 2
80
- version: 0.2.2
78
+ - 3
79
+ - 0
80
+ version: 0.3.0
81
81
  requirement: *id004
82
82
  - !ruby/object:Gem::Dependency
83
83
  type: :development
@@ -245,7 +245,7 @@ dependencies:
245
245
  - !ruby/object:Gem::Dependency
246
246
  type: :development
247
247
  prerelease: false
248
- name: dynamic_form
248
+ name: resque
249
249
  version_requirements: &id016 !ruby/object:Gem::Requirement
250
250
  none: false
251
251
  requirements:
@@ -256,6 +256,20 @@ dependencies:
256
256
  - 0
257
257
  version: "0"
258
258
  requirement: *id016
259
+ - !ruby/object:Gem::Dependency
260
+ type: :development
261
+ prerelease: false
262
+ name: dynamic_form
263
+ version_requirements: &id017 !ruby/object:Gem::Requirement
264
+ none: false
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ hash: 3
269
+ segments:
270
+ - 0
271
+ version: "0"
272
+ requirement: *id017
259
273
  description: A plugin for the Rails 3-based Governor blogging system that posts your blog entries to Twitter for you.
260
274
  email: liam@carpeliam.com
261
275
  executables: []
@@ -275,13 +289,12 @@ files:
275
289
  - Rakefile
276
290
  - VERSION
277
291
  - app/views/governor/articles/_twitter_form.html.erb
292
+ - config/locales/en.yml
278
293
  - governor_twitter.gemspec
279
294
  - lib/governor_twitter.rb
280
295
  - lib/governor_twitter/controllers/methods.rb
281
- - lib/governor_twitter/models/methods.rb
282
296
  - lib/governor_twitter/rails.rb
283
297
  - spec/governor_twitter_spec.rb
284
- - spec/models/article_spec.rb
285
298
  - spec/rails_app/.gitignore
286
299
  - spec/rails_app/Gemfile
287
300
  - spec/rails_app/Gemfile.lock
@@ -374,7 +387,6 @@ specification_version: 3
374
387
  summary: A plugin that connects Governor with a Twitter account.
375
388
  test_files:
376
389
  - spec/governor_twitter_spec.rb
377
- - spec/models/article_spec.rb
378
390
  - spec/rails_app/app/controllers/application_controller.rb
379
391
  - spec/rails_app/app/controllers/home_controller.rb
380
392
  - spec/rails_app/app/helpers/application_helper.rb
@@ -1,15 +0,0 @@
1
- require 'twitter'
2
- module GovernorTwitter
3
- module Models
4
- module Methods
5
- def post_to_twitter(content, url)
6
- shortened_url = Shortie::Service.find_by_key("bitly").shorten(url)
7
- Twitter.update("#{truncate(content, :length => 139 - shortened_url.size)} #{shortened_url}")
8
- end
9
-
10
- def post_to_twitter_in_background(content, url)
11
- run_in_background :post_to_twitter, content, url
12
- end
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Article do
4
- before do
5
- @content = "Visit my site!"
6
- @url = 'http://blago.gov/money_please'
7
- @shortened_url = 'http://bit.ly/short'
8
- @article = Factory(:article, :author => Factory(:user))
9
- end
10
- it "can post to twitter" do
11
- Shortie::Service.find_by_key("bitly").expects(:shorten).with(@url).returns(@shortened_url)
12
- Twitter.expects(:update).with("#{@content} #{@shortened_url}")
13
- @article.post_to_twitter @content, @url
14
- end
15
- end