middleman-blog-twitter 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/Rakefile +12 -4
- data/config.rb +3 -0
- data/features/support/env.rb +4 -0
- data/lib/middleman-blog-twitter.rb +8 -0
- data/lib/middleman-blog-twitter/commands.rb +35 -0
- data/lib/middleman-blog-twitter/extension.rb +23 -0
- data/lib/middleman/blog/twitter.rb +37 -14
- data/lib/middleman/blog/twitter/version.rb +1 -1
- data/middleman-blog-twitter.gemspec +15 -9
- metadata +93 -6
- data/lib/middleman/blog/twitter/cli.rb +0 -30
- data/lib/middleman/blog/twitter/settings.rb +0 -17
- data/lib/middleman/blog/twitter/updater.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c13fde00ac6c65f959d060ba450bb21afb7b15c
|
4
|
+
data.tar.gz: a9ee92d122b3e74182f719437ddb3de23f349199
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fec4f045d539910e0fb213fee619e19095f0088c2d427717946869a8a7cbbfecaf0a0c79c7d58fe38dbeed1b48ab672fc85cc3054677b87a8e718791b9ffe15a
|
7
|
+
data.tar.gz: 9417559963fe0e2b00d2c789b3f4827cc1740a4d378d907c907dad49b452dfecad857902d1d8af1b6b64461f3fda7611007a93a658860cd98d2d6a7d8b6cac61
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
|
-
|
4
|
+
require 'cucumber/rake/task'
|
5
5
|
|
6
|
-
|
6
|
+
Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
|
7
|
+
t.cucumber_opts = '--color --tags ~@wip --strict'
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'rake/clean'
|
11
|
+
|
12
|
+
task test: ['cucumber']
|
13
|
+
|
14
|
+
task default: :test
|
data/config.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'middleman-cli'
|
2
|
+
require 'middleman-blog/uri_templates'
|
3
|
+
|
4
|
+
module Middleman
|
5
|
+
module Cli
|
6
|
+
class Twitter < ::Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
include Middleman::Blog::UriTemplates
|
9
|
+
|
10
|
+
check_unknown_options!
|
11
|
+
|
12
|
+
namespace :tweet
|
13
|
+
|
14
|
+
def self.exit_on_failure?
|
15
|
+
true
|
16
|
+
end
|
17
|
+
|
18
|
+
def tweet
|
19
|
+
env = options[:environment].to_s.to_sym
|
20
|
+
verbose = options[:verbose] ? 0 : 1
|
21
|
+
instrument = options[:instrument]
|
22
|
+
|
23
|
+
::Middleman::Blog::Twitter.app = ::Middleman::Application.new do
|
24
|
+
config[:mode] = :build
|
25
|
+
config[:environment] = env
|
26
|
+
::Middleman::Logger.singleton(verbose, instrument)
|
27
|
+
end
|
28
|
+
|
29
|
+
::Middleman::Blog::Twitter.tweet
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
Base.register(Middleman::Cli::Twitter, 'tweet', 'tweet [options]', 'Tweet latest article')
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'middleman-core'
|
2
|
+
require 'middleman/blog/twitter'
|
3
|
+
|
4
|
+
module Middleman
|
5
|
+
module Blog
|
6
|
+
class TwitterExtension < ::Middleman::Extension
|
7
|
+
option :consumer_key, nil, 'Twitter consumer key'
|
8
|
+
option :consumer_secret, nil, 'Twitter consumer secret'
|
9
|
+
option :access_token, nil, 'Twitter access token'
|
10
|
+
option :access_token_secret, nil, 'Twitter access token secret'
|
11
|
+
option :hostname, nil, 'Your site hostname'
|
12
|
+
option :template_path, 'tweet_template.txt.erb', 'Tweet template path'
|
13
|
+
|
14
|
+
attr_reader :options
|
15
|
+
|
16
|
+
def initialize(app, options_hash={}, &block)
|
17
|
+
super
|
18
|
+
|
19
|
+
@options = options
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,27 +1,50 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'middleman/blog/twitter/version'
|
2
|
+
require 'middleman-blog-twitter'
|
3
|
+
require 'middleman-blog-twitter/extension'
|
4
|
+
require 'twitter'
|
4
5
|
|
5
6
|
module Middleman
|
6
7
|
module Blog
|
7
8
|
module Twitter
|
8
9
|
class << self
|
9
|
-
|
10
|
+
attr_reader :app
|
10
11
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
def tweet
|
13
|
+
@app ||= ::Middleman::Application.new
|
14
|
+
|
15
|
+
blog_extension = @app.extensions[:blog].values.first
|
16
|
+
latest_article = blog_extension.data.articles.select{ |a| a.published? }.first
|
17
|
+
hostname = settings.hostname
|
18
|
+
|
19
|
+
erb = ERB.new(read_template)
|
20
|
+
tweet = erb.result(binding)
|
21
|
+
client.update(tweet)
|
22
|
+
end
|
23
|
+
|
24
|
+
def app=(app)
|
25
|
+
@app = app
|
15
26
|
end
|
16
27
|
|
17
|
-
|
18
|
-
|
28
|
+
private
|
29
|
+
|
30
|
+
def settings
|
31
|
+
@app.extensions[:blog_twitter].options
|
32
|
+
end
|
33
|
+
|
34
|
+
def client
|
35
|
+
::Twitter::REST::Client.new do |config|
|
36
|
+
config.consumer_key = settings.consumer_key
|
37
|
+
config.consumer_secret = settings.consumer_secret
|
38
|
+
config.access_token = settings.access_token
|
39
|
+
config.access_token_secret = settings.access_token_secret
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def read_template
|
44
|
+
file = File.open(settings.template_path, 'r')
|
45
|
+
file.read
|
19
46
|
end
|
20
47
|
end
|
21
48
|
end
|
22
49
|
end
|
23
50
|
end
|
24
|
-
|
25
|
-
::Middleman::Extensions.register(:blog_twitter) do
|
26
|
-
::Middleman::Blog::Twitter
|
27
|
-
end
|
@@ -13,16 +13,22 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = 'https://github.com/mizoguche/middleman-blog-twitter'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
|
-
spec.files = `git ls-files
|
17
|
-
spec.
|
18
|
-
spec.
|
16
|
+
spec.files = `git ls-files`.split("\n")
|
17
|
+
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.
|
23
|
-
spec.
|
21
|
+
spec.add_runtime_dependency('middleman-core', ['>= 4.1.9'])
|
22
|
+
spec.add_runtime_dependency('middleman-cli')
|
23
|
+
spec.add_runtime_dependency('middleman-blog', '~> 4.0.1')
|
24
|
+
spec.add_runtime_dependency('twitter', '~> 5.13')
|
25
|
+
spec.add_runtime_dependency('thor', ['>= 0.17.0', '< 2.0'])
|
24
26
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
27
|
+
spec.add_development_dependency('bundler', '~> 1.5')
|
28
|
+
spec.add_development_dependency('rake')
|
29
|
+
spec.add_development_dependency('rspec')
|
30
|
+
spec.add_development_dependency('cucumber')
|
31
|
+
spec.add_development_dependency('aruba')
|
32
|
+
spec.add_development_dependency('rdoc')
|
33
|
+
spec.add_development_dependency('yard')
|
28
34
|
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-blog-twitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michiaki Mizoguchi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: middleman-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.1.9
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.1.9
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: middleman-cli
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: middleman-blog
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +128,62 @@ dependencies:
|
|
100
128
|
- - ">="
|
101
129
|
- !ruby/object:Gem::Version
|
102
130
|
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: cucumber
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: aruba
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: rdoc
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: yard
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
103
187
|
description: Tweet about the articles on Middleman blog
|
104
188
|
email:
|
105
189
|
- michiaki.mizoguchi@gmail.com
|
@@ -114,10 +198,12 @@ files:
|
|
114
198
|
- LICENSE.txt
|
115
199
|
- README.md
|
116
200
|
- Rakefile
|
201
|
+
- config.rb
|
202
|
+
- features/support/env.rb
|
203
|
+
- lib/middleman-blog-twitter.rb
|
204
|
+
- lib/middleman-blog-twitter/commands.rb
|
205
|
+
- lib/middleman-blog-twitter/extension.rb
|
117
206
|
- lib/middleman/blog/twitter.rb
|
118
|
-
- lib/middleman/blog/twitter/cli.rb
|
119
|
-
- lib/middleman/blog/twitter/settings.rb
|
120
|
-
- lib/middleman/blog/twitter/updater.rb
|
121
207
|
- lib/middleman/blog/twitter/version.rb
|
122
208
|
- middleman-blog-twitter.gemspec
|
123
209
|
- spec/middleman/blog/twitter_spec.rb
|
@@ -142,10 +228,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
228
|
version: '0'
|
143
229
|
requirements: []
|
144
230
|
rubyforge_project:
|
145
|
-
rubygems_version: 2.4
|
231
|
+
rubygems_version: 2.6.4
|
146
232
|
signing_key:
|
147
233
|
specification_version: 4
|
148
234
|
summary: Tweet about the articles on Middleman blog
|
149
235
|
test_files:
|
236
|
+
- features/support/env.rb
|
150
237
|
- spec/middleman/blog/twitter_spec.rb
|
151
238
|
- spec/spec_helper.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'middleman/blog/twitter/updater'
|
2
|
-
require 'middleman-blog/uri_templates'
|
3
|
-
require 'thor'
|
4
|
-
|
5
|
-
module Middleman
|
6
|
-
module Cli
|
7
|
-
class Twitter < ::Thor
|
8
|
-
include Thor::Actions
|
9
|
-
include Middleman::Blog::UriTemplates
|
10
|
-
|
11
|
-
check_unknown_options!
|
12
|
-
|
13
|
-
namespace :tweet
|
14
|
-
|
15
|
-
def self.exit_on_failure?
|
16
|
-
true
|
17
|
-
end
|
18
|
-
|
19
|
-
desc "tweet", "Tweets about your blog articles."
|
20
|
-
def tweet
|
21
|
-
shared_instance = ::Middleman::Application.server.inst
|
22
|
-
blog_inst = shared_instance.blog
|
23
|
-
latest_article = blog_inst.articles[0]
|
24
|
-
|
25
|
-
updater = ::Middleman::Blog::Twitter::Updater.new(::Middleman::Blog::Twitter.twitter_settings)
|
26
|
-
updater.tweet(latest_article)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Middleman
|
2
|
-
module Blog
|
3
|
-
module Twitter
|
4
|
-
class Settings
|
5
|
-
OPTIONS = [
|
6
|
-
:access_token,
|
7
|
-
:access_token_secret,
|
8
|
-
:consumer_key,
|
9
|
-
:consumer_secret,
|
10
|
-
:hostname,
|
11
|
-
:template_path
|
12
|
-
]
|
13
|
-
attr_accessor *OPTIONS
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'twitter'
|
2
|
-
require 'erb'
|
3
|
-
|
4
|
-
module Middleman
|
5
|
-
module Blog
|
6
|
-
module Twitter
|
7
|
-
class Updater
|
8
|
-
def initialize(settings)
|
9
|
-
@settings = settings
|
10
|
-
@client = ::Twitter::REST::Client.new do |config|
|
11
|
-
config.consumer_key = settings.consumer_key
|
12
|
-
config.consumer_secret = settings.consumer_secret
|
13
|
-
config.access_token = settings.access_token
|
14
|
-
config.access_token_secret = settings.access_token_secret
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def tweet(latest_article)
|
19
|
-
hostname = @settings.hostname
|
20
|
-
|
21
|
-
erb = ERB.new(read_template)
|
22
|
-
tweet = erb.result(binding)
|
23
|
-
|
24
|
-
@client.update(tweet)
|
25
|
-
end
|
26
|
-
|
27
|
-
def read_template
|
28
|
-
file = File.open(@settings.template_path, 'r')
|
29
|
-
file.read
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|