automatic 14.1.0 → 14.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -2
- data/README.md +2 -2
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/automatic.gemspec +17 -9
- data/bin/automatic +4 -4
- data/doc/ChangeLog +27 -0
- data/doc/PLUGINS +36 -6
- data/doc/PLUGINS.ja +35 -7
- data/doc/README +4 -4
- data/doc/README.ja +3 -3
- data/lib/automatic.rb +2 -1
- data/lib/automatic/feed_maker.rb +80 -0
- data/lib/automatic/feed_parser.rb +6 -50
- data/lib/automatic/recipe.rb +1 -1
- data/lib/automatic/version.rb +1 -1
- data/plugins/filter/accept.rb +4 -3
- data/plugins/filter/github_feed.rb +12 -11
- data/plugins/filter/ignore.rb +3 -3
- data/plugins/filter/image_source.rb +10 -10
- data/plugins/filter/one.rb +4 -3
- data/plugins/filter/rand.rb +3 -3
- data/plugins/filter/sanitize.rb +2 -3
- data/plugins/provide/fluentd.rb +5 -4
- data/plugins/publish/amazon_s3.rb +58 -0
- data/plugins/publish/fluentd.rb +5 -4
- data/plugins/publish/google_calendar.rb +2 -2
- data/plugins/publish/hipchat.rb +1 -1
- data/plugins/publish/twitter.rb +1 -1
- data/plugins/store/database.rb +4 -4
- data/plugins/store/file.rb +95 -0
- data/plugins/store/full_text.rb +1 -1
- data/plugins/store/permalink.rb +1 -1
- data/plugins/subscription/feed.rb +2 -2
- data/plugins/subscription/g_guide.rb +3 -2
- data/plugins/subscription/link.rb +4 -3
- data/plugins/subscription/pocket.rb +12 -11
- data/plugins/subscription/text.rb +35 -44
- data/plugins/subscription/tumblr.rb +3 -3
- data/plugins/subscription/twitter.rb +1 -1
- data/plugins/subscription/twitter_search.rb +11 -12
- data/plugins/subscription/weather.rb +7 -6
- data/plugins/subscription/xml.rb +4 -3
- data/spec/fixtures/sampleFeeds.tsv +1 -0
- data/spec/fixtures/sampleFeeds2.tsv +2 -0
- data/spec/lib/automatic/pipeline_spec.rb +4 -4
- data/spec/lib/automatic_spec.rb +3 -3
- data/spec/plugins/filter/github_feed_spec.rb +9 -8
- data/spec/plugins/filter/image_source_spec.rb +7 -7
- data/spec/plugins/notify/ikachan_spec.rb +3 -3
- data/spec/plugins/provide/fluentd_spec.rb +6 -5
- data/spec/plugins/publish/amazon_s3_spec.rb +40 -0
- data/spec/plugins/publish/console_spec.rb +3 -3
- data/spec/plugins/publish/fluentd_spec.rb +5 -4
- data/spec/plugins/publish/google_calendar_spec.rb +5 -5
- data/spec/plugins/publish/hatena_bookmark_spec.rb +10 -10
- data/spec/plugins/publish/hipchat_spec.rb +6 -6
- data/spec/plugins/publish/instapaper_spec.rb +6 -6
- data/spec/plugins/publish/memcached_spec.rb +3 -3
- data/spec/plugins/publish/pocket_spec.rb +3 -3
- data/spec/plugins/publish/twitter_spec.rb +4 -4
- data/spec/plugins/store/{target_link_spec.rb → file_spec.rb} +10 -10
- data/spec/plugins/subscription/pocket_spec.rb +3 -3
- data/spec/plugins/subscription/text_spec.rb +32 -2
- data/spec/plugins/subscription/twitter_search_spec.rb +3 -3
- data/test/integration/test_fluentd.yml +1 -0
- data/test/integration/test_image2local.yml +6 -2
- data/test/integration/test_text2feed.yml +8 -0
- data/test/integration/test_tumblr2local.yml +6 -0
- metadata +26 -7
- data/plugins/store/target_link.rb +0 -55
@@ -1,8 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Subscription::TwitterSearch
|
3
3
|
# Author:: soramugi <http://soramugi.net>
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: May 30, 2013
|
5
|
-
# Updated::
|
6
|
+
# Updated:: Feb 21, 2014
|
6
7
|
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
@@ -26,19 +27,17 @@ module Automatic::Plugin
|
|
26
27
|
retries = 0
|
27
28
|
retry_max = @config['retry'].to_i || 0
|
28
29
|
begin
|
29
|
-
|
30
|
+
return_feeds = []
|
30
31
|
@client.search(@config['search'],@config['opt']).results.each do |status|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
feeds << dummy
|
32
|
+
hashie = Hashie::Mash.new
|
33
|
+
hashie.title = 'Twitter Search'
|
34
|
+
hashie.link = "https://twitter.com/#{status.user['screen_name']}/status/#{status.id}"
|
35
|
+
hashie.description = status.text
|
36
|
+
hashie.author = status.user['screen_name']
|
37
|
+
hashie.date = status.created_at
|
38
|
+
return_feeds << hashie
|
40
39
|
end
|
41
|
-
@pipeline << Automatic::
|
40
|
+
@pipeline << Automatic::FeedMaker.create_pipeline(return_feeds)
|
42
41
|
rescue
|
43
42
|
retries += 1
|
44
43
|
Automatic::Log.puts("error", "ErrorCount: #{retries}")
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Subscription::Weather
|
3
3
|
# Author:: soramugi <http://soramugi.net>
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: May 12, 2013
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
6
|
+
# Updated:: Feb 21, 2014
|
7
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
9
10
|
module Automatic::Plugin
|
@@ -21,10 +22,10 @@ module Automatic::Plugin
|
|
21
22
|
def run
|
22
23
|
weather = @weather.send(@day)['weather'] unless @weather.send(@day).nil?
|
23
24
|
if weather != nil
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
@pipeline << Automatic::
|
25
|
+
hashie = Hashie::Mash.new
|
26
|
+
hashie.title = weather
|
27
|
+
hashie.link = 'http://weather.dummy.' + @day
|
28
|
+
@pipeline << Automatic::FeedMaker.create_pipeline([hashie])
|
28
29
|
end
|
29
30
|
@pipeline
|
30
31
|
end
|
data/plugins/subscription/xml.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Subscription::Xml
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Jul 12, 2013
|
5
|
-
# Updated::
|
5
|
+
# Updated:: Feb 21, 2014
|
6
6
|
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
@@ -36,13 +36,14 @@ module Automatic::Plugin
|
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
39
|
+
|
39
40
|
def create_rss(url)
|
40
|
-
Automatic::Log.puts("info", "Parsing: #{url}")
|
41
|
+
Automatic::Log.puts("info", "Parsing XML: #{url}")
|
41
42
|
hash = Hash.from_xml(open(url).read)
|
42
43
|
json = hash.to_json
|
43
44
|
data = ActiveSupport::JSON.decode(json)
|
44
45
|
unless data.nil?
|
45
|
-
rss = Automatic::
|
46
|
+
rss = Automatic::FeedMaker.content_provide(url, data)
|
46
47
|
sleep ||= @config['interval'].to_i
|
47
48
|
@return_feeds << rss
|
48
49
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
testTitle http://dummy.from.file testDescription testAuthor testComments
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# Author:: ainame
|
4
4
|
# 774 <http://id774.net>
|
5
5
|
# Created:: Mar 10, 2012
|
6
|
-
# Updated::
|
7
|
-
# Copyright:: Copyright (c) 2012-
|
6
|
+
# Updated:: Feb 25, 2014
|
7
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
8
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
9
|
|
10
10
|
require File.expand_path(File.join(File.dirname(__FILE__) ,'../../spec_helper'))
|
@@ -38,10 +38,10 @@ describe Automatic::Pipeline do
|
|
38
38
|
|
39
39
|
describe "#run" do
|
40
40
|
it "run a recipe with FilterIgnore module" do
|
41
|
-
plugin =
|
41
|
+
plugin = double("plugin")
|
42
42
|
plugin.should_receive(:module).and_return("FilterIgnore")
|
43
43
|
plugin.should_receive(:config)
|
44
|
-
recipe =
|
44
|
+
recipe = double("recipe")
|
45
45
|
recipe.should_receive(:each_plugin).and_yield(plugin)
|
46
46
|
Automatic::Pipeline.run(recipe).should == []
|
47
47
|
end
|
data/spec/lib/automatic_spec.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
# Author:: kzgs
|
4
4
|
# 774 <http://id774.net>
|
5
5
|
# Created:: Mar 9, 2012
|
6
|
-
# Updated::
|
7
|
-
# Copyright:: Copyright (c) 2012-
|
6
|
+
# Updated:: Feb 26, 2014
|
7
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
8
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
9
|
|
10
10
|
require File.expand_path(File.join(File.dirname(__FILE__), '../spec_helper'))
|
@@ -27,7 +27,7 @@ describe Automatic do
|
|
27
27
|
describe "#version" do
|
28
28
|
subject { Automatic.const_get(:VERSION) }
|
29
29
|
|
30
|
-
it { expect(subject).to eq "14.
|
30
|
+
it { expect(subject).to eq "14.2.0" }
|
31
31
|
end
|
32
32
|
|
33
33
|
describe "#(root)_dir" do
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Filter::GithubFeed
|
3
3
|
# Author:: Kohei Hasegawa <http://github.com/banyan>
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: Jun 6, 2013
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
6
|
+
# Updated:: Feb 21, 2014
|
7
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
9
10
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -35,18 +36,18 @@ describe Automatic::Plugin::FilterGithubFeed do
|
|
35
36
|
specify {
|
36
37
|
subject.run
|
37
38
|
|
38
|
-
subject.instance_variable_get(:@
|
39
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].link
|
39
40
|
.should == '1'
|
40
|
-
subject.instance_variable_get(:@
|
41
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].title
|
41
42
|
.should == 'title1'
|
42
|
-
subject.instance_variable_get(:@
|
43
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].description
|
43
44
|
.should == 'description1'
|
44
45
|
|
45
|
-
subject.instance_variable_get(:@
|
46
|
+
subject.instance_variable_get(:@return_feeds)[0].items[1].link
|
46
47
|
.should == '0'
|
47
|
-
subject.instance_variable_get(:@
|
48
|
+
subject.instance_variable_get(:@return_feeds)[0].items[1].title
|
48
49
|
.should == 'title0'
|
49
|
-
subject.instance_variable_get(:@
|
50
|
+
subject.instance_variable_get(:@return_feeds)[0].items[1].description
|
50
51
|
.should == 'description0'
|
51
52
|
}
|
52
53
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# Author:: kzgs
|
4
4
|
# 774 <http://id774.net>
|
5
5
|
# Created:: Mar 1, 2012
|
6
|
-
# Updated::
|
7
|
-
# Copyright:: Copyright (c) 2012-
|
6
|
+
# Updated:: Feb 21, 2014
|
7
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
8
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
9
|
|
10
10
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -25,7 +25,7 @@ describe Automatic::Plugin::FilterImageSource do
|
|
25
25
|
its(:run) { should have(1).feeds }
|
26
26
|
specify {
|
27
27
|
subject.run
|
28
|
-
subject.instance_variable_get(:@
|
28
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].link.
|
29
29
|
should == "http://27.media.tumblr.com/tumblr_lzrubkfPlt1qb8vzto1_500.png"
|
30
30
|
}
|
31
31
|
end
|
@@ -46,7 +46,7 @@ describe Automatic::Plugin::FilterImageSource do
|
|
46
46
|
its(:run) { should have(1).feeds }
|
47
47
|
specify {
|
48
48
|
subject.run
|
49
|
-
subject.instance_variable_get(:@
|
49
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].link.
|
50
50
|
should == "http://24.media.tumblr.com/tumblr_m07wttnIdy1qzoj1jo1_400.jpg"
|
51
51
|
}
|
52
52
|
end
|
@@ -65,13 +65,13 @@ describe Automatic::Plugin::FilterImageSource do
|
|
65
65
|
|
66
66
|
describe "#run" do
|
67
67
|
before do
|
68
|
-
subject.stub
|
68
|
+
subject.stub(:rewrite_link).and_return(['http://huge.png'])
|
69
69
|
end
|
70
70
|
|
71
71
|
its(:run) { should have(1).feeds }
|
72
72
|
specify {
|
73
73
|
subject.run
|
74
|
-
subject.instance_variable_get(:@
|
74
|
+
subject.instance_variable_get(:@return_feeds)[0].items[0].link.
|
75
75
|
should == 'http://huge.png'
|
76
76
|
}
|
77
77
|
end
|
@@ -80,7 +80,7 @@ describe Automatic::Plugin::FilterImageSource do
|
|
80
80
|
before do
|
81
81
|
open = Hashie::Mash.new
|
82
82
|
open.read = '<img src="http://a.png"><br /><img src="http://b.png">'
|
83
|
-
subject.stub
|
83
|
+
subject.stub(:open).and_return(open)
|
84
84
|
end
|
85
85
|
|
86
86
|
its(:run) { subject.run[0].items.length.should == 2 }
|
@@ -19,7 +19,7 @@ describe Automatic::Plugin::NotifyIkachan do
|
|
19
19
|
}
|
20
20
|
|
21
21
|
it "should post title and link in the feed" do
|
22
|
-
ikachan =
|
22
|
+
ikachan = double("ikachan")
|
23
23
|
ikachan.should_receive(:post).with("http://github.com", "GitHub")
|
24
24
|
ikachan.should_receive(:params)
|
25
25
|
subject.instance_variable_set(:@ikachan, ikachan)
|
@@ -44,9 +44,9 @@ describe Automatic::Plugin::Ikachan do
|
|
44
44
|
link = "http://www.google.com"
|
45
45
|
|
46
46
|
require 'net/http'
|
47
|
-
res =
|
47
|
+
res = double("res")
|
48
48
|
res.should_receive(:code).and_return("200")
|
49
|
-
http =
|
49
|
+
http = double("http")
|
50
50
|
http.should_receive(:post).with("/join", "channel=#room")
|
51
51
|
http.should_receive(:post).with(
|
52
52
|
"/notice", "channel=#room&message=#{link}").and_return(res)
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Provide::Fluentd
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Jul 12, 2013
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
5
|
+
# Updated:: Feb 25, 2014
|
6
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
9
9
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -22,7 +22,7 @@ describe Automatic::Plugin::ProvideFluentd do
|
|
22
22
|
json = hash.to_json
|
23
23
|
data = ActiveSupport::JSON.decode(json)
|
24
24
|
url = "http://id774.net/test/xml/data"
|
25
|
-
rss = Automatic::
|
25
|
+
rss = Automatic::FeedMaker.content_provide(url, data)
|
26
26
|
feeds << rss
|
27
27
|
|
28
28
|
subject {
|
@@ -30,14 +30,15 @@ describe Automatic::Plugin::ProvideFluentd do
|
|
30
30
|
{
|
31
31
|
'host' => "localhost",
|
32
32
|
'port' => "10000",
|
33
|
-
'tag' => "automatic_spec.provide_fluentd"
|
33
|
+
'tag' => "automatic_spec.provide_fluentd",
|
34
|
+
'mode' => "test"
|
34
35
|
},
|
35
36
|
feeds
|
36
37
|
)
|
37
38
|
}
|
38
39
|
|
39
40
|
its (:run) {
|
40
|
-
fluentd =
|
41
|
+
fluentd = double("fluentd")
|
41
42
|
subject.run.should have(1).feed
|
42
43
|
subject.instance_variable_get(:@pipeline)[0].items[0].content_encoded.class == Hash
|
43
44
|
subject.instance_variable_get(:@pipeline)[0].items[0].content_encoded.should == expect
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Publish::AmazonS3
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Created:: Feb 25, 2014
|
5
|
+
# Updated:: Feb 25, 2014
|
6
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
|
+
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
+
|
9
|
+
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
10
|
+
|
11
|
+
require 'publish/amazon_s3'
|
12
|
+
|
13
|
+
describe Automatic::Plugin::PublishAmazonS3 do
|
14
|
+
context 'when feed' do
|
15
|
+
describe 'should forward the feeds' do
|
16
|
+
subject {
|
17
|
+
Automatic::Plugin::PublishAmazonS3.new(
|
18
|
+
{
|
19
|
+
'access_key' => "aabbcc",
|
20
|
+
'secret_key' => "ddeeff",
|
21
|
+
'bucket_name' => "test_bucket",
|
22
|
+
'target_path' => "test/tmp",
|
23
|
+
'mode' => "test"
|
24
|
+
},
|
25
|
+
AutomaticSpec.generate_pipeline{
|
26
|
+
feed {
|
27
|
+
item "http://github.com", "hoge",
|
28
|
+
"<a>fuga</a>"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
)
|
32
|
+
}
|
33
|
+
|
34
|
+
its (:run) {
|
35
|
+
subject.run.should have(1).feed
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Publish::Console
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
|
-
# Updated::
|
5
|
-
# Copyright:: Copyright (c) 2012-
|
4
|
+
# Updated:: Feb 25, 2014
|
5
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
6
6
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
7
7
|
|
8
8
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -21,7 +21,7 @@ describe Automatic::Plugin::PublishConsole do
|
|
21
21
|
}
|
22
22
|
|
23
23
|
it "should output pretty inspect of feeds" do
|
24
|
-
output =
|
24
|
+
output = double("output")
|
25
25
|
output.should_receive(:puts).
|
26
26
|
with("info", @pipeline[0].items[0].pretty_inspect)
|
27
27
|
subject.instance_variable_set(:@output, output)
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Publish::Fluentd
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Jun 21, 2013
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
5
|
+
# Updated:: Feb 25, 2014
|
6
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
9
9
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -18,7 +18,8 @@ describe Automatic::Plugin::PublishFluentd do
|
|
18
18
|
{
|
19
19
|
'host' => "localhost",
|
20
20
|
'port' => "10000",
|
21
|
-
'tag' => "automatic_spec.publish_fluent"
|
21
|
+
'tag' => "automatic_spec.publish_fluent",
|
22
|
+
'mode' => "test"
|
22
23
|
},
|
23
24
|
AutomaticSpec.generate_pipeline{
|
24
25
|
feed {
|
@@ -30,7 +31,7 @@ describe Automatic::Plugin::PublishFluentd do
|
|
30
31
|
}
|
31
32
|
|
32
33
|
its (:run) {
|
33
|
-
fluentd =
|
34
|
+
fluentd = double("fluentd")
|
34
35
|
subject.run.should have(1).feed
|
35
36
|
}
|
36
37
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Name:: Automatic::Plugin::CustomFeed::SVNFLog
|
3
3
|
# Author:: kzgs
|
4
4
|
# Created:: Feb 26, 2012
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
5
|
+
# Updated:: Feb 25, 2014
|
6
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
9
9
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -24,7 +24,7 @@ describe Automatic::Plugin::PublishGoogleCalendar do
|
|
24
24
|
}
|
25
25
|
|
26
26
|
it "should post the link in the feed" do
|
27
|
-
gc =
|
27
|
+
gc = double("gc")
|
28
28
|
gc.should_receive(:add).with("今日 GitHub")
|
29
29
|
subject.instance_variable_set(:@gc, gc)
|
30
30
|
subject.run.should have(1).feed
|
@@ -50,7 +50,7 @@ describe Automatic::Plugin::Googlecalendar do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def all_day_event_mock(title, where, date=nil)
|
53
|
-
event =
|
53
|
+
event = double("event")
|
54
54
|
{
|
55
55
|
:title => title,
|
56
56
|
:st => date.nil? ? nil : Time.mktime(date.year, date.month, date.day),
|
@@ -69,7 +69,7 @@ def all_day_event_mock(title, where, date=nil)
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def cal_mock(event_mock)
|
72
|
-
cal =
|
72
|
+
cal = double("cal")
|
73
73
|
cal.should_receive(:create_event).and_return {
|
74
74
|
event_mock
|
75
75
|
}
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Publish::HatenaBookmark
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Feb 22, 2012
|
5
|
-
# Updated::
|
6
|
-
# Copyright:: Copyright (c) 2012-
|
5
|
+
# Updated:: Feb 25, 2014
|
6
|
+
# Copyright:: Copyright (c) 2012-2014 Automatic Ruby Developers.
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
9
9
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
@@ -21,7 +21,7 @@ describe Automatic::Plugin::PublishHatenaBookmark do
|
|
21
21
|
}
|
22
22
|
|
23
23
|
it "should post the link with prefix 'http' in the feed" do
|
24
|
-
hb =
|
24
|
+
hb = double("hb")
|
25
25
|
hb.should_receive(:post).with("http://github.com", nil)
|
26
26
|
subject.instance_variable_set(:@hb, hb)
|
27
27
|
subject.run.should have(1).feed
|
@@ -39,7 +39,7 @@ describe Automatic::Plugin::PublishHatenaBookmark do
|
|
39
39
|
}
|
40
40
|
|
41
41
|
it "should post the link with prefix '//...' in the feed" do
|
42
|
-
hb =
|
42
|
+
hb = double("hb")
|
43
43
|
hb.should_receive(:post).with("http://github.com", nil)
|
44
44
|
subject.instance_variable_set(:@hb, hb)
|
45
45
|
subject.run.should have(1).feed
|
@@ -57,7 +57,7 @@ describe Automatic::Plugin::PublishHatenaBookmark do
|
|
57
57
|
}
|
58
58
|
|
59
59
|
it "should post the link with prefix 'https' in the feed" do
|
60
|
-
hb =
|
60
|
+
hb = double("hb")
|
61
61
|
hb.should_receive(:post).with("https://github.com", nil)
|
62
62
|
subject.instance_variable_set(:@hb, hb)
|
63
63
|
subject.run.should have(1).feed
|
@@ -75,7 +75,7 @@ describe Automatic::Plugin::PublishHatenaBookmark do
|
|
75
75
|
}
|
76
76
|
|
77
77
|
it "should post the link with others in the feed" do
|
78
|
-
hb =
|
78
|
+
hb = double("hb")
|
79
79
|
hb.should_receive(:post).with("http://github.com", nil)
|
80
80
|
subject.instance_variable_set(:@hb, hb)
|
81
81
|
subject.run.should have(1).feed
|
@@ -106,9 +106,9 @@ describe Automatic::Plugin::HatenaBookmark do
|
|
106
106
|
comment = "Can we trust them ?"
|
107
107
|
|
108
108
|
require 'net/http'
|
109
|
-
res =
|
109
|
+
res = double("res")
|
110
110
|
res.should_receive(:code).and_return("201")
|
111
|
-
http =
|
111
|
+
http = double("http")
|
112
112
|
http.should_receive(:post).with("/atom/post", subject.toXml(url, comment),
|
113
113
|
subject.wsse("", "")).and_return(res)
|
114
114
|
http.should_receive(:start).and_yield(http)
|
@@ -121,9 +121,9 @@ describe Automatic::Plugin::HatenaBookmark do
|
|
121
121
|
comment = "Can we trust them ?"
|
122
122
|
|
123
123
|
require 'net/http'
|
124
|
-
res =
|
124
|
+
res = double("res")
|
125
125
|
res.should_receive(:code).twice.and_return("400")
|
126
|
-
http =
|
126
|
+
http = double("http")
|
127
127
|
http.should_receive(:post).with("/atom/post", subject.toXml(url, comment),
|
128
128
|
subject.wsse("", "")).and_return(res)
|
129
129
|
http.should_receive(:start).and_yield(http)
|