inochi 3.0.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/inochi/engine.rb +1 -1
- data/lib/inochi/inochi.rb +6 -6
- data/lib/inochi/tasks/1-init.rake +4 -4
- data/lib/inochi/tasks/3-man.rake +1 -0
- data/lib/inochi/tasks/4-ann.rake +4 -4
- data/lib/inochi/tasks/5-gem.rake +12 -0
- data/lib/inochi/tasks/6-pub.rake +37 -32
- data/lib/inochi/templates/{FURTHER.rbs → BEYOND.rbs} +0 -0
- data/lib/inochi/templates/HACKING.rbs +5 -4
- data/lib/inochi/templates/HISTORY.rbs +1 -1
- data/lib/inochi/templates/MANUAL.rbs +10 -3
- data/lib/inochi/templates/README.rbs +6 -6
- data/lib/inochi/templates/test_helper.rb.rbs +1 -0
- data/lib/inochi/templates/test_runner.rbs +16 -11
- data/man.html +160 -104
- data/man/man1/inochi.1.gz +0 -0
- metadata +36 -13
data/lib/inochi/engine.rb
CHANGED
@@ -58,7 +58,7 @@ module Inochi
|
|
58
58
|
# path. If the given path already exists, then a
|
59
59
|
# backup is created before invoking the merging tool.
|
60
60
|
#
|
61
|
-
def create path, body, merger = ENV[
|
61
|
+
def create path, body, merger = ENV['merger']
|
62
62
|
generate path, body do |*files|
|
63
63
|
system "#{merger} #{Shellwords.join files}" if merger
|
64
64
|
end
|
data/lib/inochi/inochi.rb
CHANGED
@@ -18,12 +18,12 @@ module Inochi
|
|
18
18
|
##
|
19
19
|
# Number of this release of this project.
|
20
20
|
#
|
21
|
-
VERSION = '
|
21
|
+
VERSION = '4.0.0'
|
22
22
|
|
23
23
|
##
|
24
24
|
# Date of this release of this project.
|
25
25
|
#
|
26
|
-
RELDATE = '2010-
|
26
|
+
RELDATE = '2010-07-25'
|
27
27
|
|
28
28
|
##
|
29
29
|
# Description of this release of this project.
|
@@ -57,11 +57,11 @@ module Inochi
|
|
57
57
|
RUNTIME = {
|
58
58
|
'ember' => [ '>= 0.3.0' , '< 1' ], # for eRuby templates
|
59
59
|
'highline' => [ '>= 1.5' , '< 2' ], # for echoless password entry
|
60
|
-
'mechanize' => [ '~> 1'
|
60
|
+
'mechanize' => [ '~> 1' , '< 2' ], # for publishing announcements
|
61
61
|
'nokogiri' => [ '>= 1.4' , '< 2' ], # for parsing HTML and XML
|
62
62
|
'rake' => [ '>= 0.8.4' , '< 1' ], # for Inochi::Engine
|
63
|
-
'ronn' => [ '>= 0.
|
64
|
-
'yard' => [
|
63
|
+
'ronn' => [ '>= 0.7.0' , '< 1' ], # for making UNIX man pages
|
64
|
+
'yard' => [ '>= 0.5.8' , '< 1' ], # for making API documentation
|
65
65
|
}
|
66
66
|
|
67
67
|
##
|
@@ -82,7 +82,7 @@ module Inochi
|
|
82
82
|
# }
|
83
83
|
#
|
84
84
|
DEVTIME = {
|
85
|
-
'
|
85
|
+
'detest' => [ '>= 3.1.0', '< 4' ], # for unit testing
|
86
86
|
}
|
87
87
|
|
88
88
|
# establish gem version dependencies
|
@@ -1,12 +1,12 @@
|
|
1
1
|
desc 'Instill Inochi into current directory.'
|
2
2
|
task :init do
|
3
3
|
|
4
|
-
unless project_name = ENV[
|
4
|
+
unless project_name = ENV['project']
|
5
5
|
raise ArgumentError, 'project name not specified'
|
6
6
|
end
|
7
7
|
|
8
8
|
library_name = Engine.calc_library_name(project_name)
|
9
|
-
package_name = ENV[
|
9
|
+
package_name = ENV['package'] || Engine.calc_package_name(library_name)
|
10
10
|
|
11
11
|
project_version = '0.0.0'
|
12
12
|
project_release = Time.now.strftime('%F')
|
@@ -22,7 +22,7 @@ task :init do
|
|
22
22
|
|
23
23
|
create_from_rbs binding, 'test/runner', 'test_runner'
|
24
24
|
chmod 0755, 'test/runner'
|
25
|
-
create_from_rbs binding, 'test/
|
25
|
+
create_from_rbs binding, 'test/helper.rb', 'test_helper.rb'
|
26
26
|
create_from_rbs binding, "test/#{package_name}_test.rb", 'library_test.rb'
|
27
27
|
|
28
28
|
create_from_rbs binding, 'LICENSE'
|
@@ -33,6 +33,6 @@ task :init do
|
|
33
33
|
create_from_rbs binding, 'HACKING'
|
34
34
|
create_from_rbs binding, 'HISTORY'
|
35
35
|
create_from_rbs binding, 'CREDITS'
|
36
|
-
create_from_rbs binding, '
|
36
|
+
create_from_rbs binding, 'BEYOND'
|
37
37
|
|
38
38
|
end
|
data/lib/inochi/tasks/3-man.rake
CHANGED
data/lib/inochi/tasks/4-ann.rake
CHANGED
@@ -39,10 +39,10 @@ end
|
|
39
39
|
task :@ann_rel_html_body_nodes do
|
40
40
|
unless @ann_rel_html_body_nodes
|
41
41
|
begin
|
42
|
-
head, body = fetch_nodes_between('h2#
|
42
|
+
head, body = fetch_nodes_between('h2#HISTORY ~ h3', 'h1,h2,h3')
|
43
43
|
rescue => error
|
44
44
|
error.message.insert 0,
|
45
|
-
"The manual lacks a <H3> heading under a <H2>
|
45
|
+
"The manual lacks a <H3> heading under a <H2> HISTORY heading.\n"
|
46
46
|
raise error
|
47
47
|
end
|
48
48
|
|
@@ -87,7 +87,7 @@ task :@ann_html do
|
|
87
87
|
</center>
|
88
88
|
#{@ann_nfo_html_nodes.join}
|
89
89
|
#{@ann_rel_html_title_node}
|
90
|
-
#{@ann_rel_html_body_nodes.join}
|
90
|
+
#{@ann_rel_html_body_nodes.map(&:to_xml).join}
|
91
91
|
}.strip
|
92
92
|
|
93
93
|
@ann_html = resolve_html_links(@ann_html)
|
@@ -199,7 +199,7 @@ end
|
|
199
199
|
def convert_html_to_text html
|
200
200
|
# lynx's -dump option requires a .html file
|
201
201
|
require 'tempfile'
|
202
|
-
tmp_file = Tempfile.new(
|
202
|
+
tmp_file = Tempfile.new('inochi').path + '.html'
|
203
203
|
|
204
204
|
begin
|
205
205
|
File.write tmp_file, html
|
data/lib/inochi/tasks/5-gem.rake
CHANGED
@@ -4,6 +4,18 @@ task :gem do
|
|
4
4
|
Rake::Task[:@ann_nfo_text].invoke
|
5
5
|
Rake::Task[:@project_authors_text].invoke
|
6
6
|
|
7
|
+
# ensure that project version matches release notes
|
8
|
+
Rake::Task[:@ann_rel_html_body_nodes].invoke
|
9
|
+
|
10
|
+
version_from_notes = @ann_rel_html_title_node.inner_text
|
11
|
+
version_from_project = "Version #{@project_module::VERSION} (#{@project_module::RELDATE})"
|
12
|
+
|
13
|
+
unless version_from_notes == version_from_project
|
14
|
+
raise "Project version #{version_from_project.inspect} does not match "\
|
15
|
+
"the #{version_from_notes.inspect} version listed in the release notes."
|
16
|
+
end
|
17
|
+
|
18
|
+
# build gemspec
|
7
19
|
gem = Gem::Specification.new
|
8
20
|
gem.name = @project_package_name
|
9
21
|
gem.date = @project_module::RELDATE
|
data/lib/inochi/tasks/6-pub.rake
CHANGED
@@ -37,51 +37,56 @@ desc 'Announce release on all news outlets.'
|
|
37
37
|
task 'pub:ann' => %w[ pub:ann:raa pub:ann:ruby-talk ]
|
38
38
|
|
39
39
|
desc 'Announce release on ruby-talk mailing list.'
|
40
|
-
task 'pub:ann:ruby-talk' do
|
40
|
+
task 'pub:ann:ruby-talk' => @ann_text_dst do
|
41
41
|
site = 'http://ruby-forum.com'
|
42
42
|
|
43
|
-
|
44
|
-
|
43
|
+
# let user verify announcement before publishing
|
44
|
+
ann_text = File.read(@ann_text_dst)
|
45
|
+
puts ann_text, nil
|
45
46
|
|
46
|
-
# fetch login form
|
47
|
-
page = browser.get("#{site}/user/login")
|
48
|
-
form = page.forms_with(:action => '/user/login').first or
|
49
|
-
raise "cannot find login form on Web page: #{page.uri}"
|
50
|
-
|
51
|
-
# fill login information
|
52
47
|
require 'highline'
|
53
48
|
highline = HighLine.new
|
54
49
|
|
55
|
-
|
56
|
-
|
50
|
+
if highline.agree "Really publish this announcement to #{site}?"
|
51
|
+
require 'mechanize'
|
52
|
+
browser = Mechanize.new
|
57
53
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
54
|
+
# fetch login form
|
55
|
+
page = browser.get("#{site}/user/login")
|
56
|
+
form = page.forms_with(:action => '/user/login').first or
|
57
|
+
raise "cannot find login form on Web page: #{page.uri}"
|
62
58
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
raise "cannot find post creation form on Web page: #{page.uri}"
|
59
|
+
# fill login information
|
60
|
+
form['name'] = highline.ask("#{site} username: ")
|
61
|
+
form['password'] = highline.ask("#{site} password: ") {|q| q.echo = false }
|
67
62
|
|
68
|
-
|
69
|
-
|
70
|
-
|
63
|
+
# submit login form
|
64
|
+
page = form.click_button
|
65
|
+
page.at('a[href="/user/logout"]') or
|
66
|
+
raise "invalid login for #{site}"
|
71
67
|
|
72
|
-
|
73
|
-
|
68
|
+
# make the announcement
|
69
|
+
page = browser.get("#{site}/topic/new?forum_id=4")
|
70
|
+
form = page.forms_with(:action => '/topic/new#postform').first or
|
71
|
+
raise "cannot find post creation form on Web page: #{page.uri}"
|
74
72
|
|
75
|
-
|
76
|
-
|
73
|
+
# enable notification by email whenever
|
74
|
+
# someone replies to this announcement
|
75
|
+
form['post[subscribed_by_author]'] = '1'
|
77
76
|
|
78
|
-
|
79
|
-
|
77
|
+
Rake::Task[:@ann_subject].invoke
|
78
|
+
form['post[subject]'] = @ann_subject
|
80
79
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
80
|
+
form['post[text]'] = ann_text
|
81
|
+
|
82
|
+
# submit the announcement
|
83
|
+
page = form.submit
|
84
|
+
|
85
|
+
if error = page.at('.error')
|
86
|
+
raise "Announcement to #{site} failed:\n#{error.text}"
|
87
|
+
else
|
88
|
+
puts "Successfully announced to #{site}:", page.uri
|
89
|
+
end
|
85
90
|
end
|
86
91
|
end
|
87
92
|
|
File without changes
|
@@ -48,7 +48,8 @@ Or by setting the `$RUBYLIB` environment variable:
|
|
48
48
|
ruby bin/#{package_name}
|
49
49
|
irb -r #{package_name}
|
50
50
|
|
51
|
-
Or by
|
51
|
+
Or by running Ruby through the [ruby-wrapper](
|
52
|
+
http://github.com/chneukirchen/rup/blob/master/ruby-wrapper ) tool.
|
52
53
|
|
53
54
|
%#----------------------------------------------------------------------------
|
54
55
|
### RubyGems setup
|
@@ -74,14 +75,14 @@ Or by setting the `$RUBYOPT` environment variable:
|
|
74
75
|
%#----------------------------------------------------------------------------
|
75
76
|
|
76
77
|
Simply execute the included test runner, which sets up Ruby's `$LOAD_PATH` for
|
77
|
-
testing, loads the
|
78
|
+
testing, loads the `test/helper.rb` file, and then evaluates all
|
78
79
|
`test/**/*_test.rb` files:
|
79
80
|
|
80
|
-
test/runner
|
81
|
+
ruby test/runner
|
81
82
|
|
82
83
|
Its exit status will indicate whether all tests have passed. It may also
|
83
84
|
print additional pass/fail information depending on the testing library used
|
84
|
-
in the `test/
|
85
|
+
in the `test/helper.rb` file.
|
85
86
|
|
86
87
|
%#----------------------------------------------------------------------------
|
87
88
|
### Contributing
|
@@ -1,7 +1,14 @@
|
|
1
1
|
<%
|
2
|
+
proj_home_url = #{library_name}::WEBSITE
|
3
|
+
api_docs_url = File.join(proj_home_url, 'api/')
|
4
|
+
ann_feed_url = File.join(proj_home_url, 'ann.xml')
|
5
|
+
|
6
|
+
code_repo_scm = '[Git](http://git-scm.com)'
|
7
|
+
code_repo_url = 'http://github.com/TODO/#{package_name}'
|
8
|
+
bug_track_url = 'http://github.com/TODO/#{package_name}/issues'
|
9
|
+
|
2
10
|
##
|
3
|
-
#
|
4
|
-
# tags in a way that is Markdown-safe.
|
11
|
+
# Puts the given content inside <pre> tags in a Markdown-safe way.
|
5
12
|
#
|
6
13
|
def preformatted content
|
7
14
|
if content =~ /\\S/
|
@@ -24,4 +31,4 @@
|
|
24
31
|
|
25
32
|
%+ "CREDITS"
|
26
33
|
|
27
|
-
%+ "
|
34
|
+
%+ "BEYOND"
|
@@ -17,19 +17,19 @@
|
|
17
17
|
%#----------------------------------------------------------------------------
|
18
18
|
|
19
19
|
* Issue tracker (report bugs, request features, get help):
|
20
|
-
|
20
|
+
<<%= bug_track_url %>>
|
21
21
|
|
22
|
-
* Source code (browse online or obtain with
|
23
|
-
|
22
|
+
* Source code (browse online or obtain with <%= code_repo_scm %>):
|
23
|
+
<<%= code_repo_url %>>
|
24
24
|
|
25
25
|
* API documentation:
|
26
|
-
<<%=
|
26
|
+
<<%= api_docs_url %>>
|
27
27
|
|
28
28
|
* Announcements feed:
|
29
|
-
<<%=
|
29
|
+
<<%= ann_feed_url %>>
|
30
30
|
|
31
31
|
* Official website:
|
32
|
-
<<%=
|
32
|
+
<<%= proj_home_url %>>
|
33
33
|
|
34
34
|
%#----------------------------------------------------------------------------
|
35
35
|
### Setup
|
@@ -2,24 +2,29 @@
|
|
2
2
|
#
|
3
3
|
# Adds the project library directory
|
4
4
|
# and this test directory to Ruby's
|
5
|
-
# load path
|
5
|
+
# load path, loads the test helper
|
6
|
+
# and executes the given test files.
|
6
7
|
#
|
7
|
-
#
|
8
|
+
# ruby test/runner [-d] [-v] [TEST]...
|
8
9
|
#
|
9
|
-
#
|
10
|
-
# or file globbing patterns that
|
11
|
-
# describe a set of files to run.
|
10
|
+
# -d Enables $DEBUG mode in Ruby.
|
12
11
|
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
12
|
+
# -v Enables $VERBOSE mode in Ruby.
|
13
|
+
#
|
14
|
+
# TEST Path to a file, or a file globbing
|
15
|
+
# pattern describing a set of files.
|
16
|
+
#
|
17
|
+
# The default value is all *_test.rb
|
18
|
+
# files beneath this test/ directory.
|
19
|
+
|
20
|
+
$DEBUG = true if ARGV.delete('-d')
|
21
|
+
$VERBOSE = true if ARGV.delete('-v')
|
16
22
|
|
17
|
-
lib_dir
|
23
|
+
lib_dir = File.expand_path('../../lib', __FILE__)
|
18
24
|
test_dir = File.expand_path('..', __FILE__)
|
19
25
|
$LOAD_PATH.unshift lib_dir, test_dir
|
20
26
|
|
21
|
-
|
22
|
-
require 'test_helper'
|
27
|
+
load File.join(test_dir, 'helper.rb')
|
23
28
|
|
24
29
|
ARGV << "\#{test_dir}/**/*_test.rb" if ARGV.empty?
|
25
30
|
ARGV.each {|glob| Dir[glob].each {|test| load test } }
|
data/man.html
CHANGED
@@ -2,89 +2,94 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
-
<meta name='generator' value='Ronn/v0.
|
5
|
+
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
6
6
|
<title>inochi(1) - Gives life to Ruby projects</title>
|
7
|
-
<style type='text/css'>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
}
|
44
|
-
#man > p, #man > ul, #man > ol, #man > dl, #man > pre { margin-left:8ex; }
|
45
|
-
#man dt { margin:0; clear:left }
|
46
|
-
#man dt.flush { float:left; width:8ex }
|
47
|
-
#man dd { margin:0 0 0 9ex }
|
48
|
-
#man code, #man strong, #man b { font-weight:bold; color:#131211; }
|
49
|
-
#man pre code { font-weight:normal; color:#232221; background:inherit }
|
50
|
-
#man em, var, u {
|
51
|
-
font-style:normal; color:#333231; border-bottom:1px solid #999; }
|
52
|
-
#man h1.man-title { display:none; }
|
53
|
-
#man ol.man, #man ol.man li { margin:2px 0 10px 0; padding:0;
|
54
|
-
float:left; width:33%; list-style-type:none;
|
55
|
-
text-transform:uppercase; font-size:18px; color:#999;
|
56
|
-
letter-spacing:1px;}
|
57
|
-
#man ol.man { width:100%; }
|
58
|
-
#man ol.man li.tl { text-align:left }
|
59
|
-
#man ol.man li.tc { text-align:center;letter-spacing:4px }
|
60
|
-
#man ol.man li.tr { text-align:right; float: right }
|
61
|
-
#man ol.man a { color:#999 }
|
62
|
-
#man ol.man a:hover { color:#333231 }
|
63
|
-
#man img { display:block; margin:auto }
|
7
|
+
<style type='text/css' media='all'>
|
8
|
+
/* style: man */
|
9
|
+
body#manpage {margin:0}
|
10
|
+
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
11
|
+
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
12
|
+
.mp h2 {margin:10px 0 0 0}
|
13
|
+
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
14
|
+
.mp h3 {margin:0 0 0 4ex}
|
15
|
+
.mp dt {margin:0;clear:left}
|
16
|
+
.mp dt.flush {float:left;width:8ex}
|
17
|
+
.mp dd {margin:0 0 0 9ex}
|
18
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
19
|
+
.mp pre {margin-bottom:20px}
|
20
|
+
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
21
|
+
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
22
|
+
.mp img {display:block;margin:auto}
|
23
|
+
.mp h1.man-title {display:none}
|
24
|
+
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
25
|
+
.mp h2 {font-size:16px;line-height:1.25}
|
26
|
+
.mp h1 {font-size:20px;line-height:2}
|
27
|
+
.mp {text-align:justify;background:#fff}
|
28
|
+
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
29
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
30
|
+
.mp u {text-decoration:underline}
|
31
|
+
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
32
|
+
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
33
|
+
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
34
|
+
.mp b.man-ref {font-weight:normal;color:#434241}
|
35
|
+
.mp pre {padding:5px 1ex;background:#edeceb;border-left:1ex solid #ddd}
|
36
|
+
.mp pre code {font-weight:normal;color:#434241}
|
37
|
+
.mp h2+pre,h3+pre {padding-left:0}
|
38
|
+
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
39
|
+
ol.man-decor {width:100%}
|
40
|
+
ol.man-decor li.tl {text-align:left}
|
41
|
+
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
42
|
+
ol.man-decor li.tr {text-align:right;float:right}
|
64
43
|
</style>
|
65
|
-
<style type='text/css' media='
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
44
|
+
<style type='text/css' media='all'>
|
45
|
+
/* style: toc */
|
46
|
+
.man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:36px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
|
47
|
+
.man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 20px;color:#999;text-decoration:none}
|
48
|
+
.man-navigation a:hover {color:#111;text-decoration:underline}
|
49
|
+
</style>
|
50
|
+
<style type='text/css' media='all'>
|
51
|
+
/* style: 80c */
|
52
|
+
.mp {max-width:78ex}
|
53
|
+
|
54
|
+
.man-navigation {left:91ex}
|
71
55
|
</style>
|
72
56
|
</head>
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
<
|
81
|
-
<
|
82
|
-
|
83
|
-
<
|
84
|
-
</
|
85
|
-
|
86
|
-
<
|
87
|
-
<
|
57
|
+
<!--
|
58
|
+
The following styles are deprecated and will be removed at some point:
|
59
|
+
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
60
|
+
|
61
|
+
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
62
|
+
.man-navigation should be used instead.
|
63
|
+
-->
|
64
|
+
<body id='manpage'>
|
65
|
+
<div class='mp' id='man'>
|
66
|
+
|
67
|
+
<div class='man-navigation' style='display:none'>
|
68
|
+
<a href="#NAME">NAME</a>
|
69
|
+
<a href="#SYNOPSIS">SYNOPSIS</a>
|
70
|
+
<a href="#DESCRIPTION">DESCRIPTION</a>
|
71
|
+
<a href="#OPTIONS">OPTIONS</a>
|
72
|
+
<a href="#TASKS">TASKS</a>
|
73
|
+
<a href="#PROJECTS">PROJECTS</a>
|
74
|
+
<a href="#TUTORIAL">TUTORIAL</a>
|
75
|
+
<a href="#HACKING">HACKING</a>
|
76
|
+
<a href="#HISTORY">HISTORY</a>
|
77
|
+
<a href="#AUTHORS">AUTHORS</a>
|
78
|
+
<a href="#CREDITS">CREDITS</a>
|
79
|
+
<a href="#LICENSE">LICENSE</a>
|
80
|
+
<a href="#SEE-ALSO">SEE ALSO</a>
|
81
|
+
</div>
|
82
|
+
|
83
|
+
<ol class='man-decor man-head man head'>
|
84
|
+
<li class='tl'>inochi(1)</li>
|
85
|
+
<li class='tc'>Version 4.0.0</li>
|
86
|
+
<li class='tr'>inochi(1)</li>
|
87
|
+
</ol>
|
88
|
+
|
89
|
+
<h2 id="NAME">NAME</h2>
|
90
|
+
<p class="man-name">
|
91
|
+
<code>inochi</code> - <span class="man-whatis">Gives life to Ruby projects</span>
|
92
|
+
</p>
|
88
93
|
|
89
94
|
<p><img src="logo/inochi.png" alt="" /></p>
|
90
95
|
|
@@ -109,7 +114,7 @@ documentation and reduces project administrivia.</p>
|
|
109
114
|
<dt>Source code (browse online or obtain with <a href="http://git-scm.com">Git</a>)</dt><dd><p><a href="http://github.com/sunaku/inochi" data-bare-link="true">http://github.com/sunaku/inochi</a></p></dd>
|
110
115
|
<dt>API documentation</dt><dd><p><a href="http://snk.tuxfamily.org/lib/inochi/api/" data-bare-link="true">http://snk.tuxfamily.org/lib/inochi/api/</a></p></dd>
|
111
116
|
<dt>Announcements feed</dt><dd><p><a href="http://snk.tuxfamily.org/lib/inochi/ann.xml" data-bare-link="true">http://snk.tuxfamily.org/lib/inochi/ann.xml</a></p></dd>
|
112
|
-
<dt>Official website</dt><dd><p><a href="http://snk.tuxfamily.org/lib/
|
117
|
+
<dt>Official website</dt><dd><p><a href="http://snk.tuxfamily.org/lib/inochi/" data-bare-link="true">http://snk.tuxfamily.org/lib/inochi/</a></p></dd>
|
113
118
|
</dl>
|
114
119
|
|
115
120
|
|
@@ -148,7 +153,7 @@ documentation and reduces project administrivia.</p>
|
|
148
153
|
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
149
154
|
|
150
155
|
<p>Runs the given <var>TASK</var> (see <strong>TASKS</strong> below) while passing the given
|
151
|
-
<var>RAKE_OPTIONS</var> to rake(1)
|
156
|
+
<var>RAKE_OPTIONS</var> to <span class="man-ref">rake<span class="s">(1)</span></span>.</p>
|
152
157
|
|
153
158
|
<h2 id="OPTIONS">OPTIONS</h2>
|
154
159
|
|
@@ -303,7 +308,7 @@ conversion is not perfect.</p>
|
|
303
308
|
<h3 id="inochi-pub-web">inochi pub:web</h3>
|
304
309
|
|
305
310
|
<p>Publishes the help manual, API documentation, and RSS feed to project website
|
306
|
-
using rsync(1) according to the :pub_web_* parameters defined in the
|
311
|
+
using <span class="man-ref">rsync<span class="s">(1)</span></span> according to the :pub_web_* parameters defined in the
|
307
312
|
project's options file (see <strong>Options file</strong> below).</p>
|
308
313
|
|
309
314
|
<h2 id="PROJECTS">PROJECTS</h2>
|
@@ -314,14 +319,14 @@ source code, documentation, and a Web presence; which are all explained below.</
|
|
314
319
|
<h3 id="Options-file">Options file</h3>
|
315
320
|
|
316
321
|
<p>A project's options file is a <a href="http://www.yaml.org/YAML_for_ruby.html">YAML</a> document named <code>inochi.opts</code> that defines
|
317
|
-
the following optional parameters for the various inochi(1) sub-commands:</p>
|
322
|
+
the following optional parameters for the various <a class="man-ref" href="inochi.1.html">inochi<span class="s">(1)</span></a> sub-commands:</p>
|
318
323
|
|
319
324
|
<dl>
|
320
325
|
<dt>:pub_web_target</dt><dd><p>Location where <code>inochi pub:web</code> will upload files. This value
|
321
|
-
can use any local/remote/protocol syntax supported by rsync(1)
|
322
|
-
<dt>:pub_web_options</dt><dd><p>Options for rsync(1)
|
326
|
+
can use any local/remote/protocol syntax supported by <span class="man-ref">rsync<span class="s">(1)</span></span>.</p></dd>
|
327
|
+
<dt>:pub_web_options</dt><dd><p>Options for <span class="man-ref">rsync<span class="s">(1)</span></span>, which uploads files for <code>inochi pub:web</code>.</p></dd>
|
323
328
|
<dt>:pub_web_extras</dt><dd><p>Additional files for <code>inochi pub:web</code> to upload. The values listed
|
324
|
-
here can use any local/remote/protocol syntax supported by rsync(1)
|
329
|
+
here can use any local/remote/protocol syntax supported by <span class="man-ref">rsync<span class="s">(1)</span></span>.</p>
|
325
330
|
|
326
331
|
<p>Example:</p>
|
327
332
|
|
@@ -377,7 +382,7 @@ they do not raise a <code>Gem::LoadError</code> exception.</p></dd>
|
|
377
382
|
|
378
383
|
<dl>
|
379
384
|
<dt>test/runner</dt><dd><p>Executable Ruby script that hides the details of running the test suite.</p></dd>
|
380
|
-
<dt>test/
|
385
|
+
<dt>test/helper.rb</dt><dd><p>Ruby source file that prepares the testing environment by loading a testing
|
381
386
|
library and defining common knowledge and utility logic shared by the actual
|
382
387
|
tests.</p></dd>
|
383
388
|
<dt>test/**/*_test.rb</dt><dd><p>Part of the test suite. Performs the actual testing.</p></dd>
|
@@ -530,7 +535,7 @@ end
|
|
530
535
|
|
531
536
|
<p>Run the test suite and observe that all tests fail:</p>
|
532
537
|
|
533
|
-
<pre><code>test/runner
|
538
|
+
<pre><code>ruby test/runner
|
534
539
|
</code></pre>
|
535
540
|
|
536
541
|
<p>Append the following code to the <code>lib/word_count.rb</code> file:</p>
|
@@ -545,7 +550,7 @@ end
|
|
545
550
|
|
546
551
|
<p>Run the test suite again and observe that all tests pass:</p>
|
547
552
|
|
548
|
-
<pre><code>test/runner
|
553
|
+
<pre><code>ruby test/runner
|
549
554
|
</code></pre>
|
550
555
|
|
551
556
|
<p>Append the following code to the <code>bin/word_count</code> file:</p>
|
@@ -603,7 +608,7 @@ ruby bin/inochi
|
|
603
608
|
irb -r inochi
|
604
609
|
</code></pre>
|
605
610
|
|
606
|
-
<p>Or by
|
611
|
+
<p>Or by running Ruby through the <a href="http://github.com/chneukirchen/rup/blob/master/ruby-wrapper">ruby-wrapper</a> tool.</p>
|
607
612
|
|
608
613
|
<h3 id="RubyGems-setup">RubyGems setup</h3>
|
609
614
|
|
@@ -627,24 +632,75 @@ set -x RUBYOPT -rubygems # fish
|
|
627
632
|
<h3 id="Running-tests">Running tests</h3>
|
628
633
|
|
629
634
|
<p>Simply execute the included test runner, which sets up Ruby's <code>$LOAD_PATH</code> for
|
630
|
-
testing, loads the
|
635
|
+
testing, loads the <code>test/helper.rb</code> file, and then evaluates all
|
631
636
|
<code>test/**/*_test.rb</code> files:</p>
|
632
637
|
|
633
|
-
<pre><code>test/runner
|
638
|
+
<pre><code>ruby test/runner
|
634
639
|
</code></pre>
|
635
640
|
|
636
641
|
<p>Its exit status will indicate whether all tests have passed. It may also
|
637
642
|
print additional pass/fail information depending on the testing library used
|
638
|
-
in the <code>test/
|
643
|
+
in the <code>test/helper.rb</code> file.</p>
|
639
644
|
|
640
645
|
<h3 id="Contributing">Contributing</h3>
|
641
646
|
|
642
647
|
<p>Fork this project on GitHub (see <strong>Resources</strong> above) and send a pull request.</p>
|
643
648
|
|
644
|
-
<h2 id="
|
649
|
+
<h2 id="HISTORY">HISTORY</h2>
|
645
650
|
|
646
651
|
<p>This section contains release notes of current and past releases.</p>
|
647
652
|
|
653
|
+
<h3 id="Version-4-0-0-2010-07-25-">Version 4.0.0 (2010-07-25)</h3>
|
654
|
+
|
655
|
+
<p>Incompatible changes:</p>
|
656
|
+
|
657
|
+
<ul>
|
658
|
+
<li>Rename the "VERSIONS" section in the HISTORY file to "HISTORY".</li>
|
659
|
+
</ul>
|
660
|
+
|
661
|
+
|
662
|
+
<p>Changes you will see in upgraded or newly generated projects:</p>
|
663
|
+
|
664
|
+
<ul>
|
665
|
+
<li><p>Rename the "FURTHER" file to "BEYOND".</p></li>
|
666
|
+
<li><p>Rename <code>test/test_helper.rb</code> to just <code>test/helper.rb</code>.</p></li>
|
667
|
+
<li><p>Store resource URLs in variables in MANUAL for reuse.</p></li>
|
668
|
+
<li><p>Provide more precise link to ruby-wrapper tool in HACKING.</p></li>
|
669
|
+
</ul>
|
670
|
+
|
671
|
+
|
672
|
+
<p>New features:</p>
|
673
|
+
|
674
|
+
<ul>
|
675
|
+
<li><p>Ensure that project version matches release notes before building a gem.
|
676
|
+
This helps to prevent the problem where you sometimes forget to update
|
677
|
+
both the release notes and the project information file simultaneously.</p></li>
|
678
|
+
<li><p>Display announcement message to user (and make them confirm it) before
|
679
|
+
publishing to ruby-talk. This helps to prevent you from appearing inept
|
680
|
+
and having to apologize later for your publishing blunders.</p></li>
|
681
|
+
<li><p>Add <code>-d</code> (to enable <code>$DEBUG</code>) and <code>-v</code> (to enable <code>$VERBOSE</code>)
|
682
|
+
command-line options to the generated <code>test/runner</code> script.</p></li>
|
683
|
+
</ul>
|
684
|
+
|
685
|
+
|
686
|
+
<p>Bug fixes:</p>
|
687
|
+
|
688
|
+
<ul>
|
689
|
+
<li><p>Various compatibility fixes for Ruby 1.9.2-rc2.</p></li>
|
690
|
+
<li><p>Prefix <code>test/runner</code> command with "ruby" for Windows users.</p></li>
|
691
|
+
<li><p>Ember::WEBSITE was always being emitted in README.</p></li>
|
692
|
+
</ul>
|
693
|
+
|
694
|
+
|
695
|
+
<p>Housekeeping:</p>
|
696
|
+
|
697
|
+
<ul>
|
698
|
+
<li><p>Add version constraints for YARD and Mechanize dependencies.</p></li>
|
699
|
+
<li><p>Upgrade from Dfect 1.1.0 to Detest 3.1.0 for unit testing.</p></li>
|
700
|
+
<li><p>Upgrade to Ronn 0.7.0 for generating this user manual.</p></li>
|
701
|
+
</ul>
|
702
|
+
|
703
|
+
|
648
704
|
<h3 id="Version-3-0-0-2010-04-27-">Version 3.0.0 (2010-04-27)</h3>
|
649
705
|
|
650
706
|
<p>Incompatible changes:</p>
|
@@ -662,7 +718,7 @@ your project's Ruby library is first loaded.</p></li>
|
|
662
718
|
|
663
719
|
<ul>
|
664
720
|
<li><p>Reflect current Inochi version in gem constraint.</p></li>
|
665
|
-
<li><p>Forgot to list Ember as a runtime gem dependency.</p></li>
|
721
|
+
<li><p>Forgot to list <a href="http://snk.tuxfamily.org/lib/ember/">Ember</a> as a runtime gem dependency.</p></li>
|
666
722
|
</ul>
|
667
723
|
|
668
724
|
|
@@ -1085,7 +1141,7 @@ the public domain by <a href="http://www.openclipart.org/user-detail/Peileppe">P
|
|
1085
1141
|
|
1086
1142
|
<p>(the ISC license)</p>
|
1087
1143
|
|
1088
|
-
<p>Copyright 2008 Suraj N. Kurapati <a href="&#
|
1144
|
+
<p>Copyright 2008 Suraj N. Kurapati <a href="mailto:sunaku@gmail.com" data-bare-link="true">sunaku@gmail.com</a></p>
|
1089
1145
|
|
1090
1146
|
<p>Permission to use, copy, modify, and/or distribute this software for any
|
1091
1147
|
purpose with or without fee is hereby granted, provided that the above
|
@@ -1101,18 +1157,18 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</p>
|
|
1101
1157
|
|
1102
1158
|
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
1103
1159
|
|
1104
|
-
<p>rake(1)
|
1105
|
-
rsync(1)
|
1160
|
+
<p><span class="man-ref">rake<span class="s">(1)</span></span>,
|
1161
|
+
<span class="man-ref">rsync<span class="s">(1)</span></span>,
|
1106
1162
|
<a href="http://github.com/rtomayko/ronn">Ronn</a>,
|
1107
1163
|
<a href="http://snk.tuxfamily.org/lib/ember/">Ember</a></p>
|
1108
1164
|
|
1109
1165
|
|
1110
|
-
<ol class='foot man'>
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
</ol>
|
1166
|
+
<ol class='man-decor man-foot man foot'>
|
1167
|
+
<li class='tl'></li>
|
1168
|
+
<li class='tc'>July 2010</li>
|
1169
|
+
<li class='tr'>inochi(1)</li>
|
1170
|
+
</ol>
|
1115
1171
|
|
1116
|
-
</div>
|
1172
|
+
</div>
|
1117
1173
|
</body>
|
1118
1174
|
</html>
|
data/man/man1/inochi.1.gz
CHANGED
Binary file
|
metadata
CHANGED
@@ -3,10 +3,10 @@ name: inochi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
-
|
6
|
+
- 4
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
version:
|
9
|
+
version: 4.0.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Suraj N. Kurapati
|
@@ -14,32 +14,34 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-07-25 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: detest
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
segments:
|
28
|
-
-
|
29
|
+
- 3
|
29
30
|
- 1
|
30
31
|
- 0
|
31
|
-
version:
|
32
|
+
version: 3.1.0
|
32
33
|
- - <
|
33
34
|
- !ruby/object:Gem::Version
|
34
35
|
segments:
|
35
|
-
-
|
36
|
-
version: "
|
36
|
+
- 4
|
37
|
+
version: "4"
|
37
38
|
type: :development
|
38
39
|
version_requirements: *id001
|
39
40
|
- !ruby/object:Gem::Dependency
|
40
41
|
name: ember
|
41
42
|
prerelease: false
|
42
43
|
requirement: &id002 !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
43
45
|
requirements:
|
44
46
|
- - ">="
|
45
47
|
- !ruby/object:Gem::Version
|
@@ -59,6 +61,7 @@ dependencies:
|
|
59
61
|
name: highline
|
60
62
|
prerelease: false
|
61
63
|
requirement: &id003 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
62
65
|
requirements:
|
63
66
|
- - ">="
|
64
67
|
- !ruby/object:Gem::Version
|
@@ -77,18 +80,25 @@ dependencies:
|
|
77
80
|
name: mechanize
|
78
81
|
prerelease: false
|
79
82
|
requirement: &id004 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
80
84
|
requirements:
|
81
85
|
- - ~>
|
82
86
|
- !ruby/object:Gem::Version
|
83
87
|
segments:
|
84
88
|
- 1
|
85
89
|
version: "1"
|
90
|
+
- - <
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
segments:
|
93
|
+
- 2
|
94
|
+
version: "2"
|
86
95
|
type: :runtime
|
87
96
|
version_requirements: *id004
|
88
97
|
- !ruby/object:Gem::Dependency
|
89
98
|
name: nokogiri
|
90
99
|
prerelease: false
|
91
100
|
requirement: &id005 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
92
102
|
requirements:
|
93
103
|
- - ">="
|
94
104
|
- !ruby/object:Gem::Version
|
@@ -107,6 +117,7 @@ dependencies:
|
|
107
117
|
name: rake
|
108
118
|
prerelease: false
|
109
119
|
requirement: &id006 !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
110
121
|
requirements:
|
111
122
|
- - ">="
|
112
123
|
- !ruby/object:Gem::Version
|
@@ -126,13 +137,15 @@ dependencies:
|
|
126
137
|
name: ronn
|
127
138
|
prerelease: false
|
128
139
|
requirement: &id007 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
129
141
|
requirements:
|
130
142
|
- - ">="
|
131
143
|
- !ruby/object:Gem::Version
|
132
144
|
segments:
|
133
145
|
- 0
|
134
|
-
-
|
135
|
-
|
146
|
+
- 7
|
147
|
+
- 0
|
148
|
+
version: 0.7.0
|
136
149
|
- - <
|
137
150
|
- !ruby/object:Gem::Version
|
138
151
|
segments:
|
@@ -144,12 +157,20 @@ dependencies:
|
|
144
157
|
name: yard
|
145
158
|
prerelease: false
|
146
159
|
requirement: &id008 !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
147
161
|
requirements:
|
148
162
|
- - ">="
|
149
163
|
- !ruby/object:Gem::Version
|
150
164
|
segments:
|
151
165
|
- 0
|
152
|
-
|
166
|
+
- 5
|
167
|
+
- 8
|
168
|
+
version: 0.5.8
|
169
|
+
- - <
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
segments:
|
172
|
+
- 1
|
173
|
+
version: "1"
|
153
174
|
type: :runtime
|
154
175
|
version_requirements: *id008
|
155
176
|
description: Inochi is an infrastructure for Ruby projects that helps you test, document, package, publish, and announce your projects. It encourages great documentation and reduces project administrivia.
|
@@ -168,7 +189,6 @@ files:
|
|
168
189
|
- lib/inochi/generate.rb
|
169
190
|
- lib/inochi/templates/test_helper.rb.rbs
|
170
191
|
- lib/inochi/templates/CREDITS.rbs
|
171
|
-
- lib/inochi/templates/FURTHER.rbs
|
172
192
|
- lib/inochi/templates/inochi.rb.rbs
|
173
193
|
- lib/inochi/templates/test_runner.rbs
|
174
194
|
- lib/inochi/templates/LICENSE.rbs
|
@@ -180,6 +200,7 @@ files:
|
|
180
200
|
- lib/inochi/templates/HISTORY.rbs
|
181
201
|
- lib/inochi/templates/EXAMPLES.rbs
|
182
202
|
- lib/inochi/templates/library_test.rb.rbs
|
203
|
+
- lib/inochi/templates/BEYOND.rbs
|
183
204
|
- lib/inochi/templates/MANUAL.rbs
|
184
205
|
- lib/inochi/templates/inochi.opts.rbs
|
185
206
|
- lib/inochi/tasks/2-api.rake
|
@@ -204,6 +225,7 @@ rdoc_options: []
|
|
204
225
|
require_paths:
|
205
226
|
- lib
|
206
227
|
required_ruby_version: !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
207
229
|
requirements:
|
208
230
|
- - ">="
|
209
231
|
- !ruby/object:Gem::Version
|
@@ -211,6 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
233
|
- 0
|
212
234
|
version: "0"
|
213
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
214
237
|
requirements:
|
215
238
|
- - ">="
|
216
239
|
- !ruby/object:Gem::Version
|
@@ -220,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
220
243
|
requirements: []
|
221
244
|
|
222
245
|
rubyforge_project:
|
223
|
-
rubygems_version: 1.3.
|
246
|
+
rubygems_version: 1.3.7
|
224
247
|
signing_key:
|
225
248
|
specification_version: 3
|
226
249
|
summary: Gives life to Ruby projects
|