adamcooke-htmlserve 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/htmlserve +8 -0
  2. data/bin/htmlserve.rb +30 -0
  3. metadata +54 -0
data/bin/htmlserve ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ## I am fully aware of how nasty this is, but I actually don't know enough about Sinatra to make
4
+ ## `htmlserve` execute itself when run through the RubyGems 'bin wrapper'. Suggestions for improvement
5
+ ## are more than welcome.
6
+
7
+ ruby_version = File.join(File.dirname(__FILE__), 'htmlserve.rb')
8
+ exec("/usr/bin/env ruby #{ruby_version} #{ARGV[0]}")
data/bin/htmlserve.rb ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'sinatra'
5
+
6
+ set :port, ARGV[0] || 4567
7
+
8
+ get '*' do
9
+ file = File.join('.', params[:splat].first)
10
+ if File.exist?(file) && !File.file?(file)
11
+ file = File.join(file, 'index.html')
12
+ end
13
+
14
+ if File.file?(file)
15
+ properties = `file -b -i #{file}`.chomp
16
+ file_contents = File.read(file)
17
+
18
+ headers(
19
+ 'Content-Type' => properties,
20
+ 'Server' => "HTMLServe",
21
+ 'Date' => Time.now.httpdate,
22
+ 'Content-Length' => file_contents.length,
23
+ 'Connection' => 'close'
24
+ )
25
+
26
+ file_contents
27
+ else
28
+ not_found("<p><span style='color:red'><b>Page Not Found</b> at #{file}</span></p>")
29
+ end
30
+ end
metadata ADDED
@@ -0,0 +1,54 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adamcooke-htmlserve
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Adam Cooke
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-08 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: adam@atechmedia.com
18
+ executables:
19
+ - htmlserve
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - bin/htmlserve
26
+ - bin/htmlserve.rb
27
+ has_rdoc: false
28
+ homepage: http://www.atechmedia.com
29
+ post_install_message:
30
+ rdoc_options: []
31
+
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: "0"
39
+ version:
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ requirements: []
47
+
48
+ rubyforge_project:
49
+ rubygems_version: 1.2.0
50
+ signing_key:
51
+ specification_version: 2
52
+ summary: A simple sinatra based server for rendering HTML sites
53
+ test_files: []
54
+