ichverstehe-gaze 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/bin/gaze +118 -0
  2. metadata +62 -0
data/bin/gaze ADDED
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'sinatra'
4
+ require 'haml'
5
+
6
+ set :public, File.join(File.dirname(__FILE__) +'/../public/')
7
+
8
+ configure do
9
+ # Format options
10
+ {:Markdown => 'maruku', :Textile => 'RedCloth'}.each do |name, gem|
11
+ begin
12
+ require "#{gem}"
13
+ rescue LoadError => e
14
+ puts <<-MSG
15
+ To format #{name} as well:
16
+ $ sudo gem install #{gem}
17
+ It is not needed though.
18
+ MSG
19
+ end
20
+ end
21
+
22
+ Dir.chdir ARGV[0] if ARGV[0]
23
+ end
24
+
25
+ helpers do
26
+ def get_dir
27
+ File.basename(Dir.getwd)
28
+ end
29
+ def pages
30
+ (Dir["*.md"] + Dir["*.markdown"] + Dir["*.textile"]).sort
31
+ end
32
+ end
33
+
34
+ get '/' do
35
+ redirect '/pages/'
36
+ end
37
+
38
+ get '/pages/' do
39
+ # If there is only one markdown file present, serve that instantly.
40
+ redirect "#{pages.first}" if pages.size == 1
41
+
42
+ haml :pages
43
+ end
44
+
45
+ get '/pages/:page.:ext' do
46
+ begin
47
+ filename = "#{params[:page]}.#{params[:ext]}"
48
+ File.open(filename) do |file|
49
+ @output = case params[:ext]
50
+ when "markdown", "md"
51
+ Maruku.new(file.read).to_html
52
+ when "textile"
53
+ RedCloth.new(file.read).to_html
54
+ else
55
+ file.read
56
+ end
57
+ end
58
+ haml :page
59
+ rescue
60
+ raise Sinatra::NotFound
61
+ end
62
+ end
63
+
64
+ get '/stylesheet.css' do
65
+ sass :styles
66
+ end
67
+
68
+ use_in_file_templates!
69
+ __END__
70
+
71
+ @@layout
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= get_dir
86
+ %ul
87
+ - pages.each do |page|
88
+ %li
89
+ %a{:href => "/pages/#{page}"}= page
90
+
91
+ @@page
92
+ %strong
93
+ %a{:href => '/pages/'}= get_dir
94
+ - pages.each do |page|
95
+ %a{:href => "/pages/#{page}"}= page
96
+ %hr
97
+ ~ @output
98
+
99
+ @@styles
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,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ichverstehe-gaze
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Harry Vangberg
8
+ - Mikkel Malmberg
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2008-11-22 00:00:00 -08:00
14
+ default_executable: gaze
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: sinatra
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.3.2
24
+ version:
25
+ description:
26
+ email: ichverstehe@gmail.com
27
+ executables:
28
+ - gaze
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - bin/gaze
35
+ has_rdoc: false
36
+ homepage: http://github.com/ichverstehe/gaze
37
+ post_install_message:
38
+ rdoc_options: []
39
+
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
54
+ requirements: []
55
+
56
+ rubyforge_project:
57
+ rubygems_version: 1.2.0
58
+ signing_key:
59
+ specification_version: 2
60
+ summary: Serves up a folder of Markdown or Textile formatted files via Sinatra.
61
+ test_files: []
62
+