ichverstehe-gaze 0.1.1

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 +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
+