brochure 0.3.0 → 0.3.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.
- data/README.md +46 -8
- data/lib/brochure.rb +1 -1
- data/lib/brochure/application.rb +2 -2
- metadata +4 -4
data/README.md
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
Brochure
|
2
2
|
========
|
3
3
|
|
4
|
-
A Rack application for serving static sites with ERB templates
|
4
|
+
A Rack application for serving static sites with ERB templates (or any
|
5
|
+
of the many [template languages supported by
|
6
|
+
Tilt](http://github.com/rtomayko/tilt/blob/master/TEMPLATES.md#readme)).
|
5
7
|
|
6
8
|
Sample application structure:
|
7
9
|
|
@@ -20,17 +22,52 @@ Sample application structure:
|
|
20
22
|
Sample `config.ru`:
|
21
23
|
|
22
24
|
require "brochure"
|
23
|
-
|
25
|
+
ROOT = File.dirname(__FILE__)
|
26
|
+
run Brochure.app(ROOT)
|
24
27
|
|
25
|
-
URLs are automatically mapped to template names. So `/` will render
|
26
|
-
`templates/index.html.erb`, `/signup` will render
|
27
|
-
`templates/signup.html.erb`, `/help/` will render
|
28
|
-
`templates/help/index.html.erb`, and so on.
|
29
28
|
|
30
|
-
Templates
|
31
|
-
|
29
|
+
## Templates and URL mapping
|
30
|
+
|
31
|
+
URLs are automatically mapped to template names:
|
32
|
+
|
33
|
+
* `/` → `templates/index.html.erb`
|
34
|
+
* `/signup` → `templates/signup.html.erb`
|
35
|
+
* `/help/` → `templates/help/index.html.erb`
|
36
|
+
|
37
|
+
Templates can render partials. A partial is denoted by a leading
|
38
|
+
underscore in its filename. So `<%= render "shared/header" %>` will
|
32
39
|
render `templates/shared/_header.html.erb` inline.
|
33
40
|
|
41
|
+
Templates have access to the Rack environment via the `env` method and
|
42
|
+
to the Brochure application via the `application` method.
|
43
|
+
|
44
|
+
|
45
|
+
## Helper methods and instance variables
|
46
|
+
|
47
|
+
You can make additional helper methods and instance variables
|
48
|
+
available to your templates. Helper methods live in Ruby modules and
|
49
|
+
can be included with the `:helpers` option to `Brochure.app`:
|
50
|
+
|
51
|
+
module AssetHelper
|
52
|
+
def asset_path(filename)
|
53
|
+
local_path = File.join(application.asset_root, filename)
|
54
|
+
if File.file?(local_path)
|
55
|
+
cache_buster = "?#{Digest::MD5.hexdigest(IO.read(local_path))}"
|
56
|
+
else
|
57
|
+
cache_buster = ""
|
58
|
+
end
|
59
|
+
"#{filename}#{cache_buster}"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
run Brochure.app(ROOT, :helpers => [AssetHelper])
|
64
|
+
|
65
|
+
Similarly, instance variables can be defined with the `:assigns`
|
66
|
+
option:
|
67
|
+
|
68
|
+
run Brochure.app(ROOT, :assigns => { :domain => "37signals.com" })
|
69
|
+
|
70
|
+
|
34
71
|
# Installation
|
35
72
|
|
36
73
|
$ gem install brochure
|
@@ -39,6 +76,7 @@ Requires [Hike](http://github.com/sstephenson/hike),
|
|
39
76
|
[Rack](http://rack.rubyforge.org/), and
|
40
77
|
[Tilt](http://github.com/rtomayko/tilt).
|
41
78
|
|
79
|
+
|
42
80
|
# License
|
43
81
|
|
44
82
|
Copyright (c) 2010 Sam Stephenson and Josh Peek.
|
data/lib/brochure.rb
CHANGED
data/lib/brochure/application.rb
CHANGED
@@ -94,10 +94,10 @@ module Brochure
|
|
94
94
|
template.render(context, locals)
|
95
95
|
end
|
96
96
|
|
97
|
-
def respond_with(status, body, content_type = "text/html
|
97
|
+
def respond_with(status, body, content_type = "text/html; charset=utf-8")
|
98
98
|
headers = {
|
99
99
|
"Content-Type" => content_type,
|
100
|
-
"Content-Length" => body.
|
100
|
+
"Content-Length" => Rack::Utils.bytesize(body).to_s
|
101
101
|
}
|
102
102
|
[status, headers, [body]]
|
103
103
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brochure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sam Stephenson
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-10-
|
19
|
+
date: 2010-10-22 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|