automatic 12.4.0 → 12.6.0
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 +1 -0
- data/README.md +8 -5
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/automatic.gemspec +32 -9
- data/bin/automatic +3 -3
- data/bin/automatic-config +34 -17
- data/config/feed2console.yml +1 -2
- data/config/html2console.yml +16 -0
- data/doc/ChangeLog +38 -3
- data/doc/PLUGINS +191 -14
- data/doc/PLUGINS.ja +187 -10
- data/doc/README +70 -42
- data/doc/README.ja +64 -58
- data/lib/automatic/opml.rb +2 -1
- data/lib/automatic/pipeline.rb +3 -3
- data/lib/automatic/recipe.rb +6 -1
- data/lib/automatic.rb +6 -6
- data/plugins/extract/link.rb +32 -0
- data/plugins/filter/ignore.rb +7 -16
- data/plugins/filter/image_link.rb +37 -0
- data/plugins/filter/{image.rb → image_source.rb} +6 -7
- data/plugins/filter/reverse.rb +3 -4
- data/plugins/filter/tumblr_resize.rb +3 -4
- data/plugins/notify/ikachan.rb +1 -2
- data/plugins/publish/console.rb +0 -1
- data/plugins/publish/dump.rb +24 -0
- data/plugins/publish/google_calendar.rb +0 -2
- data/plugins/publish/hatena_bookmark.rb +2 -3
- data/plugins/store/{store_database.rb → database.rb} +32 -7
- data/plugins/store/full_text.rb +5 -5
- data/plugins/store/link.rb +47 -0
- data/plugins/store/permalink.rb +7 -7
- data/plugins/store/target.rb +41 -0
- data/plugins/subscription/feed.rb +0 -1
- data/plugins/subscription/uri.rb +31 -0
- data/script/build +18 -4
- data/spec/fixtures/extractLink.html +14 -0
- data/spec/fixtures/filterImageLink.html +34 -0
- data/spec/fixtures/publishDump.html +14 -0
- data/{config/default.yml → spec/fixtures/sampleRecipe.yml} +8 -10
- data/spec/fixtures/storeLink.html +34 -0
- data/spec/fixtures/storeLink2.html +36 -0
- data/spec/fixtures/storeTarget.html +11 -0
- data/spec/fixtures/storeTarget2.html +11 -0
- data/spec/lib/automatic/pipeline_spec.rb +27 -14
- data/spec/lib/automatic/recipe_spec.rb +35 -0
- data/spec/lib/automatic_spec.rb +21 -14
- data/spec/plugins/extract/link_spec.rb +38 -0
- data/spec/plugins/filter/ignore_spec.rb +59 -3
- data/spec/plugins/filter/image_link_spec.rb +51 -0
- data/spec/plugins/filter/{image_spec.rb → image_source_spec.rb} +29 -9
- data/spec/plugins/filter/reverse_spec.rb +0 -1
- data/spec/plugins/filter/tumblr_resize_spec.rb +7 -0
- data/spec/plugins/publish/console_spec.rb +9 -2
- data/spec/plugins/publish/dump_spec.rb +32 -0
- data/spec/plugins/publish/google_calendar_spec.rb +2 -1
- data/spec/plugins/publish/hatena_bookmark_spec.rb +2 -1
- data/spec/plugins/publish/mail_spec.rb +9 -1
- data/spec/plugins/publish/smtp_spec.rb +9 -1
- data/spec/plugins/store/full_text_spec.rb +15 -5
- data/spec/plugins/store/link_spec.rb +47 -0
- data/spec/plugins/store/permalink_spec.rb +9 -2
- data/spec/plugins/store/target_link_spec.rb +17 -3
- data/spec/plugins/store/target_spec.rb +41 -0
- data/spec/plugins/subscription/feed_spec.rb +14 -4
- data/spec/plugins/subscription/uri_spec.rb +43 -0
- data/spec/spec_helper.rb +31 -8
- data/spec/user_dir/plugins/store/mock.rb +4 -0
- data/test/integration/test_activerecord.yml +1 -1
- data/test/integration/test_fulltext.yml +1 -1
- data/test/integration/test_get_image.yml +26 -0
- data/test/integration/test_hatenabookmark.yml +1 -1
- data/test/integration/test_ignore.yml +1 -1
- data/test/integration/test_ignore2.yml +1 -1
- data/test/integration/test_image2local.yml +1 -1
- data/test/integration/test_reverse.yml +1 -1
- data/test/integration/test_tumblr2local.yml +1 -1
- metadata +45 -9
- data/spec/lib/pipeline_spec.rb +0 -67
- data/test/integration/test_mail.yml +0 -21
@@ -0,0 +1,47 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Store::Link
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Created:: Jun 13, 2012
|
5
|
+
# Updated:: Jun 13, 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012
|
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 'store/link'
|
12
|
+
|
13
|
+
require 'pathname'
|
14
|
+
|
15
|
+
describe Automatic::Plugin::StoreLink do
|
16
|
+
before do
|
17
|
+
@db_filename = "test_link.db"
|
18
|
+
db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
|
19
|
+
db_path.delete if db_path.exist?
|
20
|
+
Automatic::Plugin::StoreLink.new({"db" => @db_filename}).run
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should store 14 record for the new link" do
|
24
|
+
instance = Automatic::Plugin::StoreLink.new({"db" => @db_filename},
|
25
|
+
AutomaticSpec.generate_pipeline {
|
26
|
+
link "storeLink.html"
|
27
|
+
}
|
28
|
+
)
|
29
|
+
|
30
|
+
lambda {
|
31
|
+
instance.run.should have(14).items
|
32
|
+
}.should change(Automatic::Plugin::Link, :count).by(14)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should not store record for the existent link" do
|
36
|
+
instance = Automatic::Plugin::StoreLink.new({"db" => @db_filename},
|
37
|
+
AutomaticSpec.generate_pipeline {
|
38
|
+
link "storeLink2.html"
|
39
|
+
}
|
40
|
+
)
|
41
|
+
|
42
|
+
instance.run.should have(15).items
|
43
|
+
lambda {
|
44
|
+
instance.run.should have(0).items
|
45
|
+
}.should change(Automatic::Plugin::Link, :count).by(0)
|
46
|
+
end
|
47
|
+
end
|
@@ -1,3 +1,9 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Store::Link
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Updated:: Jun 14, 2012
|
5
|
+
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
1
7
|
|
2
8
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
3
9
|
|
@@ -18,7 +24,7 @@ describe Automatic::Plugin::StorePermalink do
|
|
18
24
|
AutomaticSpec.generate_pipeline {
|
19
25
|
feed { item "http://github.com" }
|
20
26
|
})
|
21
|
-
|
27
|
+
|
22
28
|
lambda {
|
23
29
|
instance.run.should have(1).feed
|
24
30
|
}.should change(Automatic::Plugin::Permalink, :count).by(1)
|
@@ -28,7 +34,8 @@ describe Automatic::Plugin::StorePermalink do
|
|
28
34
|
instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
|
29
35
|
AutomaticSpec.generate_pipeline {
|
30
36
|
feed { item "http://github.com" }
|
31
|
-
}
|
37
|
+
}
|
38
|
+
)
|
32
39
|
|
33
40
|
instance.run.should have(1).feed
|
34
41
|
lambda {
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Name:: Automatic::Plugin::CustomFeed::SVNFLog
|
3
3
|
# Author:: kzgs
|
4
|
+
# 774 <http://id774.net>
|
4
5
|
# Created:: Mar 4, 2012
|
5
|
-
# Updated::
|
6
|
+
# Updated:: Jun 14, 2012
|
6
7
|
# Copyright:: kzgs Copyright (c) 2012
|
7
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
9
|
|
@@ -20,10 +21,23 @@ describe Automatic::Plugin::StoreTargetLink do
|
|
20
21
|
{ "path" => dir },
|
21
22
|
AutomaticSpec.generate_pipeline {
|
22
23
|
feed { item "http://digithoughts.com/rss" }
|
23
|
-
}
|
24
|
-
|
24
|
+
}
|
25
|
+
)
|
25
26
|
instance.run.should have(1).feed
|
26
27
|
(Pathname(dir)+"rss").should be_exist
|
27
28
|
end
|
28
29
|
end
|
30
|
+
|
31
|
+
it "should error during file download" do
|
32
|
+
Dir.mktmpdir do |dir|
|
33
|
+
instance = Automatic::Plugin::StoreTargetLink.new(
|
34
|
+
{ "path" => dir },
|
35
|
+
AutomaticSpec.generate_pipeline {
|
36
|
+
feed { item "aaa" }
|
37
|
+
}
|
38
|
+
)
|
39
|
+
instance.run.should have(1).feed
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
29
43
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Store::Target
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Created:: Jun 13, 2012
|
5
|
+
# Updated:: Jun 14, 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012
|
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 'store/target'
|
12
|
+
|
13
|
+
require 'tmpdir'
|
14
|
+
require 'pathname'
|
15
|
+
|
16
|
+
describe Automatic::Plugin::StoreTarget do
|
17
|
+
it "should store the target link" do
|
18
|
+
Dir.mktmpdir do |dir|
|
19
|
+
instance = Automatic::Plugin::StoreTarget.new(
|
20
|
+
{ "path" => dir },
|
21
|
+
AutomaticSpec.generate_pipeline {
|
22
|
+
link "storeTarget.html"
|
23
|
+
}
|
24
|
+
)
|
25
|
+
instance.run.should have(1).item
|
26
|
+
(Pathname(dir)+"Eila_omote.jpg").should be_exist
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should error during file download" do
|
31
|
+
Dir.mktmpdir do |dir|
|
32
|
+
instance = Automatic::Plugin::StoreTarget.new(
|
33
|
+
{ "path" => dir },
|
34
|
+
AutomaticSpec.generate_pipeline {
|
35
|
+
link "storeTarget2.html"
|
36
|
+
}
|
37
|
+
)
|
38
|
+
instance.run.should have(1).items
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Subscription::Feed
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Updated:: Jun 14, 2012
|
5
|
+
# Copyright:: 774 Copyright (c) 2012
|
6
|
+
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
7
|
+
|
1
8
|
require File.expand_path(File.dirname(__FILE__) + '../../../spec_helper')
|
2
9
|
|
3
10
|
require 'subscription/feed'
|
@@ -6,16 +13,18 @@ describe Automatic::Plugin::SubscriptionFeed do
|
|
6
13
|
context "with empty feeds" do
|
7
14
|
subject {
|
8
15
|
Automatic::Plugin::SubscriptionFeed.new(
|
9
|
-
{ 'feeds' => [] }
|
16
|
+
{ 'feeds' => [] }
|
17
|
+
)
|
10
18
|
}
|
11
|
-
|
19
|
+
|
12
20
|
its(:run) { should be_empty }
|
13
21
|
end
|
14
22
|
|
15
23
|
context "with feeds whose invalid URL" do
|
16
24
|
subject {
|
17
25
|
Automatic::Plugin::SubscriptionFeed.new(
|
18
|
-
{ 'feeds' => ["invalid_url"] }
|
26
|
+
{ 'feeds' => ["invalid_url"] }
|
27
|
+
)
|
19
28
|
}
|
20
29
|
|
21
30
|
its(:run) { should be_empty }
|
@@ -27,7 +36,8 @@ describe Automatic::Plugin::SubscriptionFeed do
|
|
27
36
|
Automatic::Plugin::SubscriptionFeed.new(
|
28
37
|
{ 'feeds' => [
|
29
38
|
"https://github.com/id774/automaticruby/commits/master.atom"]
|
30
|
-
}
|
39
|
+
}
|
40
|
+
)
|
31
41
|
}
|
32
42
|
|
33
43
|
its(:run) { should have(1).feed }
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Plugin::Subscription::URI
|
3
|
+
# Author:: 774 <http://id774.net>
|
4
|
+
# Created:: Jun 12, 2012
|
5
|
+
# Updated:: Jun 13, 2012
|
6
|
+
# Copyright:: 774 Copyright (c) 2012
|
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 'subscription/uri'
|
12
|
+
|
13
|
+
describe Automatic::Plugin::SubscriptionURI do
|
14
|
+
context "with empty URLs" do
|
15
|
+
subject {
|
16
|
+
Automatic::Plugin::SubscriptionURI.new(
|
17
|
+
{ 'urls' => [] })
|
18
|
+
}
|
19
|
+
its(:run) { should be_empty }
|
20
|
+
end
|
21
|
+
|
22
|
+
context "with URLs whose invalid URL" do
|
23
|
+
subject {
|
24
|
+
Automatic::Plugin::SubscriptionURI.new(
|
25
|
+
{ 'urls' => ["invalid_url"] }
|
26
|
+
)
|
27
|
+
}
|
28
|
+
its(:run) { should be_empty }
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
context "with URLs whose valid URL" do
|
33
|
+
subject {
|
34
|
+
Automatic::Plugin::SubscriptionURI.new(
|
35
|
+
{ 'urls' => [
|
36
|
+
"https://github.com/id774/automaticruby"]
|
37
|
+
}
|
38
|
+
)
|
39
|
+
}
|
40
|
+
|
41
|
+
its(:run) { should have(1).item }
|
42
|
+
end
|
43
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Name:: Automatic::Spec
|
3
|
+
# Updated:: Jun 14, 2012
|
4
|
+
|
1
5
|
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
2
6
|
$LOAD_PATH.unshift APP_ROOT
|
3
7
|
$LOAD_PATH.unshift File.join(APP_ROOT)
|
@@ -37,7 +41,7 @@ module AutomaticSpec
|
|
37
41
|
def generate_pipeline(&block)
|
38
42
|
pipeline_generator = StubPipelineGenerator.new
|
39
43
|
pipeline_generator.instance_eval(&block)
|
40
|
-
return pipeline_generator.
|
44
|
+
return pipeline_generator.pipeline
|
41
45
|
end
|
42
46
|
|
43
47
|
def root_dir
|
@@ -45,21 +49,40 @@ module AutomaticSpec
|
|
45
49
|
end
|
46
50
|
|
47
51
|
def db_dir
|
48
|
-
|
52
|
+
dir = (File.expand_path('~/.automatic/db'))
|
53
|
+
if File.directory?(dir)
|
54
|
+
return dir
|
55
|
+
else
|
56
|
+
return File.join(root_dir, "db")
|
57
|
+
end
|
49
58
|
end
|
50
59
|
end
|
51
60
|
|
52
61
|
class StubPipelineGenerator
|
53
|
-
attr_reader :
|
62
|
+
attr_reader :pipeline
|
54
63
|
|
55
|
-
|
56
|
-
@
|
64
|
+
def initialize
|
65
|
+
@pipeline = []
|
57
66
|
end
|
58
67
|
|
59
68
|
def feed(&block)
|
60
|
-
|
61
|
-
|
62
|
-
@
|
69
|
+
generator = StubFeedGenerator.new
|
70
|
+
generator.instance_eval(&block)
|
71
|
+
@pipeline << generator.feed
|
72
|
+
end
|
73
|
+
|
74
|
+
def html(fixture)
|
75
|
+
obj = File.read(File.join(APP_ROOT, "spec",
|
76
|
+
"fixtures", fixture))
|
77
|
+
@pipeline << obj
|
78
|
+
end
|
79
|
+
|
80
|
+
def link(fixture)
|
81
|
+
obj = File.read(File.join(APP_ROOT, "spec",
|
82
|
+
"fixtures", fixture))
|
83
|
+
require 'extract/link'
|
84
|
+
@pipeline << obj
|
85
|
+
@pipeline.replace Automatic::Plugin::ExtractLink.new(nil, @pipeline).run
|
63
86
|
end
|
64
87
|
end
|
65
88
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
global:
|
2
|
+
timezone: Asia/Tokyo
|
3
|
+
cache:
|
4
|
+
base: /tmp
|
5
|
+
log:
|
6
|
+
level: info
|
7
|
+
|
8
|
+
plugins:
|
9
|
+
- module: SubscriptionURI
|
10
|
+
config:
|
11
|
+
urls:
|
12
|
+
- http://reblog.id774.net/
|
13
|
+
|
14
|
+
- module: ExtractLink
|
15
|
+
|
16
|
+
- module: FilterImageLink
|
17
|
+
|
18
|
+
- module: StoreLink
|
19
|
+
config:
|
20
|
+
db: test_link.db
|
21
|
+
|
22
|
+
- module: StoreTarget
|
23
|
+
config:
|
24
|
+
path: /tmp
|
25
|
+
interval: 2
|
26
|
+
|
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: 12.
|
4
|
+
version: 12.6.0
|
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: 2012-
|
12
|
+
date: 2012-06-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sqlite3
|
@@ -139,6 +139,22 @@ dependencies:
|
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: nokogiri
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
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'
|
142
158
|
- !ruby/object:Gem::Dependency
|
143
159
|
name: cucumber
|
144
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,8 +219,8 @@ files:
|
|
203
219
|
- automatic.gemspec
|
204
220
|
- bin/automatic
|
205
221
|
- bin/automatic-config
|
206
|
-
- config/default.yml
|
207
222
|
- config/feed2console.yml
|
223
|
+
- config/html2console.yml
|
208
224
|
- db/.gitkeep
|
209
225
|
- doc/AUTHORS
|
210
226
|
- doc/COPYING
|
@@ -221,52 +237,72 @@ files:
|
|
221
237
|
- lib/automatic/pipeline.rb
|
222
238
|
- lib/automatic/recipe.rb
|
223
239
|
- plugins/custom_feed/svn_log.rb
|
240
|
+
- plugins/extract/link.rb
|
224
241
|
- plugins/filter/ignore.rb
|
225
|
-
- plugins/filter/
|
242
|
+
- plugins/filter/image_link.rb
|
243
|
+
- plugins/filter/image_source.rb
|
226
244
|
- plugins/filter/reverse.rb
|
227
245
|
- plugins/filter/tumblr_resize.rb
|
228
246
|
- plugins/notify/ikachan.rb
|
229
247
|
- plugins/publish/console.rb
|
248
|
+
- plugins/publish/dump.rb
|
230
249
|
- plugins/publish/google_calendar.rb
|
231
250
|
- plugins/publish/hatena_bookmark.rb
|
232
251
|
- plugins/publish/mail.rb
|
233
252
|
- plugins/publish/smtp.rb
|
253
|
+
- plugins/store/database.rb
|
234
254
|
- plugins/store/full_text.rb
|
255
|
+
- plugins/store/link.rb
|
235
256
|
- plugins/store/permalink.rb
|
236
|
-
- plugins/store/
|
257
|
+
- plugins/store/target.rb
|
237
258
|
- plugins/store/target_link.rb
|
238
259
|
- plugins/subscription/feed.rb
|
260
|
+
- plugins/subscription/uri.rb
|
239
261
|
- script/bootstrap
|
240
262
|
- script/build
|
263
|
+
- spec/fixtures/extractLink.html
|
264
|
+
- spec/fixtures/filterImageLink.html
|
265
|
+
- spec/fixtures/publishDump.html
|
266
|
+
- spec/fixtures/sampleRecipe.yml
|
267
|
+
- spec/fixtures/storeLink.html
|
268
|
+
- spec/fixtures/storeLink2.html
|
269
|
+
- spec/fixtures/storeTarget.html
|
270
|
+
- spec/fixtures/storeTarget2.html
|
241
271
|
- spec/lib/automatic/pipeline_spec.rb
|
272
|
+
- spec/lib/automatic/recipe_spec.rb
|
242
273
|
- spec/lib/automatic_spec.rb
|
243
|
-
- spec/lib/pipeline_spec.rb
|
244
274
|
- spec/plugins/custom_feed/svn_log_spec.rb
|
275
|
+
- spec/plugins/extract/link_spec.rb
|
245
276
|
- spec/plugins/filter/ignore_spec.rb
|
246
|
-
- spec/plugins/filter/
|
277
|
+
- spec/plugins/filter/image_link_spec.rb
|
278
|
+
- spec/plugins/filter/image_source_spec.rb
|
247
279
|
- spec/plugins/filter/reverse_spec.rb
|
248
280
|
- spec/plugins/filter/tumblr_resize_spec.rb
|
249
281
|
- spec/plugins/notify/ikachan_spec.rb
|
250
282
|
- spec/plugins/publish/console_spec.rb
|
283
|
+
- spec/plugins/publish/dump_spec.rb
|
251
284
|
- spec/plugins/publish/google_calendar_spec.rb
|
252
285
|
- spec/plugins/publish/hatena_bookmark_spec.rb
|
253
286
|
- spec/plugins/publish/mail_spec.rb
|
254
287
|
- spec/plugins/publish/smtp_spec.rb
|
255
288
|
- spec/plugins/store/full_text_spec.rb
|
289
|
+
- spec/plugins/store/link_spec.rb
|
256
290
|
- spec/plugins/store/permalink_spec.rb
|
257
291
|
- spec/plugins/store/target_link_spec.rb
|
292
|
+
- spec/plugins/store/target_spec.rb
|
258
293
|
- spec/plugins/subscription/feed_spec.rb
|
294
|
+
- spec/plugins/subscription/uri_spec.rb
|
259
295
|
- spec/spec_helper.rb
|
260
296
|
- spec/user_dir/plugins/store/mock.rb
|
261
297
|
- test/fixtures/sampleOPML.xml
|
262
298
|
- test/integration/test_activerecord.yml
|
263
299
|
- test/integration/test_fulltext.yml
|
300
|
+
- test/integration/test_get_image.yml
|
264
301
|
- test/integration/test_googlealert.yml
|
265
302
|
- test/integration/test_hatenabookmark.yml
|
266
303
|
- test/integration/test_ignore.yml
|
267
304
|
- test/integration/test_ignore2.yml
|
268
305
|
- test/integration/test_image2local.yml
|
269
|
-
- test/integration/test_mail.yml
|
270
306
|
- test/integration/test_reverse.yml
|
271
307
|
- test/integration/test_svnlog.yml
|
272
308
|
- test/integration/test_tumblr2local.yml
|
@@ -292,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
292
328
|
version: '0'
|
293
329
|
requirements: []
|
294
330
|
rubyforge_project:
|
295
|
-
rubygems_version: 1.8.
|
331
|
+
rubygems_version: 1.8.24
|
296
332
|
signing_key:
|
297
333
|
specification_version: 3
|
298
334
|
summary: Automatic Ruby
|
data/spec/lib/pipeline_spec.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
# Name:: pipeline_sepc.rb
|
3
|
-
# Author:: ainame
|
4
|
-
# Created:: Mar 10, 2012
|
5
|
-
# Updated:: Mar 10, 2012
|
6
|
-
# Copyright:: ainame Copyright (c) 2012
|
7
|
-
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
8
|
-
|
9
|
-
require File.expand_path(File.join(File.dirname(__FILE__) ,'../spec_helper'))
|
10
|
-
require 'automatic'
|
11
|
-
require 'automatic/pipeline'
|
12
|
-
|
13
|
-
TEST_MODULES = ["SubscriptionFeed", "FilterIgnore"] if TEST_MODULES.nil?
|
14
|
-
|
15
|
-
describe Automatic::Pipeline do
|
16
|
-
describe "in default dir" do
|
17
|
-
before do
|
18
|
-
Automatic.root_dir = File.expand_path(File.join(File.dirname(__FILE__), "../../"))
|
19
|
-
Automatic.user_dir = nil
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "#load_plugin" do
|
23
|
-
it "raise no plugin error" do
|
24
|
-
lambda{
|
25
|
-
Automatic::Pipeline.load_plugin "FooBar"
|
26
|
-
}.should raise_exception(Automatic::NoPluginError,
|
27
|
-
/unknown plugin named FooBar/)
|
28
|
-
end
|
29
|
-
|
30
|
-
it "correctly load module" do
|
31
|
-
TEST_MODULES.each do |mod|
|
32
|
-
Automatic::Pipeline.load_plugin mod.to_s
|
33
|
-
Automatic::Plugin.const_get(mod).class.should == Class
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "#run" do
|
39
|
-
it "run a recipe with FilterIgnore module" do
|
40
|
-
plugin = mock("plugin")
|
41
|
-
plugin.should_receive(:module).and_return("FilterIgnore")
|
42
|
-
plugin.should_receive(:config)
|
43
|
-
recipe = mock("recipe")
|
44
|
-
recipe.should_receive(:each_plugin).and_yield(plugin)
|
45
|
-
Automatic::Pipeline.run(recipe).should == []
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "in user dir" do
|
51
|
-
before do
|
52
|
-
Automatic.root_dir = File.expand_path(File.join(File.dirname(__FILE__), "../../"))
|
53
|
-
Automatic.user_dir = File.expand_path(File.join(File.dirname(__FILE__), "../user_dir/"))
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "#load_plugin" do
|
57
|
-
it "correctly load module" do
|
58
|
-
# StoreMock is the mock class that it return pipeline.
|
59
|
-
mock = "StoreMock"
|
60
|
-
Automatic::Pipeline.load_plugin mock
|
61
|
-
klass = Automatic::Plugin.const_get(mock)
|
62
|
-
klass.class.should == Class
|
63
|
-
klass.new(nil, ["mock"]).run.should == "mock"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
global:
|
2
|
-
timezone: Asia/Tokyo
|
3
|
-
cache:
|
4
|
-
base: /tmp
|
5
|
-
log:
|
6
|
-
level: info
|
7
|
-
|
8
|
-
plugins:
|
9
|
-
- module: SubscriptionFeed
|
10
|
-
config:
|
11
|
-
feeds:
|
12
|
-
- http://b.hatena.ne.jp/Naruhodius/rss
|
13
|
-
|
14
|
-
- module: PublishMail
|
15
|
-
config:
|
16
|
-
port: 25
|
17
|
-
mailto: plagger.receiver@gmail.com
|
18
|
-
mailfrom: automatic@harpuia.id774.net
|
19
|
-
|
20
|
-
#- module: PublishConsole
|
21
|
-
|