automatic 12.3.0 → 12.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/README.md +54 -36
- data/Rakefile +14 -0
- data/VERSION +1 -1
- data/automatic.gemspec +17 -5
- data/bin/automatic +37 -3
- data/bin/automatic-config +77 -0
- data/config/default.yml +9 -12
- data/doc/ChangeLog +32 -8
- data/doc/PLUGINS +205 -0
- data/doc/PLUGINS.ja +2 -3
- data/doc/README +488 -0
- data/doc/README.ja +195 -131
- data/lib/automatic/feed_parser.rb +1 -9
- data/lib/automatic/log.rb +1 -9
- data/lib/automatic/opml.rb +239 -0
- data/lib/automatic/pipeline.rb +16 -10
- data/lib/automatic/recipe.rb +3 -4
- data/lib/automatic.rb +32 -38
- data/lib/config/validator.rb +83 -0
- data/plugins/custom_feed/svn_log.rb +1 -1
- data/plugins/filter/ignore.rb +9 -1
- data/plugins/notify/ikachan.rb +7 -6
- data/plugins/publish/hatena_bookmark.rb +6 -9
- data/script/build +63 -0
- data/spec/lib/automatic/pipeline_spec.rb +55 -0
- data/spec/lib/automatic_spec.rb +77 -0
- data/spec/lib/pipeline_spec.rb +67 -0
- data/spec/plugins/filter/ignore_spec.rb +16 -0
- data/spec/plugins/filter/image_spec.rb +4 -4
- data/spec/plugins/filter/tumblr_resize_spec.rb +4 -4
- data/spec/plugins/notify/ikachan_spec.rb +30 -0
- data/spec/plugins/publish/console_spec.rb +1 -2
- data/spec/plugins/publish/hatena_bookmark_spec.rb +36 -1
- data/spec/plugins/store/full_text_spec.rb +0 -2
- data/spec/plugins/store/permalink_spec.rb +0 -1
- data/spec/plugins/store/target_link_spec.rb +0 -1
- data/spec/plugins/subscription/feed_spec.rb +0 -1
- data/spec/spec_helper.rb +6 -4
- data/spec/user_dir/plugins/store/mock.rb +12 -0
- data/test/fixtures/sampleOPML.xml +11 -0
- data/test/integration/test_activerecord.yml +2 -2
- data/test/integration/test_fulltext.yml +3 -3
- data/test/integration/test_hatenabookmark.yml +6 -2
- data/test/integration/test_ignore.yml +4 -1
- data/test/integration/test_ignore2.yml +1 -4
- data/test/integration/test_image2local.yml +3 -5
- data/test/integration/test_svnlog.yml +2 -1
- data/test/integration/test_tumblr2local.yml +3 -3
- metadata +43 -22
- data/utils/auto_discovery.rb +0 -18
- data/utils/opml_parser.rb +0 -247
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,14 +3,21 @@ Automatic Ruby
|
|
3
3
|
|
4
4
|
**Ruby General Automation Framework**
|
5
5
|
|
6
|
-
See doc/README.ja file.
|
7
|
-
(document written in Japanese.)
|
8
6
|
|
7
|
+
Description
|
8
|
+
-----------
|
9
|
+
|
10
|
+
This is a general-purpose automatic processing
|
11
|
+
ruby framework which can extend the functionality
|
12
|
+
by plug-ins.
|
13
|
+
|
14
|
+
See doc/README file.
|
9
15
|
|
10
|
-
Usage
|
11
|
-
-----
|
12
16
|
|
13
|
-
Get
|
17
|
+
Get Started
|
18
|
+
-----------
|
19
|
+
|
20
|
+
Installation.
|
14
21
|
|
15
22
|
``` html
|
16
23
|
gem install automatic
|
@@ -22,7 +29,36 @@ Specify any recipe with -c option.
|
|
22
29
|
automatic -c <recipe>
|
23
30
|
```
|
24
31
|
|
25
|
-
|
32
|
+
Example.
|
33
|
+
|
34
|
+
``` html
|
35
|
+
$ automatic -c config/feed2console.yml
|
36
|
+
```
|
37
|
+
|
38
|
+
|
39
|
+
What is Recipe?
|
40
|
+
---------------
|
41
|
+
|
42
|
+
Automatic Ruby parses configuration file that was written
|
43
|
+
in the form of YAML which including variety of information
|
44
|
+
of associated plug-ins.
|
45
|
+
|
46
|
+
This YAML file is called "Recipe".
|
47
|
+
|
48
|
+
When you start automatic ruby without argument -c option,
|
49
|
+
the config/default.yml is called. You can use -c option for
|
50
|
+
specify a file name.
|
51
|
+
|
52
|
+
The Recipe has an implicit naming convention.
|
53
|
+
|
54
|
+
``` html
|
55
|
+
plugins:
|
56
|
+
- module: MODULE_NAME
|
57
|
+
config:
|
58
|
+
VARIABLES
|
59
|
+
```
|
60
|
+
|
61
|
+
For more info, refer to the document (doc/README).
|
26
62
|
|
27
63
|
|
28
64
|
Environment
|
@@ -44,31 +80,13 @@ We need your help.
|
|
44
80
|
|
45
81
|
+ https://github.com/id774/automaticruby/issues
|
46
82
|
|
47
|
-
**
|
48
|
-
|
49
|
-
+ http://id774.net/jenkins/
|
83
|
+
**RubyFroge**
|
50
84
|
|
85
|
+
+ http://rubyforge.org/projects/automatic/
|
51
86
|
|
52
|
-
|
53
|
-
-----------
|
54
|
-
|
55
|
-
1. Fork the repository.
|
56
|
-
2. Write new plugin or existing code improvement.
|
57
|
-
3. Send pull request!
|
58
|
-
|
59
|
-
After that, we will give you the right to commit for a quick fix finely.
|
60
|
-
|
61
|
-
|
62
|
-
Coding Rule
|
63
|
-
-----------
|
87
|
+
**CI**
|
64
88
|
|
65
|
-
+
|
66
|
-
+ Remove the space at the end of a line.
|
67
|
-
+ Namespace and conventions, see the existing code.
|
68
|
-
+ {} is recommended than do end (To avoid end end end,,).
|
69
|
-
+ RDoc Header is written by creator of the file.
|
70
|
-
+ Write RSPec tests.
|
71
|
-
+ Aim at 100% coverage.
|
89
|
+
+ http://id774.net/jenkins/
|
72
90
|
|
73
91
|
|
74
92
|
ChangeLog
|
@@ -87,6 +105,12 @@ Releases will be numbered with the follow format:
|
|
87
105
|
This naming convention is to mimic the Ubuntu.
|
88
106
|
|
89
107
|
|
108
|
+
Developers
|
109
|
+
----------
|
110
|
+
|
111
|
+
See doc/AUTHORS.
|
112
|
+
|
113
|
+
|
90
114
|
Author
|
91
115
|
------
|
92
116
|
|
@@ -96,14 +120,8 @@ Author
|
|
96
120
|
+ http://github.com/id774
|
97
121
|
|
98
122
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
See doc/AUTHORS.
|
103
|
-
|
104
|
-
|
105
|
-
Copyright and license
|
106
|
-
---------------------
|
123
|
+
License
|
124
|
+
-------
|
107
125
|
|
108
126
|
Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
109
127
|
|
data/Rakefile
CHANGED
@@ -9,6 +9,20 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
|
|
9
9
|
spec.pattern = FileList['spec/**/*_spec.rb']
|
10
10
|
end
|
11
11
|
|
12
|
+
namespace :spec do
|
13
|
+
desc "Run RSpec for plugins"
|
14
|
+
RSpec::Core::RakeTask.new(:plugins) do |spec|
|
15
|
+
spec.rspec_opts = ["-c"]
|
16
|
+
spec.pattern = FileList['spec/plugins/**/*_spec.rb']
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Run RSpec for main procedure"
|
20
|
+
RSpec::Core::RakeTask.new(:lib) do |spec|
|
21
|
+
spec.rspec_opts = ["-c"]
|
22
|
+
spec.pattern = FileList['spec/lib/**/*_spec.rb']
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
12
26
|
require 'jeweler'
|
13
27
|
Jeweler::Tasks.new do |gem|
|
14
28
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
12.3.
|
1
|
+
12.3.1
|
data/automatic.gemspec
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "automatic"
|
8
|
-
s.version = "12.3.
|
8
|
+
s.version = "12.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["id774"]
|
12
|
-
s.date = "2012-03-
|
12
|
+
s.date = "2012-03-16"
|
13
13
|
s.description = "Ruby General Automation Framework"
|
14
14
|
s.email = "idnanashi@gmail.com"
|
15
|
-
s.executables = ["automatic"]
|
15
|
+
s.executables = ["automatic", "automatic-config"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"README.md"
|
18
18
|
]
|
@@ -23,20 +23,25 @@ Gem::Specification.new do |s|
|
|
23
23
|
"VERSION",
|
24
24
|
"automatic.gemspec",
|
25
25
|
"bin/automatic",
|
26
|
+
"bin/automatic-config",
|
26
27
|
"config/default.yml",
|
27
28
|
"config/feed2console.yml",
|
28
29
|
"db/.gitkeep",
|
29
30
|
"doc/AUTHORS",
|
30
31
|
"doc/COPYING",
|
31
32
|
"doc/ChangeLog",
|
33
|
+
"doc/PLUGINS",
|
32
34
|
"doc/PLUGINS.ja",
|
35
|
+
"doc/README",
|
33
36
|
"doc/README.ja",
|
34
37
|
"lib/automatic.rb",
|
35
38
|
"lib/automatic/environment.rb",
|
36
39
|
"lib/automatic/feed_parser.rb",
|
37
40
|
"lib/automatic/log.rb",
|
41
|
+
"lib/automatic/opml.rb",
|
38
42
|
"lib/automatic/pipeline.rb",
|
39
43
|
"lib/automatic/recipe.rb",
|
44
|
+
"lib/config/validator.rb",
|
40
45
|
"plugins/custom_feed/svn_log.rb",
|
41
46
|
"plugins/filter/ignore.rb",
|
42
47
|
"plugins/filter/image.rb",
|
@@ -51,6 +56,10 @@ Gem::Specification.new do |s|
|
|
51
56
|
"plugins/store/target_link.rb",
|
52
57
|
"plugins/subscription/feed.rb",
|
53
58
|
"script/bootstrap",
|
59
|
+
"script/build",
|
60
|
+
"spec/lib/automatic/pipeline_spec.rb",
|
61
|
+
"spec/lib/automatic_spec.rb",
|
62
|
+
"spec/lib/pipeline_spec.rb",
|
54
63
|
"spec/plugins/custom_feed/svn_log_spec.rb",
|
55
64
|
"spec/plugins/filter/ignore_spec.rb",
|
56
65
|
"spec/plugins/filter/image_spec.rb",
|
@@ -64,6 +73,8 @@ Gem::Specification.new do |s|
|
|
64
73
|
"spec/plugins/store/target_link_spec.rb",
|
65
74
|
"spec/plugins/subscription/feed_spec.rb",
|
66
75
|
"spec/spec_helper.rb",
|
76
|
+
"spec/user_dir/plugins/store/mock.rb",
|
77
|
+
"test/fixtures/sampleOPML.xml",
|
67
78
|
"test/integration/test_activerecord.yml",
|
68
79
|
"test/integration/test_fulltext.yml",
|
69
80
|
"test/integration/test_hatenabookmark.yml",
|
@@ -72,8 +83,6 @@ Gem::Specification.new do |s|
|
|
72
83
|
"test/integration/test_image2local.yml",
|
73
84
|
"test/integration/test_svnlog.yml",
|
74
85
|
"test/integration/test_tumblr2local.yml",
|
75
|
-
"utils/auto_discovery.rb",
|
76
|
-
"utils/opml_parser.rb",
|
77
86
|
"vendor/.gitkeep"
|
78
87
|
]
|
79
88
|
s.homepage = "http://github.com/id774/automaticruby"
|
@@ -92,6 +101,7 @@ Gem::Specification.new do |s|
|
|
92
101
|
s.add_runtime_dependency(%q<activerecord>, ["~> 3"])
|
93
102
|
s.add_runtime_dependency(%q<gcalapi>, [">= 0"])
|
94
103
|
s.add_runtime_dependency(%q<xml-simple>, [">= 0"])
|
104
|
+
s.add_runtime_dependency(%q<feedbag>, [">= 0"])
|
95
105
|
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
96
106
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
97
107
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
@@ -102,6 +112,7 @@ Gem::Specification.new do |s|
|
|
102
112
|
s.add_dependency(%q<activerecord>, ["~> 3"])
|
103
113
|
s.add_dependency(%q<gcalapi>, [">= 0"])
|
104
114
|
s.add_dependency(%q<xml-simple>, [">= 0"])
|
115
|
+
s.add_dependency(%q<feedbag>, [">= 0"])
|
105
116
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
106
117
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
107
118
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
@@ -113,6 +124,7 @@ Gem::Specification.new do |s|
|
|
113
124
|
s.add_dependency(%q<activerecord>, ["~> 3"])
|
114
125
|
s.add_dependency(%q<gcalapi>, [">= 0"])
|
115
126
|
s.add_dependency(%q<xml-simple>, [">= 0"])
|
127
|
+
s.add_dependency(%q<feedbag>, [">= 0"])
|
116
128
|
s.add_dependency(%q<cucumber>, [">= 0"])
|
117
129
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
118
130
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
data/bin/automatic
CHANGED
@@ -3,13 +3,47 @@
|
|
3
3
|
# Name:: Automatic::Ruby
|
4
4
|
# Author:: 774 <http://id774.net>
|
5
5
|
# Created:: Feb 18, 2012
|
6
|
-
# Updated::
|
6
|
+
# Updated:: Mar 16, 2012
|
7
7
|
# Copyright:: 774 Copyright (c) 2012
|
8
8
|
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
9
|
|
10
10
|
root_dir = File.expand_path("..", File.dirname(__FILE__))
|
11
11
|
$:.unshift root_dir
|
12
12
|
$:.unshift root_dir + '/lib'
|
13
|
-
require '
|
13
|
+
require 'automatic'
|
14
|
+
require 'optparse'
|
14
15
|
|
15
|
-
|
16
|
+
recipe_path = ""
|
17
|
+
parser = OptionParser.new { |parser|
|
18
|
+
parser.banner = "Usage: automatic [options] arg"
|
19
|
+
parser.version = Automatic.const_get(:VERSION)
|
20
|
+
parser.separator "options:"
|
21
|
+
parser.on('-c', '--config FILE', String,
|
22
|
+
"recipe YAML file"){|c| recipe_path = c}
|
23
|
+
parser.on('-h', '--help', "show this message") {
|
24
|
+
puts parser
|
25
|
+
exit
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
begin
|
30
|
+
parser.parse!
|
31
|
+
puts "Loading #{recipe_path}" unless recipe_path.empty?
|
32
|
+
rescue OptionParser::ParseError => err
|
33
|
+
$stderr.puts err.message
|
34
|
+
$stderr.puts parser.help
|
35
|
+
exit 1
|
36
|
+
end
|
37
|
+
|
38
|
+
if recipe_path.to_s.empty?
|
39
|
+
if ENV["AUTOMATIC_RUBY_ENV"] == "test"
|
40
|
+
recpie_path = File.join(root_dir, 'config/default.yml')
|
41
|
+
else
|
42
|
+
puts parser
|
43
|
+
exit 0
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
recipe = Automatic::Recipe.new(recipe_path)
|
48
|
+
Automatic.run(:recipe => recipe,
|
49
|
+
:root_dir => root_dir)
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# Name:: Automatic::Ruby
|
4
|
+
# Author:: kzgs
|
5
|
+
# Created:: Mar 11, 2012
|
6
|
+
# Updated:: Mar 11, 2012
|
7
|
+
# Copyright:: kzgs Copyright (c) 2012
|
8
|
+
# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
|
9
|
+
|
10
|
+
root_dir = File.expand_path("..", File.dirname(__FILE__))
|
11
|
+
$:.unshift root_dir + '/lib'
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'optparse'
|
15
|
+
|
16
|
+
parser = OptionParser.new { |opt|
|
17
|
+
}
|
18
|
+
|
19
|
+
def abort_with_usage(subcommand, message)
|
20
|
+
top_filename = File.basename($0)
|
21
|
+
abort("Usage: #{top_filename} #{subcommand} #{message}")
|
22
|
+
end
|
23
|
+
|
24
|
+
subparsers = {
|
25
|
+
'scaffold' => lambda { |argv|
|
26
|
+
Dir::entries(root_dir + '/plugins').sort.each { |path|
|
27
|
+
require 'fileutils'
|
28
|
+
dir = (File.expand_path('~/.automatic/plugins/' + path))
|
29
|
+
unless File.exist?(dir)
|
30
|
+
FileUtils.mkdir_p(dir)
|
31
|
+
puts "Create Directory #{dir}"
|
32
|
+
end
|
33
|
+
}
|
34
|
+
},
|
35
|
+
'autodiscovery' => lambda { |argv|
|
36
|
+
require 'pp'
|
37
|
+
require 'feedbag'
|
38
|
+
url = argv.shift || abort_with_usage("autodiscovery", "<url>")
|
39
|
+
pp Feedbag.find(url)
|
40
|
+
},
|
41
|
+
'opmlparser' => lambda { |argv|
|
42
|
+
require 'automatic/opml'
|
43
|
+
path = argv.shift
|
44
|
+
if path.nil?
|
45
|
+
abort_with_usage("opmlparser", "<opml path>")
|
46
|
+
end
|
47
|
+
parser = Automatic::OPML::Parser.new(File.read(path))
|
48
|
+
parser.each_outline {|opml, o|
|
49
|
+
puts "#{o.xmlUrl}"
|
50
|
+
}
|
51
|
+
},
|
52
|
+
'feedparser' => lambda { |argv|
|
53
|
+
require 'pp'
|
54
|
+
require 'automatic/feed_parser'
|
55
|
+
url = argv.shift || abort_with_usage("feedparser", "<url>")
|
56
|
+
rss_results = Automatic::FeedParser.get_rss(url)
|
57
|
+
pp rss_results
|
58
|
+
},
|
59
|
+
'log' => lambda { |argv|
|
60
|
+
require 'automatic/log'
|
61
|
+
level = argv.shift || abort_with_usage("log", "<level> <message>")
|
62
|
+
message = ARGV.shift
|
63
|
+
Automatic::Log.puts(level, message)
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
parser.order!(ARGV)
|
68
|
+
|
69
|
+
if ARGV.empty?
|
70
|
+
puts "Available commands: #{subparsers.keys.join(", ")}"
|
71
|
+
exit 1
|
72
|
+
end
|
73
|
+
|
74
|
+
Hash.new { |h, k|
|
75
|
+
puts "No such subcommand: #{k}"
|
76
|
+
exit 1
|
77
|
+
}.update(subparsers)[ARGV.shift].call(ARGV)
|
data/config/default.yml
CHANGED
@@ -9,21 +9,18 @@ plugins:
|
|
9
9
|
- module: SubscriptionFeed
|
10
10
|
config:
|
11
11
|
feeds:
|
12
|
-
- http://
|
13
|
-
|
14
|
-
- module: FilterIgnore
|
15
|
-
config:
|
16
|
-
exclude:
|
17
|
-
- hoge
|
18
|
-
- fuga
|
12
|
+
- http://reretlet.tumblr.com/rss
|
19
13
|
|
20
14
|
- module: StorePermalink
|
21
15
|
config:
|
22
|
-
db:
|
16
|
+
db: tumblr.db
|
17
|
+
|
18
|
+
- module: FilterImage
|
19
|
+
|
20
|
+
- module: FilterTumblrResize
|
23
21
|
|
24
|
-
- module:
|
22
|
+
- module: StoreTargetLink
|
25
23
|
config:
|
26
|
-
|
27
|
-
|
28
|
-
interval: 5
|
24
|
+
path: /tmp
|
25
|
+
interval: 2
|
29
26
|
|
data/doc/ChangeLog
CHANGED
@@ -1,8 +1,32 @@
|
|
1
|
+
=== 12.3.1 / 2012-03-16
|
2
|
+
|
3
|
+
* English Documents.
|
4
|
+
|
5
|
+
* doc/README
|
6
|
+
* doc/PLUGINS
|
7
|
+
|
8
|
+
* The user who installed the gem package be able to create own plugins.
|
9
|
+
|
10
|
+
* ~/.automatic/plugins
|
11
|
+
|
12
|
+
* Utils merged to automatic-config command and added following subcommand.
|
13
|
+
|
14
|
+
* scaffold
|
15
|
+
* autodiscovery
|
16
|
+
* opmlparser
|
17
|
+
* feedparser
|
18
|
+
* log
|
19
|
+
|
20
|
+
* Added Integration Test Script for CI.
|
21
|
+
|
22
|
+
* script/build
|
23
|
+
|
24
|
+
|
1
25
|
=== 12.03 / 2012-03-07
|
2
26
|
|
3
|
-
* Distribute as a gem library
|
27
|
+
* Distribute as a gem library.
|
4
28
|
|
5
|
-
* Plugins added
|
29
|
+
* Plugins added.
|
6
30
|
|
7
31
|
* CustomFeed::SVNLog
|
8
32
|
* Notify::Ikachan
|
@@ -10,27 +34,27 @@
|
|
10
34
|
* Filter::Image
|
11
35
|
* Store::TargetLink
|
12
36
|
|
13
|
-
* CI / Build scripts
|
37
|
+
* CI / Build scripts.
|
14
38
|
|
15
39
|
* script/bootstrap
|
16
40
|
|
17
|
-
* Signficant Refactoring
|
41
|
+
* Signficant Refactoring.
|
18
42
|
|
19
43
|
|
20
44
|
=== 12.02.1 / 2012-02-25
|
21
45
|
|
22
|
-
* Point release
|
46
|
+
* Point release.
|
23
47
|
|
24
48
|
* Big Refactoring for core.
|
25
|
-
|
49
|
+
* Reorganization of the namespace.
|
26
50
|
* A few plugins added.
|
27
51
|
|
28
52
|
|
29
53
|
=== 12.02 / 2012-02-18
|
30
54
|
|
31
|
-
* First release
|
55
|
+
* First release.
|
32
56
|
|
33
57
|
* Scratch of this script.
|
34
|
-
|
58
|
+
* Plugin existing only for hatenabookmark.
|
35
59
|
|
36
60
|
|
data/doc/PLUGINS
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
===========================
|
2
|
+
Description of the plug-ins
|
3
|
+
===========================
|
4
|
+
|
5
|
+
SubscriptionFeed
|
6
|
+
----------------
|
7
|
+
[Path]
|
8
|
+
/plugins/subscription/feed.rb
|
9
|
+
|
10
|
+
[Abstract]
|
11
|
+
Subscribe to feed.
|
12
|
+
|
13
|
+
[Syntax]
|
14
|
+
- module: SubscriptionFeed
|
15
|
+
config:
|
16
|
+
feeds:
|
17
|
+
- FEED
|
18
|
+
- FEED ...
|
19
|
+
|
20
|
+
|
21
|
+
FilterIgnore
|
22
|
+
------------
|
23
|
+
[Path]
|
24
|
+
/plugins/filter/ignore.rb
|
25
|
+
|
26
|
+
[Abstract]
|
27
|
+
To exclude the NG word.
|
28
|
+
|
29
|
+
[Syntax]
|
30
|
+
- module: FilterIgnore
|
31
|
+
config:
|
32
|
+
exclude:
|
33
|
+
- KEYWORD
|
34
|
+
- KEYWORD ...
|
35
|
+
|
36
|
+
|
37
|
+
FilterImage
|
38
|
+
------------
|
39
|
+
[Path]
|
40
|
+
/plugins/filter/image.rb
|
41
|
+
|
42
|
+
[Abstract]
|
43
|
+
Rewrite the permalink to link of the image in the contents.
|
44
|
+
If there is no link of image, the permalink will be nil.
|
45
|
+
|
46
|
+
[Syntax]
|
47
|
+
- module: FilterImage
|
48
|
+
|
49
|
+
|
50
|
+
FilterTumblrResize
|
51
|
+
--------------------
|
52
|
+
[Path]
|
53
|
+
/plugins/filter/tumblr_resize.rb
|
54
|
+
|
55
|
+
[Abstract]
|
56
|
+
To rewrite the permalink to the maximum size of
|
57
|
+
the Tumblr (High Res).
|
58
|
+
|
59
|
+
[Assumption]
|
60
|
+
It has already been rewritten to perm link image link
|
61
|
+
|
62
|
+
[Syntax]
|
63
|
+
- module: FilterTumblrResize
|
64
|
+
|
65
|
+
|
66
|
+
StorePermalink
|
67
|
+
--------------
|
68
|
+
[Path]
|
69
|
+
/plugins/store/permalink.rb
|
70
|
+
|
71
|
+
[Abstract]
|
72
|
+
To save a permanent link.
|
73
|
+
The duplicate permalink will be discarded.
|
74
|
+
|
75
|
+
[Syntax]
|
76
|
+
- module: StoreBookmark
|
77
|
+
config:
|
78
|
+
db: DB_NAME
|
79
|
+
|
80
|
+
|
81
|
+
StoreFullText
|
82
|
+
-------------
|
83
|
+
[Path]
|
84
|
+
/plugins/store/full_text.rb
|
85
|
+
|
86
|
+
[Abstract]
|
87
|
+
To save a full text of contents.
|
88
|
+
|
89
|
+
Saved text can be viewed in the viewer below
|
90
|
+
https://github.com/id774/blog_viewer
|
91
|
+
|
92
|
+
[Syntax]
|
93
|
+
- Module: StoreFullText
|
94
|
+
config:
|
95
|
+
db: DB_NAME
|
96
|
+
|
97
|
+
|
98
|
+
StoreTargetLink
|
99
|
+
---------------
|
100
|
+
[Path]
|
101
|
+
/plugins/store/target_link.rb
|
102
|
+
|
103
|
+
[Abstract]
|
104
|
+
To store target locally.
|
105
|
+
This emulate "Right click to save".
|
106
|
+
|
107
|
+
[Syntax]
|
108
|
+
- Module: StoreTargetLink
|
109
|
+
config:
|
110
|
+
path: SAVE_TO_PATH
|
111
|
+
interval: INTERVAL_FOR_DOWNLOAD (in seconds.)
|
112
|
+
|
113
|
+
|
114
|
+
PublishConsole
|
115
|
+
--------------
|
116
|
+
[Path]
|
117
|
+
/plugins/publish/console.rb
|
118
|
+
|
119
|
+
[Abstract]
|
120
|
+
Output pipeline to the console.
|
121
|
+
|
122
|
+
[Syntax]
|
123
|
+
- module: PublishConsole
|
124
|
+
|
125
|
+
|
126
|
+
PublishHatenaBookmark
|
127
|
+
---------------------
|
128
|
+
[Path]
|
129
|
+
/plugins/publish/hatenabookmark.rb
|
130
|
+
|
131
|
+
[Abstract]
|
132
|
+
To Hatena Bookmark (Social Bookmark).
|
133
|
+
|
134
|
+
[Description]
|
135
|
+
To generate the XML for submission to
|
136
|
+
Hatena Bookmark API.
|
137
|
+
|
138
|
+
[Syntax]
|
139
|
+
- Modu - module: PublishHatenaBookmark
|
140
|
+
config:
|
141
|
+
username: HATENA_ID
|
142
|
+
passowrd: PASSWORD
|
143
|
+
interval: INTERVAL_FOR_BOOKMARK (in seconds.)
|
144
|
+
|
145
|
+
|
146
|
+
PublishGoogleCalendar
|
147
|
+
---------------------
|
148
|
+
[Path]
|
149
|
+
/plugins/publish/google_calendar.rb
|
150
|
+
|
151
|
+
[Abstract]
|
152
|
+
To register an appointment to Google Calendar.
|
153
|
+
|
154
|
+
[Description]
|
155
|
+
Register item.title to Google Calendar.
|
156
|
+
|
157
|
+
[Notation recipe]
|
158
|
+
- module: PublishGoogleCalendar
|
159
|
+
config:
|
160
|
+
username: GOOGLE_ACCOUNT
|
161
|
+
password: PASSWORD
|
162
|
+
interval: INTERVAL
|
163
|
+
|
164
|
+
|
165
|
+
NotifyIkachan
|
166
|
+
-------------
|
167
|
+
[Path]
|
168
|
+
/plugins/notify/ikachan.rb
|
169
|
+
|
170
|
+
[Abstract]
|
171
|
+
To send a message to ikachan.
|
172
|
+
|
173
|
+
[Description]
|
174
|
+
POST to ikachan via HTTP.
|
175
|
+
ikachan is: http://blog.yappo.jp/yappo/archives/000760.html
|
176
|
+
|
177
|
+
[Syntax]
|
178
|
+
- module: NotifyIkachan
|
179
|
+
config:
|
180
|
+
url: http://sample.com
|
181
|
+
port: 4979 # port number, the default is 4979.
|
182
|
+
channels: foo,bar,#baz # '#' is priced automatically, multiple by ','
|
183
|
+
command: notice # privmsg,notice etc..
|
184
|
+
interval: 5 # post interval. (s)
|
185
|
+
|
186
|
+
|
187
|
+
CustomFeedSVNLog
|
188
|
+
----------------
|
189
|
+
[Path]
|
190
|
+
/plugins/custom/feed_svn_log.rb
|
191
|
+
|
192
|
+
[Abstract]
|
193
|
+
Get new revision info from SVN.
|
194
|
+
|
195
|
+
[Description]
|
196
|
+
To get the number that is specified by fetch_items.
|
197
|
+
|
198
|
+
[Notation recipe]
|
199
|
+
- Module: CustomFeedSVNLog
|
200
|
+
- module: CustomFeedSVNLog
|
201
|
+
config:
|
202
|
+
target: http://redmine.rubyforge.org/svn
|
203
|
+
fetch_items: 2 # If not specified, 30
|
204
|
+
|
205
|
+
|
data/doc/PLUGINS.ja
CHANGED
@@ -135,7 +135,7 @@ PublishHatenaBookmark
|
|
135
135
|
送信する
|
136
136
|
|
137
137
|
[レシピ記法]
|
138
|
-
- module:
|
138
|
+
- module: PublishHatenaBookmark
|
139
139
|
config:
|
140
140
|
username: はてな ID
|
141
141
|
passowrd: パスワード
|
@@ -151,8 +151,7 @@ PublishGoogleCalendar
|
|
151
151
|
Google Calendar に予定を登録する
|
152
152
|
|
153
153
|
[説明]
|
154
|
-
item.title
|
155
|
-
登録する
|
154
|
+
item.title を Google カレンダーに登録する
|
156
155
|
|
157
156
|
[レシピ記法]
|
158
157
|
- module: PublishGoogleCalendar
|