automatic 13.2.0 → 13.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|