handlebarer 0.0.1 → 0.0.2
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 +11 -11
- data/lib/handlebarer/version.rb +1 -1
- metadata +26 -42
data/README.md
CHANGED
@@ -30,7 +30,7 @@ To share our template between client and server, we need to place it under `app/
|
|
30
30
|
|
31
31
|
Lets create a views directory for our shared templates `app/assets/javascripts/views` and add our template there, following Rails' naming convensions.
|
32
32
|
|
33
|
-
The full template path should look like this: `app/assets/javascripts/views/users/index.jst.
|
33
|
+
The full template path should look like this: `app/assets/javascripts/views/users/index.jst.hbs`
|
34
34
|
|
35
35
|
### Template code
|
36
36
|
|
@@ -39,14 +39,14 @@ The most significant differences between using standard server-side Ruby-based e
|
|
39
39
|
* No access to server-side view helpers (such as url_for)
|
40
40
|
* No ruby-style instance variable like `@users`
|
41
41
|
* Template code is not Ruby and has to follow Handlerbars' syntax rather than embedded Ruby syntax
|
42
|
-
* No partials
|
42
|
+
* No partials (for now)
|
43
43
|
|
44
44
|
Our template code should look like this:
|
45
45
|
|
46
46
|
```html
|
47
47
|
<ul class="users">
|
48
48
|
{{#users}}
|
49
|
-
<li>{{
|
49
|
+
<li>{{this.name}}</li>
|
50
50
|
{{/users}}
|
51
51
|
</ul>
|
52
52
|
```
|
@@ -58,7 +58,7 @@ and the call to `=yield` will render your Handlerbars template above.
|
|
58
58
|
|
59
59
|
Since Rails doesn't expect server-side templates to live under `app/assets` we need to add our client-side views path to Rails views lookup path.
|
60
60
|
|
61
|
-
Assuming we have an initializer `app/config/initializers/
|
61
|
+
Assuming we have an initializer `app/config/initializers/handlebarer.rb` we can add our client-side views directory like this:
|
62
62
|
|
63
63
|
```ruby
|
64
64
|
Handlerbarer.configure do |config|
|
@@ -92,7 +92,7 @@ end
|
|
92
92
|
```
|
93
93
|
|
94
94
|
Note the call to `to_hbs` on the `@users` collection. This ensures our users are properly serialized for use inside our template.
|
95
|
-
See the [Serialization](https://github.com/zohararad/
|
95
|
+
See the [Serialization](https://github.com/zohararad/handlebarer#serialization) section below for more details.
|
96
96
|
|
97
97
|
In our `application.js` file lets write the following:
|
98
98
|
|
@@ -222,7 +222,7 @@ By default, `hbs_serializable` will operate with `:merge => true` and merge inst
|
|
222
222
|
Handlerbars has built in support for helper function registration, which is great for client-side rendering, but alas requires a
|
223
223
|
bit of extra work for server-side rendering.
|
224
224
|
|
225
|
-
Lets assume you have registered Handlebars
|
225
|
+
Lets assume you have a registered Handlebars helper defined in `app/assets/javascripts/helpers/link.js`
|
226
226
|
that might look something like this:
|
227
227
|
|
228
228
|
```javascript
|
@@ -231,14 +231,14 @@ Handlebars.registerHelper('link_to', function(context) {
|
|
231
231
|
});
|
232
232
|
```
|
233
233
|
|
234
|
-
On the client-side, you might add to the asset pipeline like this:
|
234
|
+
On the client-side, you might add it to the asset pipeline like this:
|
235
235
|
|
236
236
|
```javascript
|
237
237
|
//= require handlebars/runtime
|
238
238
|
//= require helpers/link.js
|
239
239
|
```
|
240
240
|
|
241
|
-
To use the same helper on the server-side, you'll need to
|
241
|
+
To use the same helper on the server-side, you'll need to configure Handlebarer like so:
|
242
242
|
|
243
243
|
```ruby
|
244
244
|
Handlerbarer.configure do |config|
|
@@ -246,8 +246,8 @@ Handlerbarer.configure do |config|
|
|
246
246
|
end
|
247
247
|
```
|
248
248
|
|
249
|
-
When rendering your Handlebars template server-side, Handlerbarer will look for any Javascript
|
250
|
-
include
|
249
|
+
When rendering your Handlebars template server-side, Handlerbarer will look for any Javascript files in the helpers path and
|
250
|
+
include them in the rendering context.
|
251
251
|
|
252
252
|
Please note that at the moment, Handlebarer only supports Javascript helper files rather than both Javascript and CoffeeScript.
|
253
253
|
|
@@ -255,7 +255,7 @@ Please note that at the moment, Handlebarer only supports Javascript helper file
|
|
255
255
|
|
256
256
|
Its recommended to configure Handlerbarer inside a Rails initializer so that configuration is defined at boot time.
|
257
257
|
|
258
|
-
Assuming we have an initializer `app/config/initializers/
|
258
|
+
Assuming we have an initializer `app/config/initializers/handlebarer.rb` it should include:
|
259
259
|
|
260
260
|
```ruby
|
261
261
|
Handlerbarer.configure do |config|
|
data/lib/handlebarer/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: handlebarer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,136 +9,120 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tilt
|
16
|
-
prerelease: false
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
|
-
none: false
|
23
22
|
type: :runtime
|
23
|
+
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
25
26
|
requirements:
|
26
27
|
- - ! '>='
|
27
28
|
- !ruby/object:Gem::Version
|
28
29
|
version: '0'
|
29
|
-
none: false
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: sprockets
|
32
|
-
prerelease: false
|
33
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
|
-
none: false
|
39
38
|
type: :runtime
|
39
|
+
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
41
42
|
requirements:
|
42
43
|
- - ! '>='
|
43
44
|
- !ruby/object:Gem::Version
|
44
45
|
version: '0'
|
45
|
-
none: false
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: therubyracer
|
48
|
-
prerelease: false
|
49
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
50
|
requirements:
|
51
51
|
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
|
-
none: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
57
58
|
requirements:
|
58
59
|
- - ! '>='
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '0'
|
61
|
-
none: false
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: libv8
|
64
|
-
prerelease: false
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - '='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 3.11.8
|
70
|
-
none: false
|
71
|
-
type: :runtime
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - '='
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 3.11.8
|
77
|
-
none: false
|
78
62
|
- !ruby/object:Gem::Dependency
|
79
63
|
name: rspec
|
80
|
-
prerelease: false
|
81
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
82
66
|
requirements:
|
83
67
|
- - ! '>='
|
84
68
|
- !ruby/object:Gem::Version
|
85
69
|
version: '0'
|
86
|
-
none: false
|
87
70
|
type: :development
|
71
|
+
prerelease: false
|
88
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
89
74
|
requirements:
|
90
75
|
- - ! '>='
|
91
76
|
- !ruby/object:Gem::Version
|
92
77
|
version: '0'
|
93
|
-
none: false
|
94
78
|
- !ruby/object:Gem::Dependency
|
95
79
|
name: rspec-rails
|
96
|
-
prerelease: false
|
97
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
98
82
|
requirements:
|
99
83
|
- - ! '>='
|
100
84
|
- !ruby/object:Gem::Version
|
101
85
|
version: '0'
|
102
|
-
none: false
|
103
86
|
type: :development
|
87
|
+
prerelease: false
|
104
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
105
90
|
requirements:
|
106
91
|
- - ! '>='
|
107
92
|
- !ruby/object:Gem::Version
|
108
93
|
version: '0'
|
109
|
-
none: false
|
110
94
|
- !ruby/object:Gem::Dependency
|
111
95
|
name: rails
|
112
|
-
prerelease: false
|
113
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
114
98
|
requirements:
|
115
99
|
- - ~>
|
116
100
|
- !ruby/object:Gem::Version
|
117
101
|
version: 3.2.11
|
118
|
-
none: false
|
119
102
|
type: :development
|
103
|
+
prerelease: false
|
120
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
121
106
|
requirements:
|
122
107
|
- - ~>
|
123
108
|
- !ruby/object:Gem::Version
|
124
109
|
version: 3.2.11
|
125
|
-
none: false
|
126
110
|
- !ruby/object:Gem::Dependency
|
127
111
|
name: sqlite3
|
128
|
-
prerelease: false
|
129
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
|
-
none: false
|
135
118
|
type: :development
|
119
|
+
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
137
122
|
requirements:
|
138
123
|
- - ! '>='
|
139
124
|
- !ruby/object:Gem::Version
|
140
125
|
version: '0'
|
141
|
-
none: false
|
142
126
|
description: Share your Handlebars views between client and server, eliminate code
|
143
127
|
duplication and make your single-page app SEO friendly
|
144
128
|
email:
|
@@ -167,20 +151,20 @@ rdoc_options: []
|
|
167
151
|
require_paths:
|
168
152
|
- lib
|
169
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
170
155
|
requirements:
|
171
156
|
- - ! '>='
|
172
157
|
- !ruby/object:Gem::Version
|
173
158
|
version: '0'
|
174
|
-
none: false
|
175
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
176
161
|
requirements:
|
177
162
|
- - ! '>='
|
178
163
|
- !ruby/object:Gem::Version
|
179
164
|
version: '0'
|
180
|
-
none: false
|
181
165
|
requirements: []
|
182
166
|
rubyforge_project:
|
183
|
-
rubygems_version: 1.8.
|
167
|
+
rubygems_version: 1.8.25
|
184
168
|
signing_key:
|
185
169
|
specification_version: 3
|
186
170
|
summary: JST and Rails views compiler for Handlebars templates
|