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 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