heel 3.0.1 → 3.0.2

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTBjMTliZGUxNDc1MDgwMWUwNjE2NzNmN2E3ODMxNjc3MmQzYTYzOQ==
5
+ data.tar.gz: !binary |-
6
+ YjIwMjA5ZjU5MWY2YWQzZmNhNzYzOTVhZjY0YjE1ODBiOTQyMTgxMg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YmEwMDIwNWJlNDIyMGM4MDIwYjllNTI1MTMxNjc1ZWJjMjkxYjM0OGJlM2Fm
10
+ NjhmOTkxYzZlMTg2MWE2YzMxZWI3YmExMWFkMjI0ZjFlYjRhNjczZDM2YmVi
11
+ NGJjYzQzNGNkOGY1YzkwMDQ2ZDk3OGEzMmRjODM0ODFmOWRhOWI=
12
+ data.tar.gz: !binary |-
13
+ ZGEyYmQ2NTk1YzgyZmY2MWZlN2U4OTY2OTNjYzQ5YWQ5ZWZjNGQ4MmY4ODQw
14
+ ZTFmMjI2OTczNDNkNjlhNWE3ZDVlZmUyYTNiYTU4NzRkNWFiMjk0NWE0ZDIx
15
+ MDczNTAyMjQ0YjJmY2I4ZTBkYjkxNzBjYzM4MGU4YzZjMDg3YTg=
@@ -1,5 +1,12 @@
1
- = Changelog
2
- == Version 3.0.1 - 2013-02-06
1
+ # Changelog
2
+ ## Version 3.0.2 - 2013-03-13
3
+
4
+ * Fix generated pages to say they are utf-8 [#4]
5
+ * Fix formatting of usage section of documentation
6
+ * Update dependencies
7
+ * Convert to RDoc 4.0
8
+
9
+ ## Version 3.0.1 - 2013-02-06
3
10
 
4
11
  * Switch to using puma for the webserver
5
12
  * Switch to using simplecov for coverage testing
@@ -7,85 +14,85 @@
7
14
  * Update to fixme project template
8
15
  * Convert to minitest
9
16
 
10
- == Version 2.1.0 - 2011-03-17
17
+ ## Version 2.1.0 - 2011-03-17
11
18
 
12
19
  * Update to Launchy 1.0.0
13
20
  * Update to Thin 1.2.8
14
21
 
15
- == Version 2.0.0 - 2009-06-24
22
+ ## Version 2.0.0 - 2009-06-24
16
23
 
17
24
  * Change highlighting mode default to 'off' instead of 'on'
18
25
  * Update for Thin 1.2.2
19
26
 
20
- == Version 1.0.3 - 2009-03-02
27
+ ## Version 1.0.3 - 2009-03-02
21
28
 
22
29
  * Update for MIME::Types 1.16
23
30
 
24
- == Version 1.0.2 - 2008-12-03
31
+ ## Version 1.0.2 - 2008-12-03
25
32
 
26
33
  * Fix FileType namespace issue (thanks defunkt) and new version of coderay
27
34
  * various task maintenance
28
35
  * updated version dependencies
29
36
 
30
- == Version 1.0.1 - 2008-04-24
37
+ ## Version 1.0.1 - 2008-04-24
31
38
 
32
39
  * Fix performance issue in serving large files
33
40
  * Fix performance issue in checking for coderay file type when coderay would not be used.
34
41
 
35
- == Version 1.0.0 - 2008-04-20
42
+ ## Version 1.0.0 - 2008-04-20
36
43
 
37
44
  * Convert Heel to a Rack and Thin application
38
45
 
39
- == Version 0.6.0 - 2007-11-21
46
+ ## Version 0.6.0 - 2007-11-21
40
47
 
41
48
  * Fixed bug where an exception was thrown if a 0 byte file was served.
42
49
  * Changed change 'resources' directory to 'data'
43
50
  * Renamed internal constants
44
51
  * Changed operating URL's to avoid conflict with directories heel may be serving
45
52
 
46
- == Version 0.5.0 - 2007-11-19
53
+ ## Version 0.5.0 - 2007-11-19
47
54
 
48
55
  * Add in code highlighting support via coderay
49
56
  * extract CSS files to a resource
50
57
  * increase test coverage
51
58
 
52
- == Version 0.4.1 - 2007-11-15
59
+ ## Version 0.4.1 - 2007-11-15
53
60
 
54
61
  * Fix bug [#15645] - not starting up on windows
55
62
 
56
- == Version 0.4.0 - 2007-11-04
63
+ ## Version 0.4.0 - 2007-11-04
57
64
 
58
65
  * Added common log format output to terminal or logfile as appropriate.
59
66
 
60
- == Version 0.3.2 - 2007-08-30
67
+ ## Version 0.3.2 - 2007-08-30
61
68
 
62
69
  * fix failure to find background option
63
70
  * remember to double check your tests before releasing
64
71
 
65
- == Version 0.3.1 - 2007-08-30
72
+ ## Version 0.3.1 - 2007-08-30
66
73
 
67
74
  * fix failure to find pid file [Bug #13530]
68
75
  * remember to stop releasing software in the wee hours of the morning
69
76
 
70
- == Version 0.3.0 - 2007-08-30
77
+ ## Version 0.3.0 - 2007-08-30
71
78
 
72
79
  * update with Launchy requirement 0.3.0
73
80
  * remove unneeded famfamfam icons
74
81
  * change default listening address to 127.0.0.1
75
82
  * refactored handler test, now with more coverage
76
83
 
77
- == Version 0.2.0 - 2007-08-11
84
+ ## Version 0.2.0 - 2007-08-11
78
85
 
79
86
  * Initial public release
80
87
  * Added daemonizing of server
81
88
  * Added launching of browser to server URL
82
89
 
83
- == Version 0.1.0
90
+ ## Version 0.1.0
84
91
 
85
92
  * rename project to 'heel'
86
93
  * gem packaging
87
94
 
88
- == Version 0.0.1 - 2007-05-03
95
+ ## Version 0.0.1 - 2007-05-03
89
96
 
90
97
  * initial development release
91
98
 
@@ -1,10 +1,9 @@
1
1
  CONTRIBUTING.md
2
- HISTORY.rdoc
2
+ HISTORY.md
3
3
  LICENSE
4
4
  Manifest.txt
5
- README.rdoc
5
+ README.md
6
6
  Rakefile
7
- TODO
8
7
  bin/heel
9
8
  data/css/coderay-alpha.css
10
9
  data/css/coderay-cycnus.css
@@ -0,0 +1,117 @@
1
+ ## Heel
2
+
3
+ * [Homepage](http://github.com/copiousfreetime/heel/)
4
+ * [GitHub](http://github.com/copiousfreetime/heel/)
5
+ * email jeremy at hinegardner dot org
6
+ * `git clone git://github.com/copiousfreetime/heel.git`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Heel is a small static web server for use when you need a quick web server for a
11
+ directory. Once the server is running, heel will use
12
+ [launchy](http://rubygems.org/gems/launchy/) to open your browser at
13
+ the URL of your document root.
14
+
15
+ Heel is built using [Rack](http://rack.github.com) and
16
+ [Puma](http://puma.io)
17
+
18
+ % heel
19
+ Launching your browser...
20
+ Puma 1.6.3 starting...
21
+ * Min threads: 0, max threads: 16
22
+ * Environment: deployment
23
+ * Listening on tcp://0.0.0.0:4331
24
+
25
+ Or run it in the background
26
+
27
+ % heel --daemonize
28
+ Launching your browser at http://0.0.0.0:4331/
29
+
30
+ % heel --kill
31
+ Sending TERM to process 3304
32
+ Done.
33
+
34
+ ## FEATURES
35
+
36
+ * Automatic launching of your browser to the URL it is serving with [launchy](http://github.com/copiousfreetime/launchy/)
37
+ * Automatic syntax highlighting of source code files with [coderay](http://coderay.rubychan.de/)
38
+ * Run in the foreground or daemonized
39
+ * Bind to any address and port (default is 0.0.0.0:4331)
40
+
41
+ ## SYNOPSIS:
42
+
43
+ Usage: heel [options]
44
+
45
+ -a, --address ADDRESS Address to bind to
46
+ (default: 0.0.0.0)
47
+ -d, --daemonize Run daemonized in the background
48
+ -h, --help Display this text
49
+ -k, --kill Kill an existing daemonized heel process
50
+ --[no-]highlighting Turn on or off syntax highlighting
51
+ (default: off)
52
+ --[no-]launch-browser Turn on or off automatic browser launch
53
+ (default: on)
54
+ -p, --port PORT Port to bind to
55
+ (default: 4331)
56
+ -r, --root ROOT Set the document root
57
+ (default: <current working directory>)
58
+ -v, --version Show version
59
+
60
+ ## REQUIREMENTS:
61
+
62
+ ### For running:
63
+
64
+ * [coderay](http://coderay.rubychan.de/)
65
+ * [launchy](http://copiousfreetime.rubyforge.org/launchy/) >= 0.1.1
66
+ * [mime-types](http://mime-types.rubyforge.org/)
67
+ * [puma](http://puma.io)
68
+
69
+ ### For development:
70
+
71
+ * [minitest](http://rubygems.org/gems/minitest)
72
+ * [rake](http://rubygems.org/gems/rake)
73
+ * [rdoc](http://rubygems.org/gems/rdoc)
74
+
75
+ ## INSTALL:
76
+
77
+ * `gem install heel`
78
+
79
+ ## CREDITS:
80
+
81
+ * [puma](http://puma.io)
82
+ * [Rack](http://rack.rubyforge.org/)
83
+ * http://www.famfamfam.com/ for amazing icons
84
+
85
+ ## BSD LICENSE:
86
+
87
+ Copyright (c) 2007 - 2013, Jeremy Hinegardner
88
+
89
+ All rights reserved.
90
+
91
+ Redistribution and use in source and binary forms, with or without
92
+ modification, are permitted provided that the following conditions are met:
93
+
94
+ * Redistributions of source code must retain the above copyright notice,
95
+ this list of conditions and the following disclaimer.
96
+
97
+ * Redistributions in binary form must reproduce the above copyright notice,
98
+ this list of conditions and the following disclaimer in the
99
+ documentation and/or other materials provided with the
100
+ distribution.
101
+
102
+ * Neither the name of Jeremy Hinegardner nor the
103
+ names of its contributors may be used to endorse or promote
104
+ products derived from this software without specific prior written
105
+ permission.
106
+
107
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
108
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
109
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
110
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
111
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
112
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
113
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
114
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
115
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
116
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
117
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Rakefile CHANGED
@@ -15,6 +15,8 @@ This.ruby_gemspec do |spec|
15
15
  spec.add_development_dependency( 'rake' , '~> 10.0.3')
16
16
  spec.add_development_dependency( 'minitest' , '~> 4.5.0' )
17
17
  spec.add_development_dependency( 'rdoc' , '~> 3.12' )
18
+
19
+ spec.license = "BSD"
18
20
  end
19
21
 
20
22
  load 'tasks/default.rake'
@@ -1,29 +1,29 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
- <head>
5
- <title>Error <%= status %> </title>
6
- <link rel="stylesheet" href="/heel_css/error.css" type="text/css" />
7
- </head>
8
- <body>
9
- <div class="wrap">
10
- <div class="header">
11
- Requested URL: <%= base_uri %>
12
- </div>
13
- <div class="curved">
14
- <b class="c1"></b><b class="c2"></b><b class="c3"></b><b class="c4"></b>
15
- <div class="box">
16
- <div class="content">
17
- <img src="/heel_icons/error.png"><h1>Error <%= status %></h1>
18
- <br />
19
- <h2><%= message %></h2>
20
- </div>
21
- </div>
22
- <b class="c4"></b><b class="c3"></b><b class="c2"></b><b class="c1"></b>
23
- </div>
24
- <div class="footer">
25
- <a href="<%= homepage %>">heel</a>/v<%= ::Heel::VERSION %>
26
- </div>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Error <%= status %> </title>
5
+ <meta charset="utf-8">
6
+ <link rel="stylesheet" href="/heel_css/error.css" type="text/css" />
7
+ </head>
8
+ <body>
9
+ <div class="wrap">
10
+ <div class="header">
11
+ Requested URL: <%= base_uri %>
12
+ </div>
13
+ <div class="curved">
14
+ <b class="c1"></b><b class="c2"></b><b class="c3"></b><b class="c4"></b>
15
+ <div class="box">
16
+ <div class="content">
17
+ <img src="/heel_icons/error.png" alt=""/><h1>Error <%= status %></h1>
18
+ <br />
19
+ <h2><%= message %></h2>
20
+ </div>
27
21
  </div>
28
- </body>
22
+ <b class="c4"></b><b class="c3"></b><b class="c2"></b><b class="c1"></b>
23
+ </div>
24
+ <div class="footer">
25
+ <a href="<%= homepage %>">heel</a>/v<%= ::Heel::VERSION %>
26
+ </div>
27
+ </div>
28
+ </body>
29
29
  </html>
@@ -1,41 +1,42 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
- <head>
5
- <title>Index of <%= base_uri %></title>
6
- <link rel="stylesheet" href="/heel_css/listing.css" type="text/css" />
7
- </head>
8
- <body>
9
- <div class="header">
10
- <h1>Index of <%= base_uri %></h1>
11
- </div>
12
- <div class="content">
13
- <table summary="Directory Listing">
14
- <thead>
15
- <tr><th class="n">File Name</th><th class="l" >Last Modified Timestamp</th><th class="m">File Size</th><th class="t">File Type</th></tr>
16
- </thead>
17
- <tbody>
18
- <% entries.each_with_index do |entry,i| %>
19
- <tr<%= i % 2 > 0 ? ' class="odd" ' : '' %>>
20
- <td>
21
- <% if entry.icon_url then %>
22
- <img src="<%= entry.icon_url %>" width="16" height="16" alt="icon for type <%= entry.content_type %>" />
23
- <% end %>
24
- <a href="<%= "#{base_uri.chomp('/')}/#{entry.link}" %>"><%= entry.name %></a>
25
- <% if highlighting? and entry.content_type != 'Directory' then %>
26
- (<a href="<%= "#{base_uri.chomp('/')}/#{entry.link}?highlighting=false" %>">download</a>)
27
- <% end %>
28
- </td>
29
- <td><%= entry.last_modified %></td>
30
- <td class="<%= entry.content_type == "Directory" ? 'c' : 'n' %>" ><%= entry.size %></td>
31
- <td><%= entry.content_type %></td>
32
- </tr>
33
- <% end %>
34
- </tbody>
35
- </table>
36
- </div>
37
- <div class="footer">
38
- <a href="http://copiousfreetime.rubyforge.org/heel/">heel</a>/v<%= Heel::VERSION %>
39
- </div>
40
- </body>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Index of <%= base_uri %></title>
5
+ <meta charset="utf-8">
6
+ <link rel="stylesheet" href="/heel_css/listing.css" type="text/css" />
7
+ </head>
8
+ <body>
9
+ <div class="header">
10
+ <h1>Index of <%= base_uri %></h1>
11
+ </div>
12
+ <div class="content">
13
+ <table>
14
+ <caption>Directory Listing</caption>
15
+ <thead>
16
+ <tr><th class="n">File Name</th><th class="l" >Last Modified Timestamp</th><th class="m">File Size</th><th class="t">File Type</th></tr>
17
+ </thead>
18
+ <tbody>
19
+ <% entries.each_with_index do |entry,i| %>
20
+ <tr<%= i % 2 > 0 ? ' class="odd" ' : '' %>>
21
+ <td>
22
+ <% if entry.icon_url then %>
23
+ <img src="<%= entry.icon_url %>" width="16" height="16" alt="icon for type <%= entry.content_type %>" />
24
+ <% end %>
25
+ <a href="<%= "#{base_uri.chomp('/')}/#{entry.link}" %>"><%= entry.name %></a>
26
+ <% if highlighting? and entry.content_type != 'Directory' then %>
27
+ (<a href="<%= "#{base_uri.chomp('/')}/#{entry.link}?highlighting=false" %>">download</a>)
28
+ <% end %>
29
+ </td>
30
+ <td><%= entry.last_modified %></td>
31
+ <td class="<%= entry.content_type == "Directory" ? 'c' : 'n' %>" ><%= entry.size %></td>
32
+ <td><%= entry.content_type %></td>
33
+ </tr>
34
+ <% end %>
35
+ </tbody>
36
+ </table>
37
+ </div>
38
+ <div class="footer">
39
+ <a href="http://copiousfreetime.rubyforge.org/heel/">heel</a>/v<%= Heel::VERSION %>
40
+ </div>
41
+ </body>
41
42
  </html>
@@ -4,7 +4,7 @@
4
4
  #++
5
5
 
6
6
  module Heel
7
- VERSION = '3.0.1'
7
+ VERSION = '3.0.2'
8
8
  end
9
9
 
10
10
  require 'heel/configuration'
@@ -51,7 +51,7 @@ module Heel
51
51
  self.sub_path("lib", *args)
52
52
  end
53
53
 
54
- HOMEPAGE = "http://copiousfreetime.rubyforge.org/heel/"
54
+ HOMEPAGE = "http://github.com/copiousfreetime/heel/"
55
55
 
56
56
  private
57
57
  def self.sub_path(sub,*args)
@@ -28,7 +28,7 @@ module Heel
28
28
 
29
29
  def initialize(base_uri, body, status = 404, header = {})
30
30
  header = header.merge( "Content-Type" => 'text/html' )
31
- @response = Rack::Response.new( body, status, header )
31
+ @response = Rack::Response.new('', status, header )
32
32
  @base_uri = base_uri
33
33
  end
34
34
 
@@ -42,7 +42,7 @@ module Heel
42
42
  ["images/svg+xml", ["svg"]],
43
43
  ["video/x-flv", ["flv"]],
44
44
  ["application/x-shockwave-flash", ["swf"]],
45
- ["text/plain", ["rb", "rhtml"]],
45
+ ["text/plain", ["rb", "rhtml", "md", "markdown"]],
46
46
  ]
47
47
  end
48
48
  end
@@ -254,29 +254,6 @@ module Heel
254
254
  return server_thread
255
255
  end
256
256
 
257
- def start_server_old
258
- server = Rack::Server.new( server_options )
259
- server_thread = Thread.new do
260
- if options.daemonize then
261
- if cpid = fork then
262
- # wait for the server to span and then move on to launching the
263
- # browser
264
- Process.waitpid( cpid )
265
- else
266
- server.start
267
- end
268
- else
269
- begin
270
- server.start
271
- rescue RuntimeError
272
- $stderr.puts "ERROR: Unable to start server. Heel may already be running. Please check running processes or run `heel --kill'"
273
- exit 1
274
- end
275
- end
276
- end
277
- return server_thread
278
- end
279
-
280
257
  def server_options
281
258
  {
282
259
  :app => heel_app,
@@ -56,6 +56,9 @@ begin
56
56
  t.libs = %w[ lib spec ]
57
57
  t.pattern = "spec/**/*_spec.rb"
58
58
  end
59
+
60
+ task :test_requirements
61
+ task :test => :test_requirements
59
62
  task :default => :test
60
63
  rescue LoadError
61
64
  This.task_warning( 'test' )
@@ -71,9 +74,10 @@ begin
71
74
  RDoc::Task.new do |t|
72
75
  t.markup = 'tomdoc'
73
76
  t.rdoc_dir = 'doc'
74
- t.main = 'README.rdoc'
77
+ t.main = 'README.md'
75
78
  t.title = "#{This.name} #{This.version}"
76
- t.rdoc_files.include( '*.rdoc', 'lib/**/*.rb' )
79
+ t.rdoc_files.include( FileList['*.{rdoc,md,txt}'], FileList['ext/**/*.c'],
80
+ FileList['lib/**/*.rb'] )
77
81
  end
78
82
  rescue LoadError => le
79
83
  This.task_warning( 'rdoc' )
@@ -146,18 +150,70 @@ end
146
150
  #------------------------------------------------------------------------------
147
151
  # Fixme - look for fixmes and report them
148
152
  #------------------------------------------------------------------------------
149
- desc "Look for fixmes and report them"
150
- task :fixme => 'manifest:check' do
151
- This.manifest.each do |file|
152
- next if file == __FILE__
153
- next unless file =~ %r/(txt|rb|md|rdoc|css|html|xml|css)\Z/
154
- puts "FIXME: Rename #{file}" if file =~ /fixme/i
155
- IO.readlines( file ).each_with_index do |line, idx|
156
- prefix = "FIXME: #{file}:#{idx+1}".ljust(42)
157
- puts "#{prefix} => #{line.strip}" if line =~ /fixme/i
153
+ namespace :fixme do
154
+ task :default => 'manifest:check' do
155
+ This.manifest.each do |file|
156
+ next if file == __FILE__
157
+ next unless file =~ %r/(txt|rb|md|rdoc|css|html|xml|css)\Z/
158
+ puts "FIXME: Rename #{file}" if file =~ /fixme/i
159
+ IO.readlines( file ).each_with_index do |line, idx|
160
+ prefix = "FIXME: #{file}:#{idx+1}".ljust(42)
161
+ puts "#{prefix} => #{line.strip}" if line =~ /fixme/i
162
+ end
163
+ end
164
+ end
165
+
166
+ def fixme_project_root
167
+ This.project_path( '../fixme' )
168
+ end
169
+
170
+ def fixme_project_path( subtree )
171
+ fixme_project_root.join( subtree )
172
+ end
173
+
174
+ def local_fixme_files
175
+ This.manifest.select { |p| p =~ %r|^tasks/| }
176
+ end
177
+
178
+ def outdated_fixme_files
179
+ local_fixme_files.reject do |local|
180
+ upstream = fixme_project_path( local )
181
+ Digest::SHA256.file( local ) == Digest::SHA256.file( upstream )
182
+ end
183
+ end
184
+
185
+ def fixme_up_to_date?
186
+ outdated_fixme_files.empty?
187
+ end
188
+
189
+ desc "See if the fixme tools are outdated"
190
+ task :outdated => :release_check do
191
+ if fixme_up_to_date? then
192
+ puts "Fixme files are up to date."
193
+ else
194
+ outdated_fixme_files.each do |f|
195
+ puts "#{f} is outdated"
196
+ end
197
+ end
198
+ end
199
+
200
+ desc "Update outdated fixme files"
201
+ task :update => :release_check do
202
+ if fixme_up_to_date? then
203
+ puts "Fixme files are already up to date."
204
+ else
205
+ puts "Updating fixme files:"
206
+ outdated_fixme_files.each do |local|
207
+ upstream = fixme_project_path( local )
208
+ puts " * #{local}"
209
+ FileUtils.cp( upstream, local )
210
+ end
211
+ puts "Use your git commands as appropriate."
158
212
  end
159
213
  end
160
214
  end
215
+ desc "Look for fixmes and report them"
216
+ task :fixme => "fixme:default"
161
217
 
162
218
  #------------------------------------------------------------------------------
163
219
  # Gem Specification
@@ -171,7 +227,10 @@ task :gemspec do
171
227
  end
172
228
 
173
229
  # the gemspec is also a dev artifact and should not be kept around.
174
- CLOBBER << This.gemspec_file
230
+ CLOBBER << This.gemspec_file.to_s
231
+
232
+ # .rbc files from ruby 2.0
233
+ CLOBBER << FileList["**/*.rbc"]
175
234
 
176
235
  # The standard gem packaging task, everyone has it.
177
236
  require 'rubygems/package_task'
@@ -25,7 +25,7 @@ class ThisProject
25
25
  #
26
26
  # Yields self
27
27
  def initialize(&block)
28
- @exclude_from_manifest = %r/tmp$|\.(git|DS_Store)|^(doc|coverage|pkg)|Gemfile*|\.gemspec$|\.swp$|\.jar|\.rvmrc$|~$/
28
+ @exclude_from_manifest = %r/\.(git|DS_Store)|^(doc|coverage|pkg|tmp)|Gemfile*|\.(gemspec|swp|jar|bundle|so|rvmrc)$|~$/
29
29
  @gemspecs = Hash.new
30
30
  yield self if block_given?
31
31
  end
@@ -54,7 +54,7 @@ class ThisProject
54
54
  #
55
55
  # Retuns the text of the section as an array of paragrphs.
56
56
  def section_of( file, section_name )
57
- re = /^=+ (.*)$/
57
+ re = /^[=#]+ (.*)$/
58
58
  sectional = project_path( file )
59
59
  parts = sectional.read.split( re )[1..-1]
60
60
  parts.map! { |p| p.strip }
@@ -77,8 +77,8 @@ class ThisProject
77
77
  # path - the relative path of the file from the project root
78
78
  #
79
79
  # Returns the Pathname of the file
80
- def project_path( relative_path )
81
- project_root.join( relative_path )
80
+ def project_path( *relative_path )
81
+ project_root.join( *relative_path )
82
82
  end
83
83
 
84
84
  # Internal: The absolute path of this file
@@ -110,9 +110,16 @@ class ThisProject
110
110
  manifest_file.readlines.map { |l| l.strip }
111
111
  end
112
112
 
113
+ # Internal: Return the files that define the extensions
114
+ #
115
+ # Returns an Array
116
+ def extension_conf_files
117
+ manifest.grep( /extconf.rb\Z/ )
118
+ end
119
+
113
120
  # Internal: Returns the gemspace associated with the current ruby platform
114
121
  def platform_gemspec
115
- gemspecs.fetch( platform, ruby_gemspec )
122
+ gemspecs[platform]
116
123
  end
117
124
 
118
125
  def core_gemspec
@@ -130,8 +137,8 @@ class ThisProject
130
137
  spec.executables = spec.files.grep(/^bin/) { |f| File.basename(f) }
131
138
  spec.test_files = spec.files.grep(/^spec/)
132
139
 
133
- spec.extra_rdoc_files += spec.files.grep(/(txt|rdoc)$/)
134
- spec.rdoc_options = [ "--main" , 'README.rdoc',
140
+ spec.extra_rdoc_files += spec.files.grep(/(txt|rdoc|md)$/)
141
+ spec.rdoc_options = [ "--main" , 'README.md',
135
142
  "--markup", "tomdoc" ]
136
143
  end
137
144
  end
@@ -180,7 +187,7 @@ class ThisProject
180
187
 
181
188
  # Internal: Return the DESCRIPTION section of the README.rdoc file
182
189
  def description_section
183
- section_of( 'README.rdoc', 'DESCRIPTION')
190
+ section_of( 'README.md', 'DESCRIPTION')
184
191
  end
185
192
 
186
193
  # Internal: Return the summary text from the README
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heel
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
5
- prerelease:
4
+ version: 3.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jeremy Hinegardner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
11
+ date: 2013-03-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: puma
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: mime-types
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: launchy
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: coderay
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: minitest
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rdoc
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,35 +104,35 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
125
110
  version: '3.12'
126
111
  description: ! 'Heel is a small static web server for use when you need a quick web
127
- server for a directory. Once the server is running, heel will use launchy to open
128
- your browser at the URL of your document root. Heel is built using Rack and Puma %
129
- heel Launching your browser... Puma 1.6.3 starting... * Min threads: 0, max
130
- threads: 16 * Environment: deployment * Listening on tcp://0.0.0.0:4331 Or run
131
- it in the background % heel --daemonize Launching your browser at http://0.0.0.0:4331/ %
132
- heel --kill Sending TERM to process 3304 Done.'
112
+ server for a directory. Once the server is running, heel will use (http://rubygems.org/gems/launchy/)
113
+ to open your browser at the URL of your document root. Heel is built using (http://rack.github.com)
114
+ and (http://puma.io) % heel Launching your browser... Puma 1.6.3 starting... *
115
+ Min threads: 0, max threads: 16 * Environment: deployment * Listening on
116
+ tcp://0.0.0.0:4331 Or run it in the background % heel --daemonize Launching
117
+ your browser at http://0.0.0.0:4331/ % heel --kill Sending TERM to process
118
+ 3304 Done.'
133
119
  email: jeremy@copiousfreetime.org
134
120
  executables:
135
121
  - heel
136
122
  extensions: []
137
123
  extra_rdoc_files:
138
- - HISTORY.rdoc
124
+ - CONTRIBUTING.md
125
+ - HISTORY.md
139
126
  - Manifest.txt
140
- - README.rdoc
127
+ - README.md
141
128
  - data/famfamfam/readme.txt
142
129
  files:
143
130
  - CONTRIBUTING.md
144
- - HISTORY.rdoc
131
+ - HISTORY.md
145
132
  - LICENSE
146
133
  - Manifest.txt
147
- - README.rdoc
134
+ - README.md
148
135
  - Rakefile
149
- - TODO
150
136
  - bin/heel
151
137
  - data/css/coderay-alpha.css
152
138
  - data/css/coderay-cycnus.css
@@ -186,34 +172,34 @@ files:
186
172
  - tasks/default.rake
187
173
  - tasks/this.rb
188
174
  homepage: http://github.com/copiousfreetime/heel
189
- licenses: []
175
+ licenses:
176
+ - BSD
177
+ metadata: {}
190
178
  post_install_message:
191
179
  rdoc_options:
192
180
  - --main
193
- - README.rdoc
181
+ - README.md
194
182
  - --markup
195
183
  - tomdoc
196
184
  require_paths:
197
185
  - lib
198
186
  required_ruby_version: !ruby/object:Gem::Requirement
199
- none: false
200
187
  requirements:
201
188
  - - ! '>='
202
189
  - !ruby/object:Gem::Version
203
190
  version: '0'
204
191
  required_rubygems_version: !ruby/object:Gem::Requirement
205
- none: false
206
192
  requirements:
207
193
  - - ! '>='
208
194
  - !ruby/object:Gem::Version
209
195
  version: '0'
210
196
  requirements: []
211
197
  rubyforge_project:
212
- rubygems_version: 1.8.24
198
+ rubygems_version: 2.0.3
213
199
  signing_key:
214
- specification_version: 3
200
+ specification_version: 4
215
201
  summary: Heel is a small static web server for use when you need a quick web server
216
- for a directory. Once the server is running, heel will use {launchy}[http://rubygems.org/gems/launchy/]
202
+ for a directory. Once the server is running, heel will use [launchy](http://rubygems.org/gems/launchy/)
217
203
  to open your browser at the URL of your document root.
218
204
  test_files:
219
205
  - spec/configuration_spec.rb
@@ -1,117 +0,0 @@
1
- == Heel
2
-
3
- * Homepage[http://github.com/copiousfreetime/heel/]
4
- * email jeremy at hinegardner dot org
5
- * git clone git://github.com/copiousfreetime/heel.git
6
-
7
- == DESCRIPTION
8
-
9
- Heel is a small static web server for use when you need a quick web server for a
10
- directory. Once the server is running, heel will use
11
- {launchy}[http://rubygems.org/gems/launchy/] to open your browser at
12
- the URL of your document root.
13
-
14
- Heel is built using {Rack}[http://rack.github.com] and
15
- {Puma}[http://puma.io]
16
-
17
- % heel
18
- Launching your browser...
19
- Puma 1.6.3 starting...
20
- * Min threads: 0, max threads: 16
21
- * Environment: deployment
22
- * Listening on tcp://0.0.0.0:4331
23
-
24
- Or run it in the background
25
-
26
- % heel --daemonize
27
- Launching your browser at http://0.0.0.0:4331/
28
-
29
- % heel --kill
30
- Sending TERM to process 3304
31
- Done.
32
-
33
- == FEATURES
34
-
35
- * Automatic launching of your browser to the URL it is serving with {launchy}[http://github.com/copiousfreetime/launchy/]
36
- * Automatic syntax highlighting of source code files with {coderay}[http://coderay.rubychan.de/]
37
- * Run in the foreground or daemonized
38
- * Bind to any address and port (default is 0.0.0.0:4331)
39
-
40
- == SYNOPSIS:
41
-
42
- Usage: heel [options]
43
-
44
- -a, --address ADDRESS Address to bind to
45
- (default: 0.0.0.0)
46
- -d, --daemonize Run daemonized in the background
47
- -h, --help Display this text
48
- -k, --kill Kill an existing daemonized heel process
49
- --[no-]highlighting Turn on or off syntax highlighting
50
- (default: off)
51
- --[no-]launch-browser Turn on or off automatic browser launch
52
- (default: on)
53
- -p, --port PORT Port to bind to
54
- (default: 4331)
55
- -r, --root ROOT Set the document root
56
- (default: current working directory)
57
- -v, --version Show version
58
-
59
-
60
- == REQUIREMENTS:
61
-
62
- === For running:
63
-
64
- * {coderay}[http://coderay.rubychan.de/]
65
- * {launchy}[http://copiousfreetime.rubyforge.org/launchy/] >= 0.1.1
66
- * {mime-types}[http://mime-types.rubyforge.org/]
67
- * {puma}[http://puma.io]
68
-
69
- === For development:
70
-
71
- * {minitest}[http://rubygems.org/gems/minitest]
72
- * {rake}[http://rubygems.org/gems/rake]
73
- * {rdoc}[http://rubygems.org/gems/rdoc]
74
-
75
- == INSTALL:
76
-
77
- * gem install heel
78
-
79
- == CREDITS:
80
-
81
- * {puma}[http://puma.io]
82
- * {Rack}[http://rack.rubyforge.org/]
83
- * http://www.famfamfam.com/ for amazing icons
84
-
85
- == BSD LICENSE:
86
-
87
- Copyright (c) 2007 - 2013, Jeremy Hinegardner
88
-
89
- All rights reserved.
90
-
91
- Redistribution and use in source and binary forms, with or without
92
- modification, are permitted provided that the following conditions are met:
93
-
94
- * Redistributions of source code must retain the above copyright notice,
95
- this list of conditions and the following disclaimer.
96
-
97
- * Redistributions in binary form must reproduce the above copyright notice,
98
- this list of conditions and the following disclaimer in the
99
- documentation and/or other materials provided with the
100
- distribution.
101
-
102
- * Neither the name of Jeremy Hinegardner nor the
103
- names of its contributors may be used to endorse or promote
104
- products derived from this software without specific prior written
105
- permission.
106
-
107
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
108
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
109
- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
110
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
111
- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
112
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
113
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
114
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
115
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
116
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
117
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/TODO DELETED
@@ -1,2 +0,0 @@
1
- - See why jruby is not working correctly
2
- - Add HEAD support