inochi 3.0.0 → 4.0.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/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
|