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 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[:merger]
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 = '3.0.0'
21
+ VERSION = '4.0.0'
22
22
 
23
23
  ##
24
24
  # Date of this release of this project.
25
25
  #
26
- RELDATE = '2010-04-27'
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' ], # for publishing announcements
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.5' , '< 1' ], # for making UNIX man pages
64
- 'yard' => [ ], # for making API documentation
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
- 'dfect' => [ '>= 1.1.0', '< 2' ], # for unit testing
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[:project]
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[:package] || Engine.calc_package_name(library_name)
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/test_helper.rb', 'test_helper.rb'
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, 'FURTHER'
36
+ create_from_rbs binding, 'BEYOND'
37
37
 
38
38
  end
@@ -52,6 +52,7 @@ task :@man_doc => @man_src do
52
52
  ronn_opts = {
53
53
  :date => Date.parse(@project_module::RELDATE),
54
54
  :manual => "Version #{@project_module::VERSION}",
55
+ :styles => %w[ man toc 80c ]
55
56
  }
56
57
  ronn_file = "#{@project_package_name}.1.ronn"
57
58
 
@@ -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#VERSIONS ~ h3', 'h1,h2,h3')
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> VERSIONS heading.\n"
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($$).path + '.html'
202
+ tmp_file = Tempfile.new('inochi').path + '.html'
203
203
 
204
204
  begin
205
205
  File.write tmp_file, html
@@ -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
@@ -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
- require 'mechanize'
44
- browser = Mechanize.new
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
- form['name'] = highline.ask("#{site} username: ")
56
- form['password'] = highline.ask("#{site} password: ") {|q| q.echo = false }
50
+ if highline.agree "Really publish this announcement to #{site}?"
51
+ require 'mechanize'
52
+ browser = Mechanize.new
57
53
 
58
- # submit login form
59
- page = form.click_button
60
- page.at('a[href="/user/logout"]') or
61
- raise "invalid login for #{site}"
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
- # make the announcement
64
- page = browser.get("#{site}/topic/new?forum_id=4")
65
- form = page.forms_with(:action => '/topic/new#postform').first or
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
- # enable notification by email whenever
69
- # someone replies to this announcement
70
- form['post[subscribed_by_author]'] = '1'
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
- Rake::Task[:@ann_subject].invoke
73
- form['post[subject]'] = @ann_subject
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
- Rake::Task[@ann_text_dst].invoke
76
- form['post[text]'] = File.read(@ann_text_dst)
73
+ # enable notification by email whenever
74
+ # someone replies to this announcement
75
+ form['post[subscribed_by_author]'] = '1'
77
76
 
78
- # submit the announcement
79
- page = form.submit
77
+ Rake::Task[:@ann_subject].invoke
78
+ form['post[subject]'] = @ann_subject
80
79
 
81
- if error = page.at('.error')
82
- raise "Announcement to #{site} failed:\n#{error.text}"
83
- else
84
- puts "Successfully announced to #{site}:", page.uri
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 installing the [ruby-wrapper](http://github.com/chneukirchen/rup) tool.
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 included `test/test_helper.rb` file, and then evaluates all
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/test_helper.rb` file.
85
+ in the `test/helper.rb` file.
85
86
 
86
87
  %#----------------------------------------------------------------------------
87
88
  ### Contributing
@@ -1,5 +1,5 @@
1
1
  %#----------------------------------------------------------------------------
2
- ## VERSIONS
2
+ ## HISTORY
3
3
  %#----------------------------------------------------------------------------
4
4
 
5
5
  This section contains release notes of current and past releases.
@@ -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
- # Wraps the given content within <pre>
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
- %+ "FURTHER"
34
+ %+ "BEYOND"
@@ -17,19 +17,19 @@
17
17
  %#----------------------------------------------------------------------------
18
18
 
19
19
  * Issue tracker (report bugs, request features, get help):
20
- <http://github.com/TODO/#{package_name}/issues>
20
+ <<%= bug_track_url %>>
21
21
 
22
- * Source code (browse online or obtain with [Git](http://git-scm.com)):
23
- <http://github.com/TODO/#{package_name}>
22
+ * Source code (browse online or obtain with <%= code_repo_scm %>):
23
+ <<%= code_repo_url %>>
24
24
 
25
25
  * API documentation:
26
- <<%= File.join(#{library_name}::WEBSITE, 'api/') %>>
26
+ <<%= api_docs_url %>>
27
27
 
28
28
  * Announcements feed:
29
- <<%= File.join(#{library_name}::WEBSITE, 'ann.xml') %>>
29
+ <<%= ann_feed_url %>>
30
30
 
31
31
  * Official website:
32
- <<%= Ember::WEBSITE %>>
32
+ <<%= proj_home_url %>>
33
33
 
34
34
  %#----------------------------------------------------------------------------
35
35
  ### Setup
@@ -1,3 +1,4 @@
1
+ require '#{package_name}/inochi'
1
2
  # TODO: activate the testing framework of your choice and
2
3
  # also set up the testing environment for your tests
3
4
  require 'test/unit'
@@ -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 and runs the given tests.
5
+ # load path, loads the test helper
6
+ # and executes the given test files.
6
7
  #
7
- # Usage: ruby test/runner [TESTS_TO_RUN]
8
+ # ruby test/runner [-d] [-v] [TEST]...
8
9
  #
9
- # Where: TESTS_TO_RUN is a list of files
10
- # or file globbing patterns that
11
- # describe a set of files to run.
10
+ # -d Enables $DEBUG mode in Ruby.
12
11
  #
13
- # If this parameter is not given,
14
- # all *_test.rb files within or
15
- # beneath this directory are run.
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 = File.expand_path('../../lib', __FILE__)
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
- require '#{package_name}/inochi'
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'>
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
- body {margin:0}
9
- #man, #man code, #man pre, #man tt, #man kbd, #man samp {
10
- font-family:consolas,monospace;
11
- font-size:16px;
12
- line-height:1.3;
13
- color:#343331;
14
- background:#fff; }
15
- #man { max-width:87ex; margin:0 3ex 1ex 1ex; text-align:justify; }
16
- #man div.man-navigation {
17
- position:fixed;
18
- top:0;
19
- left:91ex;
20
- height:100%;
21
- width:100%;
22
- padding:1ex 0 0 2ex;
23
- border-left:0.5ex solid #DCDCDC;
24
- background-color: #F5F5F5;
25
- }
26
- #man div.man-navigation a { display:block; margin-bottom:1.5ex }
27
- #man h1, #man h2, #man h3 { color:#232221;clear:left }
28
- #man h1 { font-size:28px; margin:15px 0 30px 0; text-align:center }
29
- #man h2 { font-size:18px; margin-bottom:0; margin-top:10px; line-height:1.3; }
30
- #man h3 { font-size:16px; margin:0 0 0 4ex; }
31
- #man p, #man ul, #man ol, #man dl, #man pre { margin:0 0 18px 0; }
32
- #man pre {
33
- color:#333231;
34
- background:#edeceb;
35
- padding:5px 7px;
36
- margin:0px 0 20px 0;
37
- border-left:2ex solid #ddd}
38
- #man pre + h2, #man pre + h3 {
39
- margin-top:22px;
40
- }
41
- #man h2 + pre, #man h3 + pre {
42
- margin-top:5px;
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='print'>
66
- #man { max-width:none }
67
- #man div.man-navigation { display:none }
68
- #man a[href]:not([href^="#"]):not([data-bare-link]):after {
69
- content:" " attr(href);
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
- <body>
74
- <div id='man'>
75
-
76
- <div class='man-navigation'><a href='#NAME'>NAME</a> <a href='#SYNOPSIS'>SYNOPSIS</a> <a href='#DESCRIPTION'>DESCRIPTION</a> <a href='#OPTIONS'>OPTIONS</a> <a href='#TASKS'>TASKS</a> <a href='#PROJECTS'>PROJECTS</a> <a href='#TUTORIAL'>TUTORIAL</a> <a href='#HACKING'>HACKING</a> <a href='#VERSIONS'>VERSIONS</a> <a href='#AUTHORS'>AUTHORS</a> <a href='#CREDITS'>CREDITS</a> <a href='#LICENSE'>LICENSE</a> <a href='#SEE-ALSO'>SEE ALSO</a></div>
77
-
78
- <h1 class='man-title'>inochi(1)</h1>
79
-
80
- <ol class='head man'>
81
- <li class='tl'>inochi(1)</li>
82
- <li class='tc'>Version 3.0.0</li>
83
- <li class='tr'>inochi(1)</li>
84
- </ol>
85
-
86
- <h2 id='NAME'>NAME</h2>
87
- <p><code>inochi</code> - Gives life to Ruby projects</p>
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/ember/" data-bare-link="true">http://snk.tuxfamily.org/lib/ember/</a></p></dd>
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).</p>
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).</p></dd>
322
- <dt>:pub_web_options</dt><dd><p>Options for rsync(1), which uploads files for <code>inochi pub:web</code>.</p></dd>
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).</p>
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/test_helper.rb</dt><dd><p>Ruby source file that prepares the testing environment by loading a testing
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 installing the <a href="http://github.com/chneukirchen/rup">ruby-wrapper</a> tool.</p>
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 included <code>test/test_helper.rb</code> file, and then evaluates all
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/test_helper.rb</code> file.</p>
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="VERSIONS">VERSIONS</h2>
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="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#58;&#x73;&#x75;&#x6e;&#x61;&#107;&#x75;&#x40;&#x67;&#x6d;&#x61;&#105;&#108;&#x2e;&#x63;&#111;&#x6d;" data-bare-link="true">&#x73;&#117;&#x6e;&#x61;&#x6b;&#117;&#64;&#103;&#109;&#97;&#x69;&#108;&#46;&#x63;&#111;&#x6d;</a></p>
1144
+ <p>Copyright 2008 Suraj N. Kurapati <a href="&#109;&#x61;&#x69;&#x6c;&#116;&#x6f;&#x3a;&#x73;&#117;&#x6e;&#97;&#107;&#117;&#x40;&#x67;&#x6d;&#97;&#105;&#108;&#46;&#99;&#x6f;&#109;" data-bare-link="true">&#x73;&#117;&#x6e;&#x61;&#x6b;&#x75;&#64;&#103;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#99;&#111;&#109;</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
- <li class='tl'></li>
1112
- <li class='tc'>April 2010</li>
1113
- <li class='tr'>inochi(1)</li>
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
- - 3
6
+ - 4
7
7
  - 0
8
8
  - 0
9
- version: 3.0.0
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-04-27 00:00:00 -07:00
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: dfect
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
- - 1
29
+ - 3
29
30
  - 1
30
31
  - 0
31
- version: 1.1.0
32
+ version: 3.1.0
32
33
  - - <
33
34
  - !ruby/object:Gem::Version
34
35
  segments:
35
- - 2
36
- version: "2"
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
- - 5
135
- version: "0.5"
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
- version: "0"
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.6
246
+ rubygems_version: 1.3.7
224
247
  signing_key:
225
248
  specification_version: 3
226
249
  summary: Gives life to Ruby projects