lolcommits-twitter 0.0.4 → 0.0.5
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 +5 -5
- data/.travis.yml +11 -10
- data/lib/lolcommits/plugin/twitter.rb +19 -30
- data/lib/lolcommits/twitter/version.rb +1 -1
- data/lolcommits-twitter.gemspec +1 -1
- data/test/lolcommits/plugin/twitter_test.rb +19 -41
- data/test/test_helper.rb +2 -5
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: dda1729a3916ac1f7b263e100d3cfa6fe44b77059b0f0a06233bd392b57d9b4c
|
|
4
|
+
data.tar.gz: ea083a54e32198bf114c652442055e1b9377822ee9fcc08c7c035e6ea43ceb01
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: abfce6434ffe7c021a432ef3575c72fa56941e23f830ccac62bf0c164627eced124a1f6ffccedfb565d8e4931392c30449afa559aa3f3a68cf3962e143b1be1d
|
|
7
|
+
data.tar.gz: e8e23a6cf2ae6d80e411bc7ab829cfbef8a006ef0873c906acfe6b88a95c9a3a2a8942368a9325046caba04ff90ae94fdc50dafd92338d98157f32a2fd7b8cba
|
data/.travis.yml
CHANGED
|
@@ -2,18 +2,19 @@ sudo: false
|
|
|
2
2
|
language: ruby
|
|
3
3
|
cache: bundler
|
|
4
4
|
rvm:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
- 2.0.0
|
|
6
|
+
- 2.1.10
|
|
7
|
+
- 2.2.9
|
|
8
|
+
- 2.3.6
|
|
9
|
+
- 2.4.3
|
|
10
|
+
- 2.5.0
|
|
11
|
+
- ruby-head
|
|
11
12
|
|
|
12
13
|
before_install:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
- gem update --system
|
|
15
|
+
- git --version
|
|
16
|
+
- git config --global user.email "lol@commits.org"
|
|
17
|
+
- git config --global user.name "Lolcommits"
|
|
17
18
|
|
|
18
19
|
matrix:
|
|
19
20
|
allow_failures:
|
|
@@ -8,15 +8,6 @@ module Lolcommits
|
|
|
8
8
|
|
|
9
9
|
DEFAULT_SUFFIX = '#lolcommits'.freeze
|
|
10
10
|
|
|
11
|
-
##
|
|
12
|
-
# Returns the name of the plugin. Identifies the plugin to lolcommits.
|
|
13
|
-
#
|
|
14
|
-
# @return [String] the plugin name
|
|
15
|
-
#
|
|
16
|
-
def self.name
|
|
17
|
-
'twitter'
|
|
18
|
-
end
|
|
19
|
-
|
|
20
11
|
##
|
|
21
12
|
# Returns position(s) of when this plugin should run during the capture
|
|
22
13
|
# process. We want to post to Twitter when the capture is ready (after all
|
|
@@ -29,12 +20,12 @@ module Lolcommits
|
|
|
29
20
|
end
|
|
30
21
|
|
|
31
22
|
##
|
|
32
|
-
#
|
|
23
|
+
# Indicate if the plugin is configured correctly.
|
|
33
24
|
#
|
|
34
|
-
# @return [Boolean] true/false
|
|
25
|
+
# @return [Boolean] true/false
|
|
35
26
|
#
|
|
36
|
-
def
|
|
37
|
-
!!(configuration[
|
|
27
|
+
def valid_configuration?
|
|
28
|
+
!!(configuration[:token] && configuration[:token_secret])
|
|
38
29
|
end
|
|
39
30
|
|
|
40
31
|
##
|
|
@@ -46,7 +37,7 @@ module Lolcommits
|
|
|
46
37
|
def configure_options!
|
|
47
38
|
options = super
|
|
48
39
|
# ask user to configure all options (if enabling)
|
|
49
|
-
if options[
|
|
40
|
+
if options[:enabled]
|
|
50
41
|
auth_config = configure_auth!
|
|
51
42
|
return unless auth_config
|
|
52
43
|
options = options.merge(auth_config).
|
|
@@ -74,8 +65,8 @@ module Lolcommits
|
|
|
74
65
|
|
|
75
66
|
begin
|
|
76
67
|
client = twitter_client.new(
|
|
77
|
-
configuration[
|
|
78
|
-
configuration[
|
|
68
|
+
configuration[:token],
|
|
69
|
+
configuration[:token_secret]
|
|
79
70
|
)
|
|
80
71
|
|
|
81
72
|
debug "--> Uploading media (#{file.size} bytes)"
|
|
@@ -85,7 +76,7 @@ module Lolcommits
|
|
|
85
76
|
|
|
86
77
|
tweet_url = status_response['entities']['media'][0]['url']
|
|
87
78
|
print "#{tweet_url}\n"
|
|
88
|
-
open_url(tweet_url) if configuration[
|
|
79
|
+
open_url(tweet_url) if configuration[:open_tweet_url]
|
|
89
80
|
rescue StandardError => e
|
|
90
81
|
puts "ERROR: Tweeting FAILED! - #{e.message}"
|
|
91
82
|
end
|
|
@@ -98,10 +89,10 @@ module Lolcommits
|
|
|
98
89
|
end
|
|
99
90
|
|
|
100
91
|
def build_tweet(commit_message)
|
|
101
|
-
prefix = configuration[
|
|
102
|
-
suffix = configuration[
|
|
103
|
-
prefix = "#{configuration[
|
|
104
|
-
suffix = " #{configuration[
|
|
92
|
+
prefix = configuration[:prefix].to_s
|
|
93
|
+
suffix = configuration[:suffix].to_s
|
|
94
|
+
prefix = "#{configuration[:prefix]} " unless prefix.empty?
|
|
95
|
+
suffix = " #{configuration[:suffix]}" unless suffix.empty?
|
|
105
96
|
|
|
106
97
|
available_commit_msg_size = twitter_client::MAX_TWEET_CHARS - (prefix.length + suffix.length)
|
|
107
98
|
if commit_message.length > available_commit_msg_size
|
|
@@ -118,9 +109,9 @@ module Lolcommits
|
|
|
118
109
|
end
|
|
119
110
|
|
|
120
111
|
def configure_auth!
|
|
121
|
-
if
|
|
112
|
+
if valid_configuration?
|
|
122
113
|
print "\n* Reset Twitter Auth ? (y/N): "
|
|
123
|
-
return configuration.select {|k,v| k =~ /^token/ } if !ask_yes_or_no?
|
|
114
|
+
return configuration.select {|k,v| k.to_s =~ /^token/ } if !ask_yes_or_no?
|
|
124
115
|
end
|
|
125
116
|
|
|
126
117
|
puts ''
|
|
@@ -129,8 +120,6 @@ module Lolcommits
|
|
|
129
120
|
puts '-----------------------------------'
|
|
130
121
|
|
|
131
122
|
request_token = twitter_client.oauth_consumer.get_request_token
|
|
132
|
-
rtoken = request_token.token
|
|
133
|
-
rsecret = request_token.secret
|
|
134
123
|
authorize_url = request_token.authorize_url
|
|
135
124
|
|
|
136
125
|
open_url(authorize_url)
|
|
@@ -156,8 +145,8 @@ module Lolcommits
|
|
|
156
145
|
puts '-----------------------------------'
|
|
157
146
|
|
|
158
147
|
{
|
|
159
|
-
|
|
160
|
-
|
|
148
|
+
token: access_token.token,
|
|
149
|
+
token_secret: access_token.secret
|
|
161
150
|
}
|
|
162
151
|
end
|
|
163
152
|
|
|
@@ -168,14 +157,14 @@ module Lolcommits
|
|
|
168
157
|
suffix = gets.strip
|
|
169
158
|
|
|
170
159
|
config = {}
|
|
171
|
-
config[
|
|
172
|
-
config[
|
|
160
|
+
config[:prefix] = prefix.empty? ? '' : prefix
|
|
161
|
+
config[:suffix] = suffix.empty? ? DEFAULT_SUFFIX : suffix
|
|
173
162
|
config
|
|
174
163
|
end
|
|
175
164
|
|
|
176
165
|
def configure_open_tweet_url
|
|
177
166
|
print "\n* Automatically open Tweet URL after posting (y/N): "
|
|
178
|
-
{
|
|
167
|
+
{ open_tweet_url: ask_yes_or_no? }
|
|
179
168
|
end
|
|
180
169
|
|
|
181
170
|
def open_url(url)
|
data/lolcommits-twitter.gemspec
CHANGED
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
|
36
36
|
spec.add_runtime_dependency "simple_oauth"
|
|
37
37
|
spec.add_runtime_dependency "addressable"
|
|
38
38
|
|
|
39
|
-
spec.add_development_dependency "lolcommits", ">= 0.
|
|
39
|
+
spec.add_development_dependency "lolcommits", ">= 0.10.0"
|
|
40
40
|
spec.add_development_dependency "bundler"
|
|
41
41
|
spec.add_development_dependency "rake"
|
|
42
42
|
spec.add_development_dependency "minitest"
|
|
@@ -4,36 +4,21 @@ describe Lolcommits::Plugin::Twitter do
|
|
|
4
4
|
|
|
5
5
|
include Lolcommits::TestHelpers::FakeIO
|
|
6
6
|
|
|
7
|
-
def plugin_name
|
|
8
|
-
'twitter'
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it 'should have a name' do
|
|
12
|
-
::Lolcommits::Plugin::Twitter.name.must_equal plugin_name
|
|
13
|
-
end
|
|
14
|
-
|
|
15
7
|
it 'should run on post capturing' do
|
|
16
8
|
::Lolcommits::Plugin::Twitter.runner_order.must_equal [:capture_ready]
|
|
17
9
|
end
|
|
18
10
|
|
|
19
11
|
describe 'with a runner' do
|
|
20
12
|
def runner
|
|
21
|
-
|
|
22
|
-
@_runner ||= Lolcommits::Runner.new(
|
|
23
|
-
config: OpenStruct.new(read_configuration: {})
|
|
24
|
-
)
|
|
13
|
+
@_runner ||= Lolcommits::Runner.new
|
|
25
14
|
end
|
|
26
15
|
|
|
27
16
|
def valid_enabled_config
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'token_secret' => '123XYZ'
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
)
|
|
17
|
+
{
|
|
18
|
+
enabled: true,
|
|
19
|
+
token: 'abc-xyz',
|
|
20
|
+
token_secret: '123XYZ'
|
|
21
|
+
}
|
|
37
22
|
end
|
|
38
23
|
|
|
39
24
|
def plugin
|
|
@@ -44,32 +29,25 @@ describe Lolcommits::Plugin::Twitter do
|
|
|
44
29
|
Lolcommits::Twitter::Client
|
|
45
30
|
end
|
|
46
31
|
|
|
47
|
-
describe 'initalizing' do
|
|
48
|
-
it 'should assign runner and an enabled option' do
|
|
49
|
-
plugin.runner.must_equal runner
|
|
50
|
-
plugin.options.must_equal ['enabled']
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
32
|
describe '#enabled?' do
|
|
55
33
|
it 'should be false by default' do
|
|
56
|
-
plugin.enabled
|
|
34
|
+
assert_nil plugin.enabled?
|
|
57
35
|
end
|
|
58
36
|
|
|
59
37
|
it 'should true when configured' do
|
|
60
|
-
plugin.
|
|
38
|
+
plugin.configuration = valid_enabled_config
|
|
61
39
|
plugin.enabled?.must_equal true
|
|
62
40
|
end
|
|
63
41
|
end
|
|
64
42
|
|
|
65
43
|
describe 'configuration' do
|
|
66
|
-
it 'should not
|
|
67
|
-
plugin.
|
|
44
|
+
it 'should not have a valid config by default' do
|
|
45
|
+
plugin.valid_configuration?.must_equal false
|
|
68
46
|
end
|
|
69
47
|
|
|
70
|
-
it 'should indicate when configured' do
|
|
71
|
-
plugin.
|
|
72
|
-
plugin.
|
|
48
|
+
it 'should indicate when configured correctly' do
|
|
49
|
+
plugin.configuration = valid_enabled_config
|
|
50
|
+
plugin.valid_configuration?.must_equal true
|
|
73
51
|
end
|
|
74
52
|
|
|
75
53
|
it 'should allow plugin options to be configured' do
|
|
@@ -88,12 +66,12 @@ describe Lolcommits::Plugin::Twitter do
|
|
|
88
66
|
end
|
|
89
67
|
|
|
90
68
|
configured_plugin_options.must_equal({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
69
|
+
enabled: true,
|
|
70
|
+
token: 'oauthtoken',
|
|
71
|
+
token_secret: 'oauthtokensecret',
|
|
72
|
+
prefix: 'LOL-prefix',
|
|
73
|
+
suffix: 'LOL-suffix',
|
|
74
|
+
open_tweet_url: true
|
|
97
75
|
})
|
|
98
76
|
end
|
|
99
77
|
end
|
data/test/test_helper.rb
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
require '
|
|
5
|
-
require 'lolcommits/runner'
|
|
6
|
-
require 'lolcommits/vcs_info'
|
|
7
|
-
require 'lolcommits/backends/git_info'
|
|
3
|
+
# lolcommits gem
|
|
4
|
+
require 'lolcommits'
|
|
8
5
|
|
|
9
6
|
# lolcommit test helpers
|
|
10
7
|
require 'lolcommits/test_helpers/git_repo'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lolcommits-twitter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matthew Hutchinson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-01-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.
|
|
75
|
+
version: 0.10.0
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.
|
|
82
|
+
version: 0.10.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: bundler
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -210,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
210
210
|
version: '0'
|
|
211
211
|
requirements: []
|
|
212
212
|
rubyforge_project:
|
|
213
|
-
rubygems_version: 2.
|
|
213
|
+
rubygems_version: 2.7.3
|
|
214
214
|
signing_key:
|
|
215
215
|
specification_version: 4
|
|
216
216
|
summary: Post lolcommits to Twitter
|