gaze 0.1.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 (2) hide show
  1. data/bin/gaze +118 -0
  2. metadata +76 -0
data/bin/gaze ADDED
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env ruby
2
+ require 'sinatra'
3
+
4
+ set :run, true
5
+
6
+ configure do
7
+ # Format options
8
+ {:Markdown => 'maruku', :Textile => 'RedCloth'}.each do |name, gem|
9
+ begin
10
+ require "#{gem}"
11
+ rescue LoadError => e
12
+ puts <<-MSG
13
+ To format #{name} as well:
14
+ $ gem install #{gem}
15
+ It is not needed though.
16
+ MSG
17
+ end
18
+ end
19
+
20
+ Dir.chdir ARGV[0] if ARGV[0]
21
+ end
22
+
23
+ helpers do
24
+ def title
25
+ File.basename(Dir.getwd).gsub(/_/, ' ')
26
+ end
27
+
28
+ def pages
29
+ (Dir["*.md"] + Dir["*.markdown"] + Dir["*.textile"]).sort
30
+ end
31
+ end
32
+
33
+ get '/' do
34
+ redirect '/pages/'
35
+ end
36
+
37
+ get '/pages/' do
38
+ # If there is only one file present, serve that instantly.
39
+ redirect "#{pages.first}" if pages.size == 1
40
+
41
+ haml :pages
42
+ end
43
+
44
+ get '/pages/:page.:ext' do
45
+ begin
46
+ filename = "#{params[:page]}.#{params[:ext]}"
47
+ File.open(filename) do |file|
48
+ @output = case params[:ext]
49
+ when "markdown", "md"
50
+ Maruku.new(file.read).to_html
51
+ when "textile"
52
+ RedCloth.new(file.read).to_html
53
+ else
54
+ file.read
55
+ end
56
+ end
57
+ haml :page
58
+ rescue
59
+ raise Sinatra::NotFound
60
+ end
61
+ end
62
+
63
+ get '/stylesheet.css' do
64
+ content_type 'text/css', :charset => 'utf-8'
65
+ sass :stylesheet
66
+ end
67
+
68
+ __END__
69
+
70
+ @@layout
71
+ !!! XML
72
+ !!!
73
+ %html
74
+ %head
75
+ %link{:rel => 'stylesheet', :href => '/stylesheet.css', :type => 'text/css'}
76
+ %meta{'http-equiv' => "Content-Type", :content => "text/html; charset=utf-8"}/
77
+
78
+ %body
79
+ #container= yield
80
+ #footer
81
+ powered by
82
+ %a{:href => 'http://github.com/ichverstehe/gaze'} gaze
83
+
84
+ @@pages
85
+ %h1= title
86
+ %ul
87
+ - pages.each do |page|
88
+ %li
89
+ %a{:href => "/pages/#{page}"}= page
90
+
91
+ @@page
92
+ %strong
93
+ %a{:href => '/pages/'}= title
94
+ - pages.each do |page|
95
+ %a{:href => "/pages/#{page}"}= page
96
+ %hr
97
+ ~ @output
98
+
99
+ @@stylesheet
100
+ body
101
+ :font-family "Lucida Grande", sans-serif
102
+ :font-size 12px
103
+ :background #f1f1f1
104
+ h1,h2,h3,h4,h5,h6
105
+ :font-family "Helvetica", sans-serif
106
+ #container
107
+ :width 520px
108
+ :margin 30px auto 3px
109
+ :padding 20px
110
+ :background #fff
111
+ :border 5px solid #ccc
112
+ :-moz-border-radius 10px
113
+ :-webkit-border-radius 10px
114
+ #footer
115
+ :text-align center
116
+ :color #888
117
+ a
118
+ :color #888
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gaze
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 4
9
+ version: 0.1.4
10
+ platform: ruby
11
+ authors:
12
+ - Harry Vangberg
13
+ - Mikkel Malmberg
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-03-10 00:00:00 +01:00
19
+ default_executable: gaze
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: sinatra
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 3
31
+ - 2
32
+ version: 0.3.2
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description:
36
+ email: ichverstehe@gmail.com
37
+ executables:
38
+ - gaze
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - bin/gaze
45
+ has_rdoc: true
46
+ homepage: http://github.com/ichverstehe/gaze
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ requirements: []
69
+
70
+ rubyforge_project:
71
+ rubygems_version: 1.3.6
72
+ signing_key:
73
+ specification_version: 2
74
+ summary: Serves up a folder of Markdown or Textile formatted files via Sinatra.
75
+ test_files: []
76
+