heel 3.1.3 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8de35e1a0be02782a8ae61c13b387b0248671a75
4
- data.tar.gz: 42aa82f5bd32867dc4fd06f20345be8d0955fe24
3
+ metadata.gz: ddf4092171701ace806a71917763141cce205b54
4
+ data.tar.gz: d6f09ec079849ba132f1cf1e5b99c877f29583c0
5
5
  SHA512:
6
- metadata.gz: d3ebbc2d3fc0964c8eaa9898a0ce445dc11c7bc9bedf481075ba13db6afd6f85369237dd1512771f898bbdc7798618d3e9cb5954b6bb2a1ab0cf5331e14e5f6d
7
- data.tar.gz: a6692022c04dad0a61ffd5e83e31a7317ab0a53f1770822d668da48499c341f61f2f24ebd8b0fe57095749d93365a16675a30faefcf018e9870941cd95560a1c
6
+ metadata.gz: c3551bc3dbed252b3a4ad60cc423cb0b87e3735113baa674ae69b137b7931ac2bf4d69ebb934a97bb05b4d97a609f892fad2c88c6f6aa16842e52ad70b9be82b
7
+ data.tar.gz: 557cdd3013d70a85f4efc8cbfa705ef2286aad7cb68ade8206af3e416678cda2c38ff72a7257f095404d484c14fea1c4e9ee47725e91563158414cf670fa2f2b
data/HISTORY.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # Changelog
2
+ ## Version 3.2.0 - 2018-03-14
3
+ * fix missing rack dependency [#17](https://github.com/copiousfreetime/heel/pull/17)
4
+ * across the board gem dependency updates
5
+ * ruby 2.2 minimum dependency - because of transitive dependencies
2
6
 
3
7
  ## Version 3.1.3 - 2013-11-26
4
8
  * URL encode the links to files [#14](https://github.com/copiousfreetime/heel/issues/14)
data/LICENSE CHANGED
@@ -1,3 +1,5 @@
1
+ BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause
2
+
1
3
  Copyright (c) 2007-2009, Jeremy Hinegardner
2
4
 
3
5
  All rights reserved.
data/README.md CHANGED
@@ -17,10 +17,12 @@ Heel is built using [Rack](http://rack.github.com) and
17
17
 
18
18
  % heel
19
19
  Launching your browser...
20
- Puma 1.6.3 starting...
20
+ Puma starting in single mode...
21
+ * Version 3.11.3 (ruby 2.4.3-p205), codename: Love Song
21
22
  * Min threads: 0, max threads: 16
22
- * Environment: deployment
23
+ * Environment: none
23
24
  * Listening on tcp://0.0.0.0:4331
25
+ Use Ctrl-C to stop
24
26
 
25
27
  Or run it in the background
26
28
 
@@ -91,18 +93,18 @@ All rights reserved.
91
93
  Redistribution and use in source and binary forms, with or without
92
94
  modification, are permitted provided that the following conditions are met:
93
95
 
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.
96
+ * Redistributions of source code must retain the above copyright notice,
97
+ this list of conditions and the following disclaimer.
98
+
99
+ * Redistributions in binary form must reproduce the above copyright notice,
100
+ this list of conditions and the following disclaimer in the
101
+ documentation and/or other materials provided with the
102
+ distribution.
103
+
104
+ * Neither the name of Jeremy Hinegardner nor the
105
+ names of its contributors may be used to endorse or promote
106
+ products derived from this software without specific prior written
107
+ permission.
106
108
 
107
109
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
108
110
  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
data/Rakefile CHANGED
@@ -7,16 +7,18 @@ This.email = "jeremy@copiousfreetime.org"
7
7
  This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
8
8
 
9
9
  This.ruby_gemspec do |spec|
10
- spec.add_runtime_dependency( 'puma' , '~> 2.0' )
11
- spec.add_runtime_dependency( 'mime-types', '~> 1.25')
12
- spec.add_runtime_dependency( 'launchy' , '~> 2.3' )
10
+ spec.add_runtime_dependency( 'rack' , '~> 2.0' )
11
+ spec.add_runtime_dependency( 'puma' , '~> 3.11.3' )
12
+ spec.add_runtime_dependency( 'mime-types', '~> 3.1')
13
+ spec.add_runtime_dependency( 'launchy' , '~> 2.4' )
13
14
  spec.add_runtime_dependency( 'coderay' , '~> 1.1' )
14
15
 
15
- spec.add_development_dependency( 'rake' , '~> 10.1')
16
- spec.add_development_dependency( 'minitest' , '~> 5.0' )
17
- spec.add_development_dependency( 'rdoc' , '~> 4.0' )
16
+ spec.add_development_dependency( 'rake' , '~> 12.3')
17
+ spec.add_development_dependency( 'minitest' , '~> 5.11' )
18
+ spec.add_development_dependency( 'rdoc' , '~> 6.0' )
19
+ spec.add_development_dependency( 'simplecov', '~> 0.15' )
18
20
 
19
- spec.license = "BSD"
21
+ spec.license = "BSD-3-Clause"
20
22
  end
21
23
 
22
24
  load 'tasks/default.rake'
@@ -4,7 +4,7 @@
4
4
  #++
5
5
 
6
6
  module Heel
7
- VERSION = '3.1.3'
7
+ VERSION = '3.2.0'
8
8
  end
9
9
 
10
10
  require 'heel/configuration'
@@ -50,11 +50,7 @@ module Heel
50
50
  MIME::Types.add(mt)
51
51
  else
52
52
  type = existing_type.first
53
- mt.extensions.each do |ext|
54
- type.extensions << ext unless type.extensions.include?( ext )
55
- end
56
- # have to reindex if new extensions added
57
- MIME::Types.index_extensions(type)
53
+ type.add_extensions(mt.extensions)
58
54
  end
59
55
  end
60
56
  end
@@ -166,7 +166,7 @@ module Heel
166
166
 
167
167
  # kill an already running background heel process
168
168
  def kill_existing_proc
169
- if File.exists?(pid_file) then
169
+ if File.exist?(pid_file) then
170
170
  begin
171
171
  pid = open(pid_file).read.to_i
172
172
  @stdout.puts "Sending TERM to process #{pid}"
@@ -187,7 +187,7 @@ module Heel
187
187
  # setup the directory that heel will use as the location to run from, where its logs will
188
188
  # be stored and its PID file if backgrounded.
189
189
  def setup_heel_dir
190
- if not File.exists?(default_directory) then
190
+ if not File.exist?(default_directory) then
191
191
  FileUtils.mkdir_p(default_directory)
192
192
  @stdout.puts "Created #{default_directory}"
193
193
  @stdout.puts "heel's PID (#{pid_file}) and log file (#{log_file}) are stored here"
@@ -1,8 +1,5 @@
1
- if RUBY_VERSION >= '1.9.2' then
2
- require 'simplecov'
3
- puts "Using coverage!"
4
- SimpleCov.start if ENV['COVERAGE']
5
- end
1
+ require 'simplecov'
2
+ SimpleCov.start if ENV['COVERAGE']
6
3
 
7
4
  gem 'minitest'
8
5
  require 'heel'
@@ -10,41 +10,26 @@ namespace :develop do
10
10
 
11
11
  # Install all the development and runtime dependencies of this gem using the
12
12
  # gemspec.
13
- task :default do
13
+ task :default => 'Gemfile' do
14
14
  require 'rubygems/dependency_installer'
15
15
  installer = ::Gem::DependencyInstaller.new
16
-
17
- This.set_coverage_gem
18
-
19
- puts "Installing gem depedencies needed for development"
20
- This.platform_gemspec.dependencies.each do |dep|
21
- if dep.matching_specs.empty? then
22
- puts "Installing : #{dep}"
23
- installer.install dep
24
- else
25
- puts "Skipping : #{dep} -> already installed #{dep.matching_specs.first.full_name}"
26
- end
27
- end
16
+ puts "Installing bundler..."
17
+ installer.install 'bundler'
18
+ sh 'bundle install'
28
19
  puts "\n\nNow run 'rake test'"
29
20
  end
30
21
 
31
22
  # Create a Gemfile that just references the gemspec
32
23
  file 'Gemfile' => :gemspec do
33
24
  File.open( "Gemfile", "w+" ) do |f|
34
- f.puts 'source "https://rubygems.org/"'
25
+ f.puts "# DO NOT EDIT - This file is automatically generated"
26
+ f.puts "# Make changes to Manifest.txt and/or Rakefile and regenerate"
27
+ f.puts 'source "https://rubygems.org"'
35
28
  f.puts 'gemspec'
36
29
  end
37
30
  end
38
-
39
- desc "Create a bundler Gemfile"
40
- task :using_bundler => 'Gemfile' do
41
- puts "Now you can 'bundle'"
42
- end
43
-
44
- # Gemfiles are build artifacts
45
- CLOBBER << FileList['Gemfile*']
46
31
  end
47
- desc "Boostrap development"
32
+ desc "Bootstrap development"
48
33
  task :develop => "develop:default"
49
34
 
50
35
  #------------------------------------------------------------------------------
@@ -88,31 +73,16 @@ end
88
73
  # Coverage - optional code coverage, rcov for 1.8 and simplecov for 1.9, so
89
74
  # for the moment only rcov is listed.
90
75
  #------------------------------------------------------------------------------
91
- if RUBY_VERSION < "1.9.0"
92
- begin
93
- require 'rcov/rcovtask'
94
- Rcov::RcovTask.new( 'coverage' ) do |t|
95
- t.libs << 'spec'
96
- t.pattern = 'spec/**/*_spec.rb'
97
- t.verbose = true
98
- t.rcov_opts << "-x ^/" # remove all the global files
99
- t.rcov_opts << "--sort coverage" # so we see the worst files at the top
100
- end
101
- rescue LoadError
102
- This.task_warning( 'rcov' )
103
- end
104
- else
105
- begin
106
- require 'simplecov'
107
- desc 'Run tests with code coverage'
108
- task :coverage do
109
- ENV['COVERAGE'] = 'true'
110
- Rake::Task[:test].execute
111
- end
112
- CLOBBER << FileList["coverage"]
113
- rescue LoadError
114
- This.task_warning( 'simplecov' )
76
+ begin
77
+ require 'simplecov'
78
+ desc 'Run tests with code coverage'
79
+ task :coverage do
80
+ ENV['COVERAGE'] = 'true'
81
+ Rake::Task[:test].execute
115
82
  end
83
+ CLOBBER << 'coverage' if File.directory?( 'coverage' )
84
+ rescue LoadError
85
+ This.task_warning( 'simplecov' )
116
86
  end
117
87
 
118
88
  #------------------------------------------------------------------------------
@@ -177,9 +147,10 @@ namespace :fixme do
177
147
  end
178
148
 
179
149
  def outdated_fixme_files
180
- local_fixme_files.reject do |local|
150
+ local_fixme_files.select do |local|
181
151
  upstream = fixme_project_path( local )
182
- Digest::SHA256.file( local ) == Digest::SHA256.file( upstream )
152
+ upstream.exist? &&
153
+ ( Digest::SHA256.file( local ) != Digest::SHA256.file( upstream ) )
183
154
  end
184
155
  end
185
156
 
@@ -223,13 +194,12 @@ task :fixme => "fixme:default"
223
194
  desc "Build the #{This.name}.gemspec file"
224
195
  task :gemspec do
225
196
  File.open( This.gemspec_file, "wb+" ) do |f|
197
+ f.puts "# DO NOT EDIT - This file is automatically generated"
198
+ f.puts "# Make changes to Manifest.txt and/or Rakefile and regenerate"
226
199
  f.write This.platform_gemspec.to_ruby
227
200
  end
228
201
  end
229
202
 
230
- # the gemspec is also a dev artifact and should not be kept around.
231
- CLOBBER << This.gemspec_file.to_s
232
-
233
203
  # .rbc files from ruby 2.0
234
204
  CLOBBER << FileList["**/*.rbc"]
235
205
 
@@ -13,7 +13,7 @@ class ThisProject
13
13
  attr_accessor :email
14
14
 
15
15
  # The homepage of this project
16
- attr_accessor :homepage
16
+ attr_accessor :homepage
17
17
 
18
18
  # The regex of files to exclude from the manifest
19
19
  attr_accessor :exclude_from_manifest
@@ -25,7 +25,11 @@ class ThisProject
25
25
  #
26
26
  # Yields self
27
27
  def initialize(&block)
28
- @exclude_from_manifest = %r/\.(git|DS_Store)|^(doc|coverage|pkg|tmp|Gemfile(\.lock)?)|^[^\/]+\.gemspec|\.(swp|jar|bundle|so|rvmrc)$|~$/
28
+ @exclude_from_manifest = Regexp.union(/\.(git|DS_Store)/,
29
+ /^(doc|coverage|pkg|tmp|Gemfile(\.lock)?)/,
30
+ /^[^\/]+\.gemspec/,
31
+ /\.(swp|jar|bundle|so|rvmrc|travis.yml|byebug_history)$/,
32
+ /~$/)
29
33
  @gemspecs = Hash.new
30
34
  yield self if block_given?
31
35
  end
@@ -119,7 +123,7 @@ class ThisProject
119
123
 
120
124
  # Internal: Returns the gemspace associated with the current ruby platform
121
125
  def platform_gemspec
122
- gemspecs[platform]
126
+ gemspecs.fetch(platform) { This.ruby_gemspec }
123
127
  end
124
128
 
125
129
  def core_gemspec
@@ -132,6 +136,7 @@ class ThisProject
132
136
 
133
137
  spec.summary = summary
134
138
  spec.description = description
139
+ spec.license = license
135
140
 
136
141
  spec.files = manifest
137
142
  spec.executables = spec.files.grep(/^bin/) { |f| File.basename(f) }
@@ -140,6 +145,8 @@ class ThisProject
140
145
  spec.extra_rdoc_files += spec.files.grep(/(txt|rdoc|md)$/)
141
146
  spec.rdoc_options = [ "--main" , 'README.md',
142
147
  "--markup", "tomdoc" ]
148
+
149
+ spec.required_ruby_version = '>= 2.2.2'
143
150
  end
144
151
  end
145
152
 
@@ -166,20 +173,6 @@ class ThisProject
166
173
  return spec
167
174
  end
168
175
 
169
- # Internal: Set the recovery gem development dependency
170
- #
171
- # These are dynamically set since they cannot be hard coded as there is
172
- # no way to ship them correctly in the gemspec
173
- #
174
- # Returns nothing.
175
- def set_coverage_gem
176
- if RUBY_VERSION < "1.9.0"
177
- platform_gemspec.add_development_dependency( 'rcov', '~> 1.0.0' )
178
- else
179
- platform_gemspec.add_development_dependency( 'simplecov', '~> 0.7.1' )
180
- end
181
- end
182
-
183
176
  # Internal: Return the platform of ThisProject at the current moment in time.
184
177
  def platform
185
178
  (RUBY_PLATFORM == "java") ? 'java' : Gem::Platform::RUBY
@@ -189,17 +182,23 @@ class ThisProject
189
182
  def description_section
190
183
  section_of( 'README.md', 'DESCRIPTION')
191
184
  end
192
-
193
- # Internal: Return the summary text from the README
185
+
186
+ # Internal: Return the summary text from the README
194
187
  def summary
195
188
  description_section.first
196
189
  end
197
190
 
198
- # Internal: Return the full description text from the READEM
191
+ # Internal: Return the full description text from the README
199
192
  def description
200
193
  description_section.join(" ").tr("\n", ' ').gsub(/[{}]/,'').gsub(/\[[^\]]+\]/,'') # strip rdoc
201
194
  end
202
195
 
196
+ def license
197
+ license_file = project_path("LICENSE")
198
+ line = license_file.readlines.first
199
+ line.split(/\s+/).first
200
+ end
201
+
203
202
  # Internal: The path to the gemspec file
204
203
  def gemspec_file
205
204
  project_path( "#{ name }.gemspec" )
metadata CHANGED
@@ -1,119 +1,148 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heel
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Hinegardner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-26 00:00:00.000000000 Z
11
+ date: 2018-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: puma
14
+ name: rack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: puma
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.11.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.11.3
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: mime-types
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ~>
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '1.25'
47
+ version: '3.1'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ~>
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '1.25'
54
+ version: '3.1'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: launchy
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ~>
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '2.3'
61
+ version: '2.4'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ~>
66
+ - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '2.3'
68
+ version: '2.4'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: coderay
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ~>
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
75
  version: '1.1'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ~>
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '1.1'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ~>
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '10.1'
89
+ version: '12.3'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ~>
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '10.1'
96
+ version: '12.3'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: minitest
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ~>
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '5.0'
103
+ version: '5.11'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ~>
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '5.0'
110
+ version: '5.11'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rdoc
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ~>
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '4.0'
117
+ version: '6.0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ~>
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '4.0'
124
+ version: '6.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.15'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.15'
111
139
  description: 'Heel is a small static web server for use when you need a quick web
112
140
  server for a directory. Once the server is running, heel will use (http://rubygems.org/gems/launchy/)
113
141
  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
142
+ and (http://puma.io) % heel Launching your browser... Puma starting
143
+ in single mode... * Version 3.11.3 (ruby 2.4.3-p205), codename: Love Song *
144
+ Min threads: 0, max threads: 16 * Environment: none * Listening on tcp://0.0.0.0:4331 Use
145
+ Ctrl-C to stop Or run it in the background % heel --daemonize Launching
117
146
  your browser at http://0.0.0.0:4331/ % heel --kill Sending TERM to process
118
147
  3304 Done.'
119
148
  email: jeremy@copiousfreetime.org
@@ -176,29 +205,29 @@ files:
176
205
  - tasks/this.rb
177
206
  homepage: http://github.com/copiousfreetime/heel
178
207
  licenses:
179
- - BSD
208
+ - BSD-3-Clause
180
209
  metadata: {}
181
210
  post_install_message:
182
211
  rdoc_options:
183
- - --main
212
+ - "--main"
184
213
  - README.md
185
- - --markup
214
+ - "--markup"
186
215
  - tomdoc
187
216
  require_paths:
188
217
  - lib
189
218
  required_ruby_version: !ruby/object:Gem::Requirement
190
219
  requirements:
191
- - - '>='
220
+ - - ">="
192
221
  - !ruby/object:Gem::Version
193
- version: '0'
222
+ version: 2.2.2
194
223
  required_rubygems_version: !ruby/object:Gem::Requirement
195
224
  requirements:
196
- - - '>='
225
+ - - ">="
197
226
  - !ruby/object:Gem::Version
198
227
  version: '0'
199
228
  requirements: []
200
229
  rubyforge_project:
201
- rubygems_version: 2.1.11
230
+ rubygems_version: 2.6.14
202
231
  signing_key:
203
232
  specification_version: 4
204
233
  summary: Heel is a small static web server for use when you need a quick web server