automatic 12.3.0 → 12.3.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 +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
|