twog 0.3.2 → 0.3.3
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 +7 -0
- data/.github/workflows/ruby.yml +20 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +98 -52
- data/History.rdoc +13 -0
- data/LICENSE +1 -1
- data/README.md +4 -4
- data/VERSION.yml +2 -2
- data/spec/spec_helper.rb +26 -32
- data/spec/twog/blog_posts_handler_spec.rb +10 -10
- data/spec/twog/post_spec.rb +25 -25
- data/spec/twog/rss_entry_to_twog_post_mapper_spec.rb +11 -11
- data/spec/twog/rss_parser_spec.rb +7 -7
- data/spec/twog/twitter_handler_spec.rb +23 -23
- data/spec/twog/twog_spec.rb +23 -32
- data/twog.gemspec +47 -52
- metadata +54 -111
- data/.rvmrc +0 -1
- data/.travis.yml +0 -4
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 5df0f0e2f66eadbb6e8d71b3f4d1d46455a3fb7d917620fa234a553a24b807cb
|
|
4
|
+
data.tar.gz: 4b54ac9c280a176fac070be2e0e3c1f85a3500a9ce1054eea4adf43a6be1856d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e7d51688c32ba2635a92b388aedf87f61d69006727e916fdbf3402a7b96c16853c1049585b78171e5141fe3ac0f7d571fdca837f19b758ad93f4144158af996b
|
|
7
|
+
data.tar.gz: 5b578a5f2ee4940ef55f1173950200da51f476ea0b2aad5b4790d8f9aa9602c7983ccdd600b04f65f7f73bb00883194ea0958fb79b87834da1b9f191932f47c1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Ruby
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v1
|
|
12
|
+
- name: Set up Ruby 2.6.3
|
|
13
|
+
uses: actions/setup-ruby@v1
|
|
14
|
+
with:
|
|
15
|
+
ruby-version: 2.6.3
|
|
16
|
+
- name: Build and test with Rspec
|
|
17
|
+
run: |
|
|
18
|
+
gem install bundler
|
|
19
|
+
bundle install --jobs 4 --retry 3
|
|
20
|
+
bundle exec rspec
|
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
twog
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.6.3
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,63 +1,101 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
activesupport (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
activesupport (6.0.0)
|
|
5
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
6
|
+
i18n (>= 0.7, < 2)
|
|
7
|
+
minitest (~> 5.1)
|
|
8
|
+
tzinfo (~> 1.1)
|
|
9
|
+
zeitwerk (~> 2.1, >= 2.1.8)
|
|
10
|
+
addressable (2.4.0)
|
|
11
|
+
bitly (1.1.2)
|
|
10
12
|
httparty (>= 0.7.6)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
multi_json (~> 1.3)
|
|
14
|
+
oauth2 (>= 0.5.0, < 2.0)
|
|
15
|
+
builder (3.2.3)
|
|
16
|
+
chronic (0.10.2)
|
|
17
|
+
concurrent-ruby (1.1.5)
|
|
18
|
+
descendants_tracker (0.0.4)
|
|
19
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
20
|
+
diff-lcs (1.3)
|
|
21
|
+
docile (1.3.2)
|
|
22
|
+
faraday (0.9.2)
|
|
23
|
+
multipart-post (>= 1.2, < 3)
|
|
24
|
+
git (1.5.0)
|
|
25
|
+
github_api (0.16.0)
|
|
26
|
+
addressable (~> 2.4.0)
|
|
27
|
+
descendants_tracker (~> 0.0.4)
|
|
28
|
+
faraday (~> 0.8, < 0.10)
|
|
29
|
+
hashie (>= 3.4)
|
|
30
|
+
mime-types (>= 1.16, < 3.0)
|
|
31
|
+
oauth2 (~> 1.0)
|
|
32
|
+
hashie (3.6.0)
|
|
33
|
+
highline (2.0.2)
|
|
34
|
+
httparty (0.16.2)
|
|
35
|
+
multi_xml (>= 0.5.2)
|
|
36
|
+
i18n (1.6.0)
|
|
37
|
+
concurrent-ruby (~> 1.0)
|
|
38
|
+
jeweler (2.3.9)
|
|
39
|
+
builder
|
|
40
|
+
bundler
|
|
26
41
|
git (>= 1.2.5)
|
|
42
|
+
github_api (~> 0.16.0)
|
|
43
|
+
highline (>= 1.6.15)
|
|
44
|
+
nokogiri (>= 1.5.10)
|
|
45
|
+
psych
|
|
27
46
|
rake
|
|
28
47
|
rdoc
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
semver2
|
|
49
|
+
json (2.2.0)
|
|
50
|
+
jwt (2.2.1)
|
|
51
|
+
mime-types (2.99.3)
|
|
52
|
+
mini_portile2 (2.4.0)
|
|
53
|
+
minitest (5.12.0)
|
|
54
|
+
multi_json (1.13.1)
|
|
55
|
+
multi_xml (0.6.0)
|
|
56
|
+
multipart-post (2.1.1)
|
|
57
|
+
nokogiri (1.10.4)
|
|
58
|
+
mini_portile2 (~> 2.4.0)
|
|
59
|
+
oauth (0.5.4)
|
|
60
|
+
oauth2 (1.4.1)
|
|
61
|
+
faraday (>= 0.8, < 0.16.0)
|
|
62
|
+
jwt (>= 1.0, < 3.0)
|
|
63
|
+
multi_json (~> 1.3)
|
|
64
|
+
multi_xml (~> 0.5)
|
|
65
|
+
rack (>= 1.2, < 3)
|
|
66
|
+
psych (3.1.0)
|
|
67
|
+
rack (2.0.7)
|
|
68
|
+
rake (12.3.3)
|
|
69
|
+
rdoc (6.2.0)
|
|
70
|
+
rspec (3.8.0)
|
|
71
|
+
rspec-core (~> 3.8.0)
|
|
72
|
+
rspec-expectations (~> 3.8.0)
|
|
73
|
+
rspec-mocks (~> 3.8.0)
|
|
74
|
+
rspec-core (3.8.2)
|
|
75
|
+
rspec-support (~> 3.8.0)
|
|
76
|
+
rspec-expectations (3.8.4)
|
|
77
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
78
|
+
rspec-support (~> 3.8.0)
|
|
79
|
+
rspec-mocks (3.8.1)
|
|
80
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
81
|
+
rspec-support (~> 3.8.0)
|
|
82
|
+
rspec-support (3.8.2)
|
|
83
|
+
semver2 (3.4.2)
|
|
84
|
+
simplecov (0.17.1)
|
|
85
|
+
docile (~> 1.1)
|
|
86
|
+
json (>= 1.8, < 3)
|
|
87
|
+
simplecov-html (~> 0.10.0)
|
|
88
|
+
simplecov-html (0.10.2)
|
|
89
|
+
thread_safe (0.3.6)
|
|
90
|
+
twitter_oauth (0.4.94)
|
|
91
|
+
json (>= 1.8.0)
|
|
56
92
|
mime-types (>= 1.16)
|
|
57
|
-
oauth (>= 0.4.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
93
|
+
oauth (>= 0.4.7)
|
|
94
|
+
tzinfo (1.2.5)
|
|
95
|
+
thread_safe (~> 0.1)
|
|
96
|
+
whenever (1.0.0)
|
|
97
|
+
chronic (>= 0.6.3)
|
|
98
|
+
zeitwerk (2.1.10)
|
|
61
99
|
|
|
62
100
|
PLATFORMS
|
|
63
101
|
ruby
|
|
@@ -66,8 +104,16 @@ DEPENDENCIES
|
|
|
66
104
|
activesupport (>= 2.3.5)
|
|
67
105
|
bitly (>= 0.4.0)
|
|
68
106
|
jeweler (>= 0.11.0)
|
|
107
|
+
nokogiri (>= 1.10.4)
|
|
108
|
+
rack (~> 2.0.6)
|
|
69
109
|
rake
|
|
70
110
|
rspec (>= 2.0.0.beta.22)
|
|
71
111
|
simplecov
|
|
72
112
|
twitter_oauth (>= 0.3.3)
|
|
73
113
|
whenever (>= 0.4.1)
|
|
114
|
+
|
|
115
|
+
RUBY VERSION
|
|
116
|
+
ruby 2.6.3p62
|
|
117
|
+
|
|
118
|
+
BUNDLED WITH
|
|
119
|
+
2.0.2
|
data/History.rdoc
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
=== Version 0.3.3 / 2019-09-23
|
|
2
|
+
|
|
3
|
+
* Enhancements
|
|
4
|
+
* Update to latest rspec mock formatting
|
|
5
|
+
|
|
6
|
+
* Security
|
|
7
|
+
* Update gem dependencies due to known CVEs
|
|
8
|
+
|
|
9
|
+
=== Version 0.3.2 / 2013-01-29
|
|
10
|
+
|
|
11
|
+
* Enhancements
|
|
12
|
+
* Fix github repo links for new github username s/armmer/jmeridth
|
|
13
|
+
|
|
1
14
|
=== Version 0.3.1 / 2010-04-16
|
|
2
15
|
|
|
3
16
|
* Enhancements
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Twog
|
|
2
2
|
|
|
3
|
-
[](http://badge.fury.io/rb/twog)
|
|
4
|
+
[](https://github.com/jmeridth/twog/actions)
|
|
5
|
+
[](https://codeclimate.com/github/jmeridth/twog)
|
|
5
6
|
|
|
6
7
|
By Jason Meridth
|
|
7
8
|
|
|
@@ -69,9 +70,8 @@ Please check the [issues](http://github.com/jmeridth/twog/issues) on Github for
|
|
|
69
70
|
|
|
70
71
|
* Matt Dietz ([cerberus98](http://github.com/cerberus98)) special thanks
|
|
71
72
|
* Chris MacGown ([ChristopherMacGown](http://github.com/ChristopherMacGown))
|
|
72
|
-
* Paul Voccio ([pvo](http://github.com/pvo))
|
|
73
73
|
* Joe Ocampo ([agilejoe](http://github.com/agilejoe))
|
|
74
74
|
|
|
75
75
|
## Copyright
|
|
76
76
|
|
|
77
|
-
Copyright (c)
|
|
77
|
+
Copyright (c) 2019 Jason Meridth. See LICENSE for details.
|
data/VERSION.yml
CHANGED
data/spec/spec_helper.rb
CHANGED
|
@@ -25,24 +25,21 @@ end
|
|
|
25
25
|
|
|
26
26
|
def rss_feed_entry
|
|
27
27
|
entry=<<-EOS
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
</blockquote>
|
|
44
|
-
<p>That is true and that is life. I hope this helps someone understand that not all pair programming enthusiasts are zealots. I know it&#8217;s a fine line though.</p></content>
|
|
45
|
-
</entry>
|
|
28
|
+
<item>
|
|
29
|
+
<title>Gocode Vim Plugin and Go Modules</title>
|
|
30
|
+
<description>
|
|
31
|
+
<p><strong>Update</strong>: My friend <a href="https://twitter.com/_seemethere">Eli Uriegas</a> let me know that you don’t need <code class="highlighter-rouge">gocode</code> anymore since <code class="highlighter-rouge">vim-go</code> has autocompletion. I tested it out and he is correct. <a href="https://twitter.com/_seemethere/status/1081626050717728770">Here</a> is his tweet with a link to his dotfiles on how he sets up his <code class="highlighter-rouge">.vimrc</code> to use <code class="highlighter-rouge">vim-go</code></p> <p><em>Original Post:</em></p> <p>I recently purchased <a href="https://lets-go.alexedwards.net/">Let’s Go</a> from Alex Edwards. I wanted an end-to-end Golang website tutorial. It has been great. Lots learned.</p> <p>Unfortunately, he is using Go’s modules and the version of the gocode Vim plugin I was using did not support Go modules.</p> <h3 id="solution">Solution:</h3> <p>Use <a href="https://github.com/stamblerre/gocode">this fork</a> of the gocode Vim plugin and you’ll get support for Go modules.</p> <p>I use <a href="https://github.com/junegunn/vim-plug">Vim Plug</a> for my Vim plugins. Huge fan of Vundle but I like the post-actions feature of Plug. I just had to change one line of my vimrc and re-run updates.</p> <div class="language-diff highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gh">diff --git a/vimrc b/vimrc index 3e8edf1..8395705 100644 </span><span class="gd">--- a/vimrc </span><span class="gi">+++ b/vimrc </span><span class="gu">@@ -73,7 +73,7 @@ endif </span> let editor_name='nvim' Plug 'zchee/deoplete-go', { 'do': 'make'} endif <span class="gd">- Plug 'nsf/gocode', { 'rtp': 'vim', 'do': '~/.config/nvim/plugged/gocode/vim/symlink.sh' } </span><span class="gi">+ Plug 'stamblerre/gocode', { 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' } </span> Plug 'godoctor/godoctor.vim', {'for': 'go'} " Gocode refactoring tool " } </code></pre></div></div> <p>That is the line I had to change then run <code class="highlighter-rouge">:PlugUpdate!</code> and the new plugin was installed.</p> <p>I figured all of this out due to <a href="https://github.com/zchee/deoplete-go/issues/134#issuecomment-435436305">this comment</a> by <a href="https://github.com/cippaciong">Tommaso Sardelli</a> on Github. Thank you Tommaso.</p>
|
|
32
|
+
</description>
|
|
33
|
+
<pubDate>Sat, 05 Jan 2019 11:09:26 -0600</pubDate>
|
|
34
|
+
<link>
|
|
35
|
+
https://blog.jasonmeridth.com/posts/gocode-vim-plugin-and-go-modules/
|
|
36
|
+
</link>
|
|
37
|
+
<guid isPermaLink="true">
|
|
38
|
+
https://blog.jasonmeridth.com/posts/gocode-vim-plugin-and-go-modules/
|
|
39
|
+
</guid>
|
|
40
|
+
<category>go</category>
|
|
41
|
+
<category>vim</category>
|
|
42
|
+
</item>
|
|
46
43
|
EOS
|
|
47
44
|
return entry
|
|
48
45
|
end
|
|
@@ -53,20 +50,17 @@ def rss_entry
|
|
|
53
50
|
end
|
|
54
51
|
|
|
55
52
|
def rss_feed_url_content
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<name>Jason Meridth</name>
|
|
67
|
-
<email>jmeridth@gmail.com</email>
|
|
68
|
-
</author>
|
|
53
|
+
rss_header=<<-EOS
|
|
54
|
+
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
|
|
55
|
+
<channel>
|
|
56
|
+
<title>Learn, Converse, Share</title>
|
|
57
|
+
<description>My Personal Blog</description>
|
|
58
|
+
<link>https://blog.jasonmeridth.com/</link>
|
|
59
|
+
<atom:link href="https://blog.jasonmeridth.com/feed.xml" rel="self" type="application/rss+xml"/>
|
|
60
|
+
<pubDate>Fri, 01 Mar 2019 13:02:56 -0600</pubDate>
|
|
61
|
+
<lastBuildDate>Fri, 01 Mar 2019 13:02:56 -0600</lastBuildDate>
|
|
62
|
+
<generator>Jekyll v3.7.4</generator>
|
|
69
63
|
EOS
|
|
70
|
-
return "#{
|
|
64
|
+
return "#{rss_header}#{rss_feed_entry}</channel></rss>"
|
|
71
65
|
end
|
|
72
66
|
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
|
2
2
|
|
|
3
|
-
describe BlogPostsHandler do
|
|
3
|
+
describe BlogPostsHandler do
|
|
4
4
|
include BlogPostsHandler
|
|
5
5
|
|
|
6
6
|
before(:each) do
|
|
7
|
-
post = Twog::Post.new(
|
|
7
|
+
post = Twog::Post.new(double('', pubDate: Time.now, link: 'http://tinyurl.com'))
|
|
8
8
|
@posts = [post]
|
|
9
9
|
@last_blog_post_tweeted = test_conf['last_blog_post_tweeted']
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
it "should determine that there is one new blog post to tweet" do
|
|
13
13
|
posts = get_new_blog_posts(@posts, @last_blog_post_tweeted)
|
|
14
|
-
posts.length.
|
|
14
|
+
expect(posts.length).to eq(1)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "should return zero if posts are nil" do
|
|
18
18
|
posts = get_new_blog_posts(nil, @last_blog_post_tweeted)
|
|
19
|
-
posts.length.
|
|
19
|
+
expect(posts.length).to eq(0)
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
it "should return zero if no posts are passed" do
|
|
23
23
|
posts = get_new_blog_posts([], @last_blog_post_tweeted)
|
|
24
|
-
posts.length.
|
|
24
|
+
expect(posts.length).to eq(0)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
it "should return the posts if there is no last_blog_post_tweeted in the conf file" do
|
|
28
28
|
posts = get_new_blog_posts(@posts, nil)
|
|
29
|
-
posts.length.
|
|
29
|
+
expect(posts.length).to eq(1)
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
it "should return zero posts if the date is older than the last blog post date tweeted" do
|
|
33
|
-
post = Twog::Post.new(
|
|
33
|
+
post = Twog::Post.new(double('', pubDate: (Date.parse(@last_blog_post_tweeted.to_s) - 10).to_s, link: 'http://tinyurl.com'))
|
|
34
34
|
@posts = [post]
|
|
35
35
|
posts = get_new_blog_posts(@posts, @last_blog_post_tweeted)
|
|
36
|
-
posts.length.
|
|
36
|
+
expect(posts.length).to eq(0)
|
|
37
37
|
end
|
|
38
38
|
end
|
data/spec/twog/post_spec.rb
CHANGED
|
@@ -3,75 +3,75 @@ require File.join(File.dirname(__FILE__), "/../spec_helper")
|
|
|
3
3
|
describe Post do
|
|
4
4
|
context "when rss entry has updated and link.href" do
|
|
5
5
|
before(:each) do
|
|
6
|
-
updated =
|
|
7
|
-
link =
|
|
8
|
-
title =
|
|
9
|
-
@post =
|
|
6
|
+
updated =double('update', content: '2010-04-02T01:00:00-06:00')
|
|
7
|
+
link = double('link', href: 'http://tinyurl.com')
|
|
8
|
+
title = double('title', content: 'test title')
|
|
9
|
+
@post = double('post', updated: updated, link: link, title: title)
|
|
10
10
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should return a link" do
|
|
14
14
|
twog_post = Twog::Post.new(@post)
|
|
15
|
-
twog_post.date.
|
|
15
|
+
expect(twog_post.date).to eq("2010-04-02T01:00:00-06:00")
|
|
16
16
|
end
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
it "should return a date" do
|
|
19
19
|
twog_post = Twog::Post.new(@post)
|
|
20
|
-
twog_post.date.
|
|
20
|
+
expect(twog_post.date).to eq("2010-04-02T01:00:00-06:00")
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "should return a title" do
|
|
24
24
|
twog_post = Twog::Post.new(@post)
|
|
25
|
-
twog_post.title.
|
|
25
|
+
expect(twog_post.title).to eq("test title")
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
it "should sort multiple posts" do
|
|
29
29
|
unsorted = (1..10).sort_by { rand }.collect do |i|
|
|
30
|
-
updated =
|
|
31
|
-
link =
|
|
32
|
-
post =
|
|
30
|
+
updated = double('update', content: (Time.now + (60*60*24*i)).to_s)
|
|
31
|
+
link = double('link', href: 'http://tinyurl.com')
|
|
32
|
+
post = double('post', updated: updated, link: link)
|
|
33
33
|
Twog::Post.new(post)
|
|
34
34
|
end
|
|
35
35
|
sorted = unsorted.sort!
|
|
36
|
-
sorted.length.
|
|
36
|
+
expect(sorted.length).to eq(10)
|
|
37
37
|
|
|
38
|
-
sorted.inject {|i, j| Time.parse(i.date.to_s).
|
|
38
|
+
sorted.inject {|i, j| expect(Time.parse(i.date.to_s)).to be < Time.parse(j.date.to_s); j }
|
|
39
39
|
end
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
it "should leave meeting list alone if all the times are the same" do
|
|
42
42
|
unsorted = (1..10).collect do |i|
|
|
43
|
-
updated =
|
|
44
|
-
link =
|
|
45
|
-
post =
|
|
43
|
+
updated = double('update', content: (Time.now + (60*60*24*3)).to_s)
|
|
44
|
+
link = double('link', href: 'http://tinyurl.com')
|
|
45
|
+
post = double('post', updated: updated, link: link)
|
|
46
46
|
Twog::Post.new(post)
|
|
47
47
|
end
|
|
48
48
|
sorted = unsorted.sort!
|
|
49
|
-
sorted.length.
|
|
50
|
-
sorted.
|
|
49
|
+
expect(sorted.length).to eq(10)
|
|
50
|
+
expect(sorted).to eq(unsorted)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
context "when rss entry has pubDate and link" do
|
|
55
55
|
before(:each) do
|
|
56
|
-
@post =
|
|
56
|
+
@post = double('post', pubDate: '2010-04-02T01:00:00-06:00', link: 'http://tinyurl.com')
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
it "should return a link" do
|
|
60
60
|
twog_post = Twog::Post.new(@post)
|
|
61
61
|
|
|
62
|
-
twog_post.link.
|
|
63
|
-
twog_post.date.
|
|
62
|
+
expect(twog_post.link).to eq("http://tinyurl.com")
|
|
63
|
+
expect(twog_post.date).to eq("2010-04-02T01:00:00-06:00")
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
it "should sort multiple posts again" do
|
|
67
67
|
unsorted = (1..10).sort_by { rand }.collect do |i|
|
|
68
|
-
post =
|
|
68
|
+
post = double('post', pubDate: (Time.now + (60*60*24*i)).to_s, link: 'http://tinyurl.com')
|
|
69
69
|
Twog::Post.new(post)
|
|
70
70
|
end
|
|
71
71
|
sorted = unsorted.sort!
|
|
72
|
-
sorted.length.
|
|
72
|
+
expect(sorted.length).to eq(10)
|
|
73
73
|
|
|
74
|
-
sorted.inject {|i, j| Time.parse(i.date.to_s).
|
|
74
|
+
sorted.inject {|i, j| expect(Time.parse(i.date.to_s)).to be < Time.parse(j.date.to_s); j }
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
end
|
|
@@ -4,29 +4,29 @@ describe RssEntryToTwogPostMapper do
|
|
|
4
4
|
include RssEntryToTwogPostMapper
|
|
5
5
|
|
|
6
6
|
it "should convert rss entries that have updated.content and link.href" do
|
|
7
|
-
updated =
|
|
8
|
-
link =
|
|
9
|
-
post =
|
|
10
|
-
|
|
7
|
+
updated = double('update', content: '2010-04-02T01:00:00-06:00')
|
|
8
|
+
link = double('link', href: 'http://tinyurl.com')
|
|
9
|
+
post = double('post', updated: updated, link: link)
|
|
10
|
+
|
|
11
11
|
posts = (0..20).collect { |x| post }
|
|
12
12
|
|
|
13
13
|
twog_posts = map(posts)
|
|
14
|
-
twog_posts.length.
|
|
14
|
+
expect(twog_posts.length).to eq(21)
|
|
15
15
|
twog_posts.each do |p|
|
|
16
|
-
p.date.
|
|
17
|
-
p.link.
|
|
16
|
+
expect(p.date).to eq("2010-04-02T01:00:00-06:00")
|
|
17
|
+
expect(p.link).to eq("http://tinyurl.com")
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
it "should convert rss entries that have pubDate and link" do
|
|
22
|
-
post =
|
|
22
|
+
post = double('post', pubDate: '2010-04-02T01:00:00-06:00', link: 'http://tinyurl.com')
|
|
23
23
|
posts = (0..20).collect { |x| post }
|
|
24
24
|
|
|
25
25
|
twog_posts = map(posts)
|
|
26
|
-
twog_posts.length.
|
|
26
|
+
expect(twog_posts.length).to eq(21)
|
|
27
27
|
twog_posts.each do |p|
|
|
28
|
-
p.date.
|
|
29
|
-
p.link.
|
|
28
|
+
expect(p.date).to eq("2010-04-02T01:00:00-06:00")
|
|
29
|
+
expect(p.link).to eq("http://tinyurl.com")
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
|
2
2
|
|
|
3
|
-
describe RssParser do
|
|
3
|
+
describe RssParser do
|
|
4
4
|
include RssParser
|
|
5
5
|
|
|
6
6
|
it "should throw exception if rss_feed isn't provided" do
|
|
7
|
-
|
|
7
|
+
expect{ parse_feed(nil)}.to raise_error('RSS feed missing')
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "should read the rss_feed_url and parse the items" do
|
|
11
|
-
self.
|
|
12
|
-
items = parse_feed(
|
|
13
|
-
items.length.
|
|
14
|
-
items[0].title.
|
|
15
|
-
items[0].link.
|
|
11
|
+
allow(self).to receive(:get_content).and_return(rss_feed_url_content)
|
|
12
|
+
items = parse_feed('http://tinyurl.com')
|
|
13
|
+
expect(items.length).to eq(1)
|
|
14
|
+
expect(items[0].title.strip).to eq("Gocode Vim Plugin and Go Modules")
|
|
15
|
+
expect(items[0].link.strip).to eq("https://blog.jasonmeridth.com/posts/gocode-vim-plugin-and-go-modules/")
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__), "/../spec_helper")
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
describe TwitterHandler do
|
|
4
|
+
describe TwitterHandler do
|
|
5
5
|
include TwitterHandler
|
|
6
6
|
|
|
7
7
|
before(:each) do
|
|
8
|
-
@posts = [
|
|
8
|
+
@posts = [double('post', date: Time.now, link: 'http://bit.ly/Afr8s9')]
|
|
9
9
|
@conf = test_conf
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
it "should do nothing if no posts are provided" do
|
|
13
13
|
tweet(nil, nil, nil)
|
|
14
14
|
tweet([], nil, nil)
|
|
@@ -16,43 +16,43 @@ describe TwitterHandler do
|
|
|
16
16
|
|
|
17
17
|
it "should throw exception if oauth consumer key isn't provided" do
|
|
18
18
|
@conf['consumer_key'] = nil
|
|
19
|
-
|
|
19
|
+
expect{tweet(@posts, @conf, nil)}.to raise_error('OAuth Consumer Key missing')
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
it "should throw exception if oauth consumer secret isn't provided" do
|
|
23
23
|
@conf['consumer_secret'] = nil
|
|
24
|
-
|
|
24
|
+
expect{tweet(@posts, @conf, nil)}.to raise_error('OAuth Consumer Secret missing')
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
it "should throw exception if oauth access token isn't provided" do
|
|
28
28
|
@conf['access_token'] = nil
|
|
29
|
-
|
|
29
|
+
expect{tweet(@posts, @conf, nil)}.to raise_error('OAuth Access Token missing')
|
|
30
30
|
end
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
it "should throw exception if oauth access secret isn't provided" do
|
|
33
33
|
@conf['access_secret'] = nil
|
|
34
|
-
|
|
34
|
+
expect{tweet(@posts, @conf, nil)}.to raise_error('OAuth Access Secret missing')
|
|
35
35
|
end
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
it "should shorten the blog post url with bitly when bitly handler is provided" do
|
|
38
|
-
bitly =
|
|
39
|
-
bitly_url =
|
|
40
|
-
bitly.
|
|
41
|
-
bitly_url.
|
|
42
|
-
self.
|
|
43
|
-
self.
|
|
38
|
+
bitly = double 'bitly'
|
|
39
|
+
bitly_url = double 'bitly_url'
|
|
40
|
+
allow(bitly).to receive(:shorten).and_return(bitly_url)
|
|
41
|
+
allow(bitly_url).to receive(:short_url)
|
|
42
|
+
allow(self).to receive(:use_twitter_oauth)
|
|
43
|
+
allow(self).to receive(:update_config_file_with_latest_tweet_date)
|
|
44
44
|
tweet(@posts, @conf, bitly)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
it "should make sure the text that is tweeted is at or less than 140 chars when the title is at or greater than 140 chars" do
|
|
48
|
-
text = ensure_text_is_of_length(140, "1234567890"*14, "http://bit.ly/Afr8s9")
|
|
49
|
-
text.
|
|
50
|
-
text.length.
|
|
48
|
+
text = ensure_text_is_of_length(140, "1234567890"*14, "http://bit.ly/Afr8s9")
|
|
49
|
+
expect(text).to eq("blogged: 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 http://bit.ly/Afr8s9")
|
|
50
|
+
expect(text.length).to eq(140)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
it "should make sure the text that is tweeted is at or less than 140 chars when the title is less than 140 chars" do
|
|
54
|
-
text = ensure_text_is_of_length(140, "1234567890", "http://bit.ly/Afr8s9")
|
|
55
|
-
text.
|
|
56
|
-
text.length.
|
|
54
|
+
text = ensure_text_is_of_length(140, "1234567890", "http://bit.ly/Afr8s9")
|
|
55
|
+
expect(text).to eq("blogged: 1234567890 http://bit.ly/Afr8s9")
|
|
56
|
+
expect(text.length).to eq(40)
|
|
57
57
|
end
|
|
58
58
|
end
|
data/spec/twog/twog_spec.rb
CHANGED
|
@@ -1,52 +1,43 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__),
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../spec_helper')
|
|
2
2
|
|
|
3
|
-
describe Twog do
|
|
3
|
+
describe Twog do
|
|
4
4
|
include Twog::Twog
|
|
5
5
|
|
|
6
|
-
it
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
it 'should not tweet if there are no new blog posts' do
|
|
7
|
+
allow(self).to receive(:get_posts_to_tweet).with(test_conf).and_return([])
|
|
8
|
+
allow(self).to receive(:tweet).and_return(1)
|
|
9
9
|
result = run(test_conf)
|
|
10
|
-
result.
|
|
10
|
+
expect(result).to be_nil
|
|
11
11
|
end
|
|
12
|
-
|
|
13
|
-
it
|
|
12
|
+
|
|
13
|
+
it 'should parse the rss feed and tweet new blog posts' do
|
|
14
14
|
entry = rss_entry
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
allow(self).to receive(:get_posts_to_tweet).with(test_conf).and_return([entry])
|
|
16
|
+
allow(self).to receive(:get_bitly_from)
|
|
17
|
+
allow(self).to receive(:tweet).and_return(1)
|
|
18
18
|
result = run(test_conf)
|
|
19
|
-
result.
|
|
19
|
+
expect(result).to eq(1)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
it
|
|
22
|
+
it 'should return nil if bitly username is nil' do
|
|
23
23
|
conf = test_conf
|
|
24
24
|
conf['bitly_username'] = nil
|
|
25
|
-
get_bitly_from(conf).
|
|
25
|
+
expect(get_bitly_from(conf)).to be_nil
|
|
26
26
|
end
|
|
27
|
-
|
|
28
|
-
it
|
|
27
|
+
|
|
28
|
+
it 'should return nil if bitly api key is nil' do
|
|
29
29
|
conf = test_conf
|
|
30
30
|
conf['bitly_username'] = nil
|
|
31
|
-
get_bitly_from(conf).
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "should return nil if bitly api key is nil" do
|
|
35
|
-
Bitly.stub!(:new).and_return("hello")
|
|
36
|
-
get_bitly_from(test_conf).should == "hello"
|
|
31
|
+
expect(get_bitly_from(conf)).to be_nil
|
|
37
32
|
end
|
|
38
33
|
|
|
39
|
-
it
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
it 'should return nil if bitly api key is nil' do
|
|
35
|
+
allow(Bitly).to receive(:new).and_return('hello')
|
|
36
|
+
expect(get_bitly_from(test_conf)).to eq('hello')
|
|
42
37
|
end
|
|
43
38
|
|
|
44
|
-
it
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
self.should_receive(:map).with(1).and_return(2)
|
|
48
|
-
self.should_receive(:get_new_blog_posts).with(2, conf['last_blog_post_tweeted'])
|
|
49
|
-
|
|
50
|
-
get_posts_to_tweet(conf)
|
|
39
|
+
it 'should get the version' do
|
|
40
|
+
allow(YAML).to receive(:load).and_return({major: '1', minor:'0', patch: '0'})
|
|
41
|
+
expect(version).to eq('1.0.0')
|
|
51
42
|
end
|
|
52
43
|
end
|
data/twog.gemspec
CHANGED
|
@@ -2,24 +2,27 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
+
# stub: twog 0.3.3 ruby lib
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name = "twog"
|
|
8
|
-
s.version = "0.3.
|
|
8
|
+
s.name = "twog".freeze
|
|
9
|
+
s.version = "0.3.3"
|
|
9
10
|
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
-
s.
|
|
12
|
-
s.
|
|
13
|
-
s.
|
|
14
|
-
s.
|
|
15
|
-
s.
|
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib".freeze]
|
|
13
|
+
s.authors = ["Jason Meridth".freeze]
|
|
14
|
+
s.date = "2019-09-23"
|
|
15
|
+
s.description = "Tool to tweet blog posts".freeze
|
|
16
|
+
s.email = ["jmeridth@gmail.com".freeze]
|
|
17
|
+
s.executables = ["twog".freeze]
|
|
16
18
|
s.extra_rdoc_files = [
|
|
17
19
|
"LICENSE",
|
|
18
20
|
"README.md"
|
|
19
21
|
]
|
|
20
22
|
s.files = [
|
|
21
|
-
".
|
|
22
|
-
".
|
|
23
|
+
".github/workflows/ruby.yml",
|
|
24
|
+
".ruby-gemset",
|
|
25
|
+
".ruby-version",
|
|
23
26
|
"Gemfile",
|
|
24
27
|
"Gemfile.lock",
|
|
25
28
|
"History.rdoc",
|
|
@@ -43,55 +46,47 @@ Gem::Specification.new do |s|
|
|
|
43
46
|
"spec/twog/twog_spec.rb",
|
|
44
47
|
"twog.gemspec"
|
|
45
48
|
]
|
|
46
|
-
s.homepage = "http://github.com/jmeridth/twog"
|
|
47
|
-
s.
|
|
48
|
-
s.
|
|
49
|
-
s.rubygems_version = "1.8.24"
|
|
50
|
-
s.summary = "Tool to tweet blog posts"
|
|
49
|
+
s.homepage = "http://github.com/jmeridth/twog".freeze
|
|
50
|
+
s.rubygems_version = "3.0.3".freeze
|
|
51
|
+
s.summary = "Tool to tweet blog posts".freeze
|
|
51
52
|
|
|
52
53
|
if s.respond_to? :specification_version then
|
|
53
|
-
s.specification_version =
|
|
54
|
+
s.specification_version = 4
|
|
54
55
|
|
|
55
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
56
|
-
s.add_runtime_dependency(%q<
|
|
57
|
-
s.add_runtime_dependency(%q<
|
|
58
|
-
s.add_runtime_dependency(%q<
|
|
59
|
-
s.add_runtime_dependency(%q<
|
|
60
|
-
s.add_runtime_dependency(%q<
|
|
61
|
-
s.
|
|
62
|
-
s.
|
|
63
|
-
s.add_development_dependency(%q<
|
|
64
|
-
s.
|
|
65
|
-
s.
|
|
66
|
-
s.add_runtime_dependency(%q<whenever>, [">= 0.4.1"])
|
|
67
|
-
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.5"])
|
|
57
|
+
s.add_runtime_dependency(%q<rack>.freeze, ["~> 2.0.6"])
|
|
58
|
+
s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.10.4"])
|
|
59
|
+
s.add_runtime_dependency(%q<twitter_oauth>.freeze, [">= 0.3.3"])
|
|
60
|
+
s.add_runtime_dependency(%q<bitly>.freeze, [">= 0.4.0"])
|
|
61
|
+
s.add_runtime_dependency(%q<whenever>.freeze, [">= 0.4.1"])
|
|
62
|
+
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 2.3.5"])
|
|
63
|
+
s.add_runtime_dependency(%q<jeweler>.freeze, [">= 0.11.0"])
|
|
64
|
+
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
|
65
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 2.0.0.beta.22"])
|
|
66
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
68
67
|
else
|
|
69
|
-
s.add_dependency(%q<
|
|
70
|
-
s.add_dependency(%q<
|
|
71
|
-
s.add_dependency(%q<
|
|
72
|
-
s.add_dependency(%q<
|
|
73
|
-
s.add_dependency(%q<
|
|
74
|
-
s.add_dependency(%q<
|
|
75
|
-
s.add_dependency(%q<
|
|
76
|
-
s.add_dependency(%q<
|
|
77
|
-
s.add_dependency(%q<
|
|
78
|
-
s.add_dependency(%q<
|
|
79
|
-
s.add_dependency(%q<whenever>, [">= 0.4.1"])
|
|
80
|
-
s.add_dependency(%q<activesupport>, [">= 2.3.5"])
|
|
68
|
+
s.add_dependency(%q<rack>.freeze, ["~> 2.0.6"])
|
|
69
|
+
s.add_dependency(%q<nokogiri>.freeze, [">= 1.10.4"])
|
|
70
|
+
s.add_dependency(%q<twitter_oauth>.freeze, [">= 0.3.3"])
|
|
71
|
+
s.add_dependency(%q<bitly>.freeze, [">= 0.4.0"])
|
|
72
|
+
s.add_dependency(%q<whenever>.freeze, [">= 0.4.1"])
|
|
73
|
+
s.add_dependency(%q<activesupport>.freeze, [">= 2.3.5"])
|
|
74
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0.11.0"])
|
|
75
|
+
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
|
76
|
+
s.add_dependency(%q<rspec>.freeze, [">= 2.0.0.beta.22"])
|
|
77
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
81
78
|
end
|
|
82
79
|
else
|
|
83
|
-
s.add_dependency(%q<
|
|
84
|
-
s.add_dependency(%q<
|
|
85
|
-
s.add_dependency(%q<
|
|
86
|
-
s.add_dependency(%q<
|
|
87
|
-
s.add_dependency(%q<
|
|
88
|
-
s.add_dependency(%q<
|
|
89
|
-
s.add_dependency(%q<
|
|
90
|
-
s.add_dependency(%q<
|
|
91
|
-
s.add_dependency(%q<
|
|
92
|
-
s.add_dependency(%q<
|
|
93
|
-
s.add_dependency(%q<whenever>, [">= 0.4.1"])
|
|
94
|
-
s.add_dependency(%q<activesupport>, [">= 2.3.5"])
|
|
80
|
+
s.add_dependency(%q<rack>.freeze, ["~> 2.0.6"])
|
|
81
|
+
s.add_dependency(%q<nokogiri>.freeze, [">= 1.10.4"])
|
|
82
|
+
s.add_dependency(%q<twitter_oauth>.freeze, [">= 0.3.3"])
|
|
83
|
+
s.add_dependency(%q<bitly>.freeze, [">= 0.4.0"])
|
|
84
|
+
s.add_dependency(%q<whenever>.freeze, [">= 0.4.1"])
|
|
85
|
+
s.add_dependency(%q<activesupport>.freeze, [">= 2.3.5"])
|
|
86
|
+
s.add_dependency(%q<jeweler>.freeze, [">= 0.11.0"])
|
|
87
|
+
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
|
88
|
+
s.add_dependency(%q<rspec>.freeze, [">= 2.0.0.beta.22"])
|
|
89
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
95
90
|
end
|
|
96
91
|
end
|
|
97
92
|
|
metadata
CHANGED
|
@@ -1,208 +1,155 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: twog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.3.3
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Jason Meridth
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2019-09-23 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rack
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 2.0.6
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 2.0.6
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: nokogiri
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.10.4
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 1.10.4
|
|
14
41
|
- !ruby/object:Gem::Dependency
|
|
15
42
|
name: twitter_oauth
|
|
16
43
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
44
|
requirements:
|
|
19
|
-
- -
|
|
45
|
+
- - ">="
|
|
20
46
|
- !ruby/object:Gem::Version
|
|
21
47
|
version: 0.3.3
|
|
22
48
|
type: :runtime
|
|
23
49
|
prerelease: false
|
|
24
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
51
|
requirements:
|
|
27
|
-
- -
|
|
52
|
+
- - ">="
|
|
28
53
|
- !ruby/object:Gem::Version
|
|
29
54
|
version: 0.3.3
|
|
30
55
|
- !ruby/object:Gem::Dependency
|
|
31
56
|
name: bitly
|
|
32
57
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
58
|
requirements:
|
|
35
|
-
- -
|
|
59
|
+
- - ">="
|
|
36
60
|
- !ruby/object:Gem::Version
|
|
37
61
|
version: 0.4.0
|
|
38
62
|
type: :runtime
|
|
39
63
|
prerelease: false
|
|
40
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
65
|
requirements:
|
|
43
|
-
- -
|
|
66
|
+
- - ">="
|
|
44
67
|
- !ruby/object:Gem::Version
|
|
45
68
|
version: 0.4.0
|
|
46
69
|
- !ruby/object:Gem::Dependency
|
|
47
70
|
name: whenever
|
|
48
71
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
72
|
requirements:
|
|
51
|
-
- -
|
|
73
|
+
- - ">="
|
|
52
74
|
- !ruby/object:Gem::Version
|
|
53
75
|
version: 0.4.1
|
|
54
76
|
type: :runtime
|
|
55
77
|
prerelease: false
|
|
56
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
79
|
requirements:
|
|
59
|
-
- -
|
|
80
|
+
- - ">="
|
|
60
81
|
- !ruby/object:Gem::Version
|
|
61
82
|
version: 0.4.1
|
|
62
83
|
- !ruby/object:Gem::Dependency
|
|
63
84
|
name: activesupport
|
|
64
85
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
86
|
requirements:
|
|
67
|
-
- -
|
|
87
|
+
- - ">="
|
|
68
88
|
- !ruby/object:Gem::Version
|
|
69
89
|
version: 2.3.5
|
|
70
90
|
type: :runtime
|
|
71
91
|
prerelease: false
|
|
72
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
93
|
requirements:
|
|
75
|
-
- -
|
|
94
|
+
- - ">="
|
|
76
95
|
- !ruby/object:Gem::Version
|
|
77
96
|
version: 2.3.5
|
|
78
97
|
- !ruby/object:Gem::Dependency
|
|
79
98
|
name: jeweler
|
|
80
99
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
100
|
requirements:
|
|
83
|
-
- -
|
|
101
|
+
- - ">="
|
|
84
102
|
- !ruby/object:Gem::Version
|
|
85
103
|
version: 0.11.0
|
|
86
104
|
type: :runtime
|
|
87
105
|
prerelease: false
|
|
88
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
107
|
requirements:
|
|
91
|
-
- -
|
|
108
|
+
- - ">="
|
|
92
109
|
- !ruby/object:Gem::Version
|
|
93
110
|
version: 0.11.0
|
|
94
111
|
- !ruby/object:Gem::Dependency
|
|
95
112
|
name: rake
|
|
96
113
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
114
|
requirements:
|
|
99
|
-
- -
|
|
115
|
+
- - ">="
|
|
100
116
|
- !ruby/object:Gem::Version
|
|
101
117
|
version: '0'
|
|
102
118
|
type: :development
|
|
103
119
|
prerelease: false
|
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
121
|
requirements:
|
|
107
|
-
- -
|
|
122
|
+
- - ">="
|
|
108
123
|
- !ruby/object:Gem::Version
|
|
109
124
|
version: '0'
|
|
110
125
|
- !ruby/object:Gem::Dependency
|
|
111
126
|
name: rspec
|
|
112
127
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
128
|
requirements:
|
|
115
|
-
- -
|
|
129
|
+
- - ">="
|
|
116
130
|
- !ruby/object:Gem::Version
|
|
117
131
|
version: 2.0.0.beta.22
|
|
118
132
|
type: :development
|
|
119
133
|
prerelease: false
|
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
135
|
requirements:
|
|
123
|
-
- -
|
|
136
|
+
- - ">="
|
|
124
137
|
- !ruby/object:Gem::Version
|
|
125
138
|
version: 2.0.0.beta.22
|
|
126
139
|
- !ruby/object:Gem::Dependency
|
|
127
140
|
name: simplecov
|
|
128
141
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
142
|
requirements:
|
|
131
|
-
- -
|
|
143
|
+
- - ">="
|
|
132
144
|
- !ruby/object:Gem::Version
|
|
133
145
|
version: '0'
|
|
134
146
|
type: :development
|
|
135
147
|
prerelease: false
|
|
136
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
149
|
requirements:
|
|
139
|
-
- -
|
|
150
|
+
- - ">="
|
|
140
151
|
- !ruby/object:Gem::Version
|
|
141
152
|
version: '0'
|
|
142
|
-
- !ruby/object:Gem::Dependency
|
|
143
|
-
name: twitter_oauth
|
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
|
-
requirements:
|
|
147
|
-
- - ! '>='
|
|
148
|
-
- !ruby/object:Gem::Version
|
|
149
|
-
version: 0.3.3
|
|
150
|
-
type: :runtime
|
|
151
|
-
prerelease: false
|
|
152
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
|
-
requirements:
|
|
155
|
-
- - ! '>='
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: 0.3.3
|
|
158
|
-
- !ruby/object:Gem::Dependency
|
|
159
|
-
name: bitly
|
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
|
-
requirements:
|
|
163
|
-
- - ! '>='
|
|
164
|
-
- !ruby/object:Gem::Version
|
|
165
|
-
version: 0.4.0
|
|
166
|
-
type: :runtime
|
|
167
|
-
prerelease: false
|
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
|
-
requirements:
|
|
171
|
-
- - ! '>='
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: 0.4.0
|
|
174
|
-
- !ruby/object:Gem::Dependency
|
|
175
|
-
name: whenever
|
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
|
-
requirements:
|
|
179
|
-
- - ! '>='
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
version: 0.4.1
|
|
182
|
-
type: :runtime
|
|
183
|
-
prerelease: false
|
|
184
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
|
-
requirements:
|
|
187
|
-
- - ! '>='
|
|
188
|
-
- !ruby/object:Gem::Version
|
|
189
|
-
version: 0.4.1
|
|
190
|
-
- !ruby/object:Gem::Dependency
|
|
191
|
-
name: activesupport
|
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
|
193
|
-
none: false
|
|
194
|
-
requirements:
|
|
195
|
-
- - ! '>='
|
|
196
|
-
- !ruby/object:Gem::Version
|
|
197
|
-
version: 2.3.5
|
|
198
|
-
type: :runtime
|
|
199
|
-
prerelease: false
|
|
200
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
201
|
-
none: false
|
|
202
|
-
requirements:
|
|
203
|
-
- - ! '>='
|
|
204
|
-
- !ruby/object:Gem::Version
|
|
205
|
-
version: 2.3.5
|
|
206
153
|
description: Tool to tweet blog posts
|
|
207
154
|
email:
|
|
208
155
|
- jmeridth@gmail.com
|
|
@@ -213,8 +160,9 @@ extra_rdoc_files:
|
|
|
213
160
|
- LICENSE
|
|
214
161
|
- README.md
|
|
215
162
|
files:
|
|
216
|
-
- .
|
|
217
|
-
- .
|
|
163
|
+
- ".github/workflows/ruby.yml"
|
|
164
|
+
- ".ruby-gemset"
|
|
165
|
+
- ".ruby-version"
|
|
218
166
|
- Gemfile
|
|
219
167
|
- Gemfile.lock
|
|
220
168
|
- History.rdoc
|
|
@@ -239,29 +187,24 @@ files:
|
|
|
239
187
|
- twog.gemspec
|
|
240
188
|
homepage: http://github.com/jmeridth/twog
|
|
241
189
|
licenses: []
|
|
190
|
+
metadata: {}
|
|
242
191
|
post_install_message:
|
|
243
192
|
rdoc_options: []
|
|
244
193
|
require_paths:
|
|
245
194
|
- lib
|
|
246
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
247
|
-
none: false
|
|
248
196
|
requirements:
|
|
249
|
-
- -
|
|
197
|
+
- - ">="
|
|
250
198
|
- !ruby/object:Gem::Version
|
|
251
199
|
version: '0'
|
|
252
|
-
segments:
|
|
253
|
-
- 0
|
|
254
|
-
hash: -2591306887136186329
|
|
255
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
|
-
none: false
|
|
257
201
|
requirements:
|
|
258
|
-
- -
|
|
202
|
+
- - ">="
|
|
259
203
|
- !ruby/object:Gem::Version
|
|
260
204
|
version: '0'
|
|
261
205
|
requirements: []
|
|
262
|
-
|
|
263
|
-
rubygems_version: 1.8.24
|
|
206
|
+
rubygems_version: 3.0.3
|
|
264
207
|
signing_key:
|
|
265
|
-
specification_version:
|
|
208
|
+
specification_version: 4
|
|
266
209
|
summary: Tool to tweet blog posts
|
|
267
210
|
test_files: []
|
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm --create use ruby-1.9.2-p290@blog
|
data/.travis.yml
DELETED