md-server 0.0.4

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.
Files changed (3) hide show
  1. data/md-server +33 -0
  2. data/rack-add-headers.rb +15 -0
  3. metadata +73 -0
data/md-server ADDED
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rack'
4
+ require 'tilt'
5
+ require File.join(File.dirname(__FILE__), 'rack-add-headers')
6
+
7
+ %w{gemspec rb}.each do |ext|
8
+ Rack::Mime::MIME_TYPES.merge! ".#{ext}" => 'text/plain'
9
+ end
10
+
11
+ app = Rack::Builder.app do
12
+
13
+ files = Rack::Directory.new('.')
14
+
15
+ use AddHeaders, 'X-Content-Type-Options' => 'nosniff', 'Cache-Control' => 'no-store'
16
+
17
+ run lambda { |env|
18
+ path = env['PATH_INFO'][1..-1]
19
+
20
+ begin
21
+ return [200, {"Content-Type" => "text/html"}, [Tilt.new(path).render]] if Tilt[path]
22
+ rescue Errno::ENOENT
23
+ #404 will be created automatically
24
+ rescue LoadError => le
25
+ return [500, {"Content-Type" => "text/plain"}, ["#{le}\nYou need to install the appropriate gem."]]
26
+ end
27
+
28
+ files.call(env)
29
+ }
30
+
31
+ end
32
+
33
+ Rack::Server.start :app => app, :Port => 9292
@@ -0,0 +1,15 @@
1
+ class AddHeaders
2
+
3
+ def initialize(app, headers)
4
+ @app = app
5
+ @injected_headers = headers
6
+ end
7
+
8
+ def call(env)
9
+ status, headers, body = @app.call(env)
10
+ headers.merge! @injected_headers
11
+ [status, headers, body]
12
+
13
+ end
14
+ end
15
+
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: md-server
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Matt Wildig
9
+ autorequire:
10
+ bindir: .
11
+ cert_chain: []
12
+ date: 2011-08-22 00:00:00.000000000 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ requirement: &2153622020 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2153622020
26
+ - !ruby/object:Gem::Dependency
27
+ name: tilt
28
+ requirement: &2153621580 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2153621580
37
+ description:
38
+ email:
39
+ executables:
40
+ - md-server
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - md-server
45
+ - rack-add-headers.rb
46
+ - ./md-server
47
+ has_rdoc: true
48
+ homepage:
49
+ licenses: []
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ requirements: []
67
+ rubyforge_project:
68
+ rubygems_version: 1.6.2
69
+ signing_key:
70
+ specification_version: 3
71
+ summary: Simple server to show you what your markdown and other templates looks like
72
+ when converted to html.
73
+ test_files: []