automatic 13.2.0 → 13.4.1
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.
- data/Gemfile +2 -2
- data/README.md +15 -3
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/automatic.gemspec +3 -5
- data/bin/automatic +104 -15
- data/doc/ChangeLog +9 -0
- data/doc/PLUGINS +4 -1
- data/doc/PLUGINS.ja +4 -1
- data/doc/README +27 -31
- data/doc/README.ja +24 -28
- data/lib/automatic/feed_parser.rb +1 -1
- data/lib/automatic.rb +3 -3
- data/plugins/filter/absolute_uri.rb +11 -10
- data/plugins/filter/full_feed.rb +16 -14
- data/plugins/filter/ignore.rb +18 -16
- data/plugins/filter/image.rb +14 -18
- data/plugins/filter/image_source.rb +11 -10
- data/plugins/filter/tumblr_resize.rb +11 -10
- data/plugins/notify/ikachan.rb +4 -4
- data/plugins/publish/google_calendar.rb +1 -1
- data/plugins/publish/hatena_bookmark.rb +15 -4
- data/plugins/publish/instapaper.rb +12 -3
- data/plugins/store/target_link.rb +1 -1
- data/plugins/subscription/feed.rb +1 -1
- data/plugins/subscription/google_reader_star.rb +9 -6
- data/plugins/subscription/link.rb +13 -12
- data/plugins/subscription/tumblr.rb +13 -12
- data/plugins/subscription/twitter.rb +19 -18
- data/script/build +14 -12
- data/spec/lib/automatic_spec.rb +3 -3
- data/spec/plugins/filter/full_feed_spec.rb +88 -5
- data/spec/plugins/filter/ignore_spec.rb +2 -1
- data/spec/plugins/filter/sort_spec.rb +1 -1
- data/spec/plugins/publish/hatena_bookmark_spec.rb +63 -1
- data/spec/plugins/publish/instapaper_spec.rb +18 -6
- data/spec/plugins/store/target_link_spec.rb +3 -3
- data/spec/plugins/subscription/feed_spec.rb +1 -1
- data/spec/plugins/subscription/google_reader_star_spec.rb +30 -1
- data/spec/plugins/subscription/link_spec.rb +1 -1
- data/spec/plugins/subscription/tumblr_spec.rb +1 -1
- data/spec/plugins/subscription/twitter_spec.rb +1 -1
- data/spec/spec_helper.rb +13 -3
- data/test/integration/test_googlestar.yml +13 -0
- metadata +2 -5
- data/bin/automatic-config +0 -111
- data/script/bootstrap +0 -117
@@ -2,7 +2,7 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Filter::FullFeed
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Jan 24, 2013
|
5
|
-
# Updated::
|
5
|
+
# Updated:: Mar 24, 2013
|
6
6
|
# Copyright:: 774 Copyright (c) 2013
|
7
7
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
8
|
|
@@ -11,7 +11,7 @@ require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
|
11
11
|
require 'filter/full_feed'
|
12
12
|
|
13
13
|
describe Automatic::Plugin::FilterFullFeed do
|
14
|
-
context "It should be
|
14
|
+
context "It should be matched by siteinfo" do
|
15
15
|
subject {
|
16
16
|
Automatic::Plugin::FilterFullFeed.new(
|
17
17
|
{
|
@@ -19,8 +19,8 @@ describe Automatic::Plugin::FilterFullFeed do
|
|
19
19
|
},
|
20
20
|
AutomaticSpec.generate_pipeline {
|
21
21
|
feed {
|
22
|
-
item "http://matome.naver.jp/odai/2129948007339738701/2129948085139809603", "",
|
23
|
-
"",
|
22
|
+
item "http://matome.naver.jp/odai/2129948007339738701/2129948085139809603", "hoge",
|
23
|
+
"fuga",
|
24
24
|
"Mon, 07 Mar 2011 15:54:11 +0900"
|
25
25
|
}})}
|
26
26
|
|
@@ -31,7 +31,7 @@ describe Automatic::Plugin::FilterFullFeed do
|
|
31
31
|
subject.instance_variable_get(:@pipeline)[0].items[0].link.
|
32
32
|
should == "http://matome.naver.jp/odai/2129948007339738701/2129948085139809603"
|
33
33
|
subject.instance_variable_get(:@pipeline)[0].items[0].description.
|
34
|
-
should == ""
|
34
|
+
should == "fuga"
|
35
35
|
|
36
36
|
subject.run
|
37
37
|
|
@@ -45,4 +45,87 @@ describe Automatic::Plugin::FilterFullFeed do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
context "It should be not matched by siteinfo" do
|
49
|
+
subject {
|
50
|
+
Automatic::Plugin::FilterFullFeed.new(
|
51
|
+
{
|
52
|
+
'siteinfo' => "items_all.json"
|
53
|
+
},
|
54
|
+
AutomaticSpec.generate_pipeline {
|
55
|
+
feed {
|
56
|
+
item "http://id774.net", "aaaaaa",
|
57
|
+
"bbbbbb",
|
58
|
+
"Mon, 07 Mar 2011 15:54:11 +0900"
|
59
|
+
}})}
|
60
|
+
|
61
|
+
describe "#run" do
|
62
|
+
its(:run) { should have(1).feeds }
|
63
|
+
|
64
|
+
specify {
|
65
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].link.
|
66
|
+
should == "http://id774.net"
|
67
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].description.
|
68
|
+
should == "bbbbbb"
|
69
|
+
|
70
|
+
subject.run
|
71
|
+
|
72
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].link.
|
73
|
+
should == "http://id774.net"
|
74
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].description.
|
75
|
+
should == "bbbbbb"
|
76
|
+
}
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "It should be not matched by siteinfo with local dir" do
|
81
|
+
subject {
|
82
|
+
Automatic::Plugin::FilterFullFeed.new(
|
83
|
+
{
|
84
|
+
'siteinfo' => "items_all.json"
|
85
|
+
},
|
86
|
+
AutomaticSpec.generate_pipeline {
|
87
|
+
feed {
|
88
|
+
item "http://id774.net", "cccc",
|
89
|
+
"ddddd",
|
90
|
+
"Mon, 07 Mar 2011 15:54:11 +0900"
|
91
|
+
}})}
|
92
|
+
|
93
|
+
describe "#run" do
|
94
|
+
def cleanup_dir
|
95
|
+
root_dir = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", ".."))
|
96
|
+
dir = (File.expand_path('~/.automatic/assets/siteinfo'))
|
97
|
+
if File.directory?(dir)
|
98
|
+
puts "Removing #{dir}"
|
99
|
+
FileUtils.rm_r(dir)
|
100
|
+
end
|
101
|
+
return dir, root_dir
|
102
|
+
end
|
103
|
+
|
104
|
+
before do
|
105
|
+
dir, root_dir = cleanup_dir
|
106
|
+
FileUtils.mkdir_p(dir)
|
107
|
+
FileUtils.cp_r(root_dir + '/assets/siteinfo/items_all.json', dir)
|
108
|
+
end
|
109
|
+
|
110
|
+
its(:run) { should have(1).feeds }
|
111
|
+
|
112
|
+
specify {
|
113
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].link.
|
114
|
+
should == "http://id774.net"
|
115
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].description.
|
116
|
+
should == "ddddd"
|
117
|
+
|
118
|
+
subject.run
|
119
|
+
|
120
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].link.
|
121
|
+
should == "http://id774.net"
|
122
|
+
subject.instance_variable_get(:@pipeline)[0].items[0].description.
|
123
|
+
should == "ddddd"
|
124
|
+
}
|
125
|
+
|
126
|
+
after do
|
127
|
+
cleanup_dir
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
48
131
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Filter::Ignore
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Updated:: Jan 19, 2013
|
5
|
-
# Copyright:: 774 Copyright (c) 2012
|
5
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
@@ -144,6 +144,7 @@ describe Automatic::Plugin::FilterIgnore do
|
|
144
144
|
'description' => ["bbb"],
|
145
145
|
},
|
146
146
|
AutomaticSpec.generate_pipeline {
|
147
|
+
# url, title, description, pubDate, author, source, enclosure
|
147
148
|
feed {
|
148
149
|
item "http://hogefuga.com", "",
|
149
150
|
"aaabbbccc"
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Mar 23, 2012
|
5
5
|
# Updated:: Jan 23, 2013
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
@@ -1,3 +1,11 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Publish::HatenaBookmark
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Created:: Feb 22, 2012
|
5
|
+
# Updated:: Mar 7, 2013
|
6
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
7
|
+
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
+
|
1
9
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
2
10
|
|
3
11
|
require 'publish/hatena_bookmark'
|
@@ -12,7 +20,61 @@ describe Automatic::Plugin::PublishHatenaBookmark do
|
|
12
20
|
)
|
13
21
|
}
|
14
22
|
|
15
|
-
it "should post the link in the feed" do
|
23
|
+
it "should post the link with prefix 'http' in the feed" do
|
24
|
+
hb = mock("hb")
|
25
|
+
hb.should_receive(:post).with("http://github.com", nil)
|
26
|
+
subject.instance_variable_set(:@hb, hb)
|
27
|
+
subject.run.should have(1).feed
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe Automatic::Plugin::PublishHatenaBookmark do
|
32
|
+
subject {
|
33
|
+
Automatic::Plugin::PublishHatenaBookmark.new(
|
34
|
+
{"username" => "user", "password" => "pswd"},
|
35
|
+
AutomaticSpec.generate_pipeline{
|
36
|
+
feed { item "//github.com" }
|
37
|
+
}
|
38
|
+
)
|
39
|
+
}
|
40
|
+
|
41
|
+
it "should post the link with prefix '//...' in the feed" do
|
42
|
+
hb = mock("hb")
|
43
|
+
hb.should_receive(:post).with("http://github.com", nil)
|
44
|
+
subject.instance_variable_set(:@hb, hb)
|
45
|
+
subject.run.should have(1).feed
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe Automatic::Plugin::PublishHatenaBookmark do
|
50
|
+
subject {
|
51
|
+
Automatic::Plugin::PublishHatenaBookmark.new(
|
52
|
+
{"username" => "user", "password" => "pswd"},
|
53
|
+
AutomaticSpec.generate_pipeline{
|
54
|
+
feed { item "https://github.com" }
|
55
|
+
}
|
56
|
+
)
|
57
|
+
}
|
58
|
+
|
59
|
+
it "should post the link with prefix 'https' in the feed" do
|
60
|
+
hb = mock("hb")
|
61
|
+
hb.should_receive(:post).with("https://github.com", nil)
|
62
|
+
subject.instance_variable_set(:@hb, hb)
|
63
|
+
subject.run.should have(1).feed
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe Automatic::Plugin::PublishHatenaBookmark do
|
68
|
+
subject {
|
69
|
+
Automatic::Plugin::PublishHatenaBookmark.new(
|
70
|
+
{"username" => "user", "password" => "pswd"},
|
71
|
+
AutomaticSpec.generate_pipeline{
|
72
|
+
feed { item "github.com" }
|
73
|
+
}
|
74
|
+
)
|
75
|
+
}
|
76
|
+
|
77
|
+
it "should post the link with others in the feed" do
|
16
78
|
hb = mock("hb")
|
17
79
|
hb.should_receive(:post).with("http://github.com", nil)
|
18
80
|
subject.instance_variable_set(:@hb, hb)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Publish::Instapaper
|
3
3
|
# Author:: soramugi <http://soramugi.net>
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: Feb 9, 2013
|
5
|
-
# Updated::
|
6
|
+
# Updated:: Mar 22, 2013
|
6
7
|
# Copyright:: soramugi Copyright (c) 2013
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
@@ -13,7 +14,11 @@ require 'publish/instapaper'
|
|
13
14
|
describe Automatic::Plugin::PublishInstapaper do
|
14
15
|
subject {
|
15
16
|
Automatic::Plugin::PublishInstapaper.new(
|
16
|
-
{
|
17
|
+
{ 'email' => "email@example.com",
|
18
|
+
'password' => "pswd",
|
19
|
+
'interval' => 5,
|
20
|
+
'retry' => 5
|
21
|
+
},
|
17
22
|
AutomaticSpec.generate_pipeline{
|
18
23
|
feed { item "http://github.com" }
|
19
24
|
}
|
@@ -31,11 +36,18 @@ end
|
|
31
36
|
describe Automatic::Plugin::Instapaper do
|
32
37
|
describe "#add" do
|
33
38
|
subject {
|
34
|
-
Automatic::Plugin::Instapaper.new(
|
39
|
+
Automatic::Plugin::Instapaper.new(
|
40
|
+
{ 'email' => "email@example.com",
|
41
|
+
'password' => "pswd",
|
42
|
+
'interval' => 5,
|
43
|
+
'retry' => 5
|
44
|
+
}
|
45
|
+
)
|
35
46
|
}
|
36
|
-
|
37
|
-
|
38
|
-
|
47
|
+
|
48
|
+
url = "http://www.google.com"
|
49
|
+
title = "automatic test"
|
50
|
+
description = "automatic test"
|
39
51
|
|
40
52
|
specify {
|
41
53
|
res = stub("res")
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# Author:: kzgs
|
4
4
|
# 774 <http://id774.net>
|
5
5
|
# Created:: Mar 4, 2012
|
6
|
-
# Updated::
|
7
|
-
# Copyright:: kzgs Copyright (c) 2012
|
6
|
+
# Updated:: Apr 3, 2013
|
7
|
+
# Copyright:: kzgs Copyright (c) 2012-2013
|
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')
|
@@ -19,7 +19,7 @@ describe Automatic::Plugin::StoreTargetLink do
|
|
19
19
|
instance = Automatic::Plugin::StoreTargetLink.new(
|
20
20
|
{ "path" => dir },
|
21
21
|
AutomaticSpec.generate_pipeline {
|
22
|
-
feed { item "http://
|
22
|
+
feed { item "http://id774.net/test/store/rss" }
|
23
23
|
}
|
24
24
|
)
|
25
25
|
instance.run.should have(1).feed
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# Name:: Automatic::Plugin::Subscription::Feed
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Updated:: Feb 8, 2013
|
5
|
-
# Copyright:: 774 Copyright (c) 2012
|
5
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::Subscription::GoogleReaderStar
|
3
3
|
# Author:: soramugi <http://soramugi.net>
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: Feb 10, 2013
|
5
|
-
# Updated:: Feb
|
6
|
+
# Updated:: Feb 17, 2013
|
6
7
|
# Copyright:: soramugi Copyright (c) 2013
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
@@ -42,4 +43,32 @@ describe Automatic::Plugin::SubscriptionGoogleReaderStar do
|
|
42
43
|
|
43
44
|
its(:run) { should have(1).feed }
|
44
45
|
end
|
46
|
+
|
47
|
+
context "with retry to feeds whose valid URL" do
|
48
|
+
subject {
|
49
|
+
Automatic::Plugin::SubscriptionGoogleReaderStar.new(
|
50
|
+
{ 'feeds' => [
|
51
|
+
"http://www.google.com/reader/public/atom/user%2F00482198897189159802%2Fstate%2Fcom.google%2Fstarred"],
|
52
|
+
'retry' => 3,
|
53
|
+
'interval' => 5
|
54
|
+
}
|
55
|
+
)
|
56
|
+
}
|
57
|
+
|
58
|
+
its(:run) { should have(1).feed }
|
59
|
+
end
|
60
|
+
|
61
|
+
context "with retry to feeds whose invalid URL" do
|
62
|
+
subject {
|
63
|
+
Automatic::Plugin::SubscriptionGoogleReaderStar.new(
|
64
|
+
{ 'feeds' => ["invalid_url"],
|
65
|
+
'retry' => 1,
|
66
|
+
'interval' => 1
|
67
|
+
}
|
68
|
+
)
|
69
|
+
}
|
70
|
+
|
71
|
+
its(:run) { should be_empty }
|
72
|
+
end
|
73
|
+
|
45
74
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Sep 18, 2012
|
5
5
|
# Updated:: Feb 8, 2013
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Oct 16, 2012
|
5
5
|
# Updated:: Feb 8, 2013
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# Author:: 774 <http://id774.net>
|
4
4
|
# Created:: Sep 10, 2012
|
5
5
|
# Updated:: Feb 8, 2013
|
6
|
-
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012-2013
|
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')
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Spec
|
3
|
-
# Updated::
|
3
|
+
# Updated:: Mar 14, 2013
|
4
4
|
|
5
5
|
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
6
6
|
$LOAD_PATH.unshift APP_ROOT
|
@@ -28,7 +28,7 @@ require 'lib/automatic'
|
|
28
28
|
# in ./support/ and its subdirectories.
|
29
29
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
30
30
|
|
31
|
-
|
31
|
+
if /^1\.8\./ =~ RUBY_VERSION
|
32
32
|
require 'rspec'
|
33
33
|
end
|
34
34
|
|
@@ -83,12 +83,22 @@ module AutomaticSpec
|
|
83
83
|
rss
|
84
84
|
end
|
85
85
|
|
86
|
-
def item(url,
|
86
|
+
def item(url,
|
87
|
+
title="",
|
88
|
+
description="",
|
89
|
+
date="",
|
90
|
+
author="",
|
91
|
+
source="",
|
92
|
+
enclosure=""
|
93
|
+
)
|
87
94
|
i = RSS::Rss::Channel::Item.new
|
88
95
|
i.link = url
|
89
96
|
i.title = title unless title.blank?
|
90
97
|
i.instance_variable_set(:@description, description)
|
91
98
|
i.pubDate = date unless date.blank?
|
99
|
+
i.author = author unless author.blank?
|
100
|
+
i.source = source unless source.blank?
|
101
|
+
i.enclosure = enclosure unless enclosure.blank?
|
92
102
|
@channel.items << i
|
93
103
|
end
|
94
104
|
end
|
@@ -11,6 +11,19 @@ plugins:
|
|
11
11
|
feeds:
|
12
12
|
- http://www.google.com/reader/public/atom/user%2F00482198897189159802%2Fstate%2Fcom.google%2Fstarred
|
13
13
|
|
14
|
+
- module: SubscriptionGoogleReaderStar
|
15
|
+
config:
|
16
|
+
feeds:
|
17
|
+
- http://www.google.com/reader/public/atom/user%2F00482198897189159802%2Fstate%2Fcom.google%2Fstarred
|
18
|
+
internal: 1
|
19
|
+
|
20
|
+
- module: SubscriptionGoogleReaderStar
|
21
|
+
config:
|
22
|
+
feeds:
|
23
|
+
- http://www.google.com/reader/public/atom/user%2F00482198897189159802%2Fstate%2Fcom.google%2Fstarred
|
24
|
+
internal: 5
|
25
|
+
retry: 5
|
26
|
+
|
14
27
|
- module: StorePermalink
|
15
28
|
config:
|
16
29
|
db: test_googlestar.db
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: automatic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sqlite3
|
@@ -207,7 +207,6 @@ description: Ruby General Automation Framework
|
|
207
207
|
email: idnanashi@gmail.com
|
208
208
|
executables:
|
209
209
|
- automatic
|
210
|
-
- automatic-config
|
211
210
|
extensions: []
|
212
211
|
extra_rdoc_files:
|
213
212
|
- README.md
|
@@ -219,7 +218,6 @@ files:
|
|
219
218
|
- assets/siteinfo/items_all.json
|
220
219
|
- automatic.gemspec
|
221
220
|
- bin/automatic
|
222
|
-
- bin/automatic-config
|
223
221
|
- config/feed2console.yml
|
224
222
|
- db/.gitkeep
|
225
223
|
- doc/AUTHORS
|
@@ -260,7 +258,6 @@ files:
|
|
260
258
|
- plugins/subscription/link.rb
|
261
259
|
- plugins/subscription/tumblr.rb
|
262
260
|
- plugins/subscription/twitter.rb
|
263
|
-
- script/bootstrap
|
264
261
|
- script/build
|
265
262
|
- spec/fixtures/sampleRecipe.yml
|
266
263
|
- spec/lib/automatic/pipeline_spec.rb
|
data/bin/automatic-config
DELETED
@@ -1,111 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# Name:: Automatic::Ruby
|
4
|
-
# Author:: kzgs
|
5
|
-
# 774 <http://id774.net>
|
6
|
-
# Created:: Mar 11, 2012
|
7
|
-
# Updated:: Jan 24, 2013
|
8
|
-
# Copyright:: kzgs Copyright (c) 2012-2013
|
9
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
10
|
-
|
11
|
-
root_dir = File.expand_path("..", File.dirname(__FILE__))
|
12
|
-
$:.unshift root_dir + '/lib'
|
13
|
-
|
14
|
-
require 'automatic'
|
15
|
-
require 'rubygems'
|
16
|
-
require 'optparse'
|
17
|
-
require 'fileutils'
|
18
|
-
require 'feedbag'
|
19
|
-
require 'pp'
|
20
|
-
|
21
|
-
parser = OptionParser.new { |opt|
|
22
|
-
}
|
23
|
-
parser.version = Automatic.const_get(:VERSION)
|
24
|
-
|
25
|
-
def abort_with_usage(subcommand, message)
|
26
|
-
top_filename = File.basename($0)
|
27
|
-
abort("Usage: #{top_filename} #{subcommand} #{message}")
|
28
|
-
end
|
29
|
-
|
30
|
-
subparsers = {
|
31
|
-
'scaffold' => lambda { |argv|
|
32
|
-
Dir::entries(root_dir + '/plugins').sort.each { |path|
|
33
|
-
dir = (File.expand_path('~/.automatic/plugins/' + path))
|
34
|
-
unless File.exist?(dir)
|
35
|
-
FileUtils.mkdir_p(dir)
|
36
|
-
puts "Creating #{dir}"
|
37
|
-
end
|
38
|
-
}
|
39
|
-
dir = (File.expand_path('~/.automatic/assets'))
|
40
|
-
unless File.exist?(dir)
|
41
|
-
FileUtils.mkdir_p(dir)
|
42
|
-
FileUtils.cp_r(root_dir + '/assets/siteinfo', dir + '/siteinfo')
|
43
|
-
puts "Creating #{dir}"
|
44
|
-
end
|
45
|
-
dir = (File.expand_path('~/.automatic/config'))
|
46
|
-
unless File.exist?(dir)
|
47
|
-
FileUtils.mkdir_p(dir)
|
48
|
-
FileUtils.cp_r(root_dir + '/config', dir + '/example')
|
49
|
-
puts "Creating #{dir}"
|
50
|
-
end
|
51
|
-
dir = (File.expand_path('~/.automatic/db'))
|
52
|
-
unless File.exist?(dir)
|
53
|
-
FileUtils.mkdir_p(dir)
|
54
|
-
puts "Creating #{dir}"
|
55
|
-
end
|
56
|
-
},
|
57
|
-
'unscaffold' => lambda { |argv|
|
58
|
-
dir = (File.expand_path('~/.automatic'))
|
59
|
-
if File.directory?(dir)
|
60
|
-
puts "Removing #{dir}"
|
61
|
-
FileUtils.rm_r(dir)
|
62
|
-
end
|
63
|
-
},
|
64
|
-
'autodiscovery' => lambda { |argv|
|
65
|
-
url = argv.shift || abort_with_usage("autodiscovery", "<url>")
|
66
|
-
pp Feedbag.find(url)
|
67
|
-
},
|
68
|
-
'feedparser' => lambda { |argv|
|
69
|
-
require 'automatic/feed_parser'
|
70
|
-
url = argv.shift || abort_with_usage("feedparser", "<url>")
|
71
|
-
rss_results = Automatic::FeedParser.get(url)
|
72
|
-
pp rss_results
|
73
|
-
},
|
74
|
-
'inspect' => lambda { |argv|
|
75
|
-
require 'automatic/feed_parser'
|
76
|
-
url = argv.shift || abort_with_usage("inspect", "<url>")
|
77
|
-
feeds = Feedbag.find(url)
|
78
|
-
pp feeds
|
79
|
-
rss_results = Automatic::FeedParser.get(feeds.pop)
|
80
|
-
pp rss_results
|
81
|
-
},
|
82
|
-
'opmlparser' => lambda { |argv|
|
83
|
-
require 'automatic/opml'
|
84
|
-
path = argv.shift
|
85
|
-
if path.nil?
|
86
|
-
abort_with_usage("opmlparser", "<opml path>")
|
87
|
-
end
|
88
|
-
parser = Automatic::OPML::Parser.new(File.read(path))
|
89
|
-
parser.each_outline {|opml, o|
|
90
|
-
puts "#{o.xmlUrl}"
|
91
|
-
}
|
92
|
-
},
|
93
|
-
'log' => lambda { |argv|
|
94
|
-
require 'automatic/log'
|
95
|
-
level = argv.shift || abort_with_usage("log", "<level> <message>")
|
96
|
-
message = ARGV.shift
|
97
|
-
Automatic::Log.puts(level, message)
|
98
|
-
}
|
99
|
-
}
|
100
|
-
|
101
|
-
parser.order!(ARGV)
|
102
|
-
|
103
|
-
if ARGV.empty?
|
104
|
-
puts "Available commands: #{subparsers.keys.join(", ")}"
|
105
|
-
exit 1
|
106
|
-
end
|
107
|
-
|
108
|
-
Hash.new { |h, k|
|
109
|
-
puts "No such subcommand: #{k}"
|
110
|
-
exit 1
|
111
|
-
}.update(subparsers)[ARGV.shift].call(ARGV)
|