hbs 0.1.0 → 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.
- data/README.mdown +25 -4
- data/hbs.gemspec +2 -2
- data/lib/handlebars/version.rb +1 -1
- data/spec/handlebars_spec.rb +8 -0
- metadata +3 -3
data/README.mdown
CHANGED
@@ -4,6 +4,26 @@
|
|
4
4
|
This uses [therubyracer](http://github.com/cowboyd/therubyracer) to bind to the _actual_ JavaScript implementation of
|
5
5
|
[Handlebars.js](http://github.com/wycats/handlebars.js) so that you can use it from ruby.
|
6
6
|
|
7
|
+
## Usage
|
8
|
+
|
9
|
+
Simple stuff
|
10
|
+
|
11
|
+
require 'handlebars'
|
12
|
+
template = Handlebars.compile("{{say}}{{what}}")
|
13
|
+
template.call(:say => "Hey", :what => "Yuh!") #=> "Hey Yuh!"
|
14
|
+
|
15
|
+
With functions as properties
|
16
|
+
|
17
|
+
template.call(:say => "Hey", :what => lambda {|this| ("yo" * 2) + "!"}) #=> "Hey yoyo!"
|
18
|
+
|
19
|
+
Register block helpers:
|
20
|
+
|
21
|
+
Handlebars.register_helper(:twice) do |block|
|
22
|
+
"#{block.call}#{block.call}"
|
23
|
+
end
|
24
|
+
template = Handlebars.compile({{#twice}}Hurray!{{/twice}})
|
25
|
+
template.call #=> Hurray!Hurray!
|
26
|
+
|
7
27
|
## Hack
|
8
28
|
|
9
29
|
git clone git@github.com:cowboyd/handlebars.rb.git #git it
|
@@ -11,10 +31,11 @@ This uses [therubyracer](http://github.com/cowboyd/therubyracer) to bind to the
|
|
11
31
|
git submodule update --init #pull down handlebars.js
|
12
32
|
rspec spec/ #test it
|
13
33
|
|
14
|
-
## Use
|
15
34
|
|
16
|
-
|
17
|
-
template = Handlebars.compile("{{say}}{{what}}")
|
18
|
-
template.call(:say => "Hey", :what => "Yuh!") #=> "Hey Yuh!"
|
35
|
+
## Rubygems
|
19
36
|
|
37
|
+
Handlebars is available via the [hbs](http://rubygems.org/gems/hbs) gem on rubygems.org. There
|
38
|
+
is an [abandoned](https://github.com/MSch/handlebars-ruby) pure-ruby implementation of handlebars
|
39
|
+
on github. Eventually, I'd like to merge these two projects, but I have not been able to contact the
|
40
|
+
owner of that gem.
|
20
41
|
|
data/hbs.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ["cowboyd@thefrontside.net"]
|
11
11
|
s.homepage = "http://github.com/cowboyd/handlebars.rb"
|
12
12
|
s.summary = %q{Ruby bindings for the handlebars.js templating library}
|
13
|
-
s.description = %q{Uses the
|
13
|
+
s.description = %q{Uses the actual JavaScript implementation of Handlebars, but supports using Ruby objects as template contexts and Ruby procs as view functions and named helpers}
|
14
14
|
|
15
15
|
s.rubyforge_project = "handlebars"
|
16
16
|
|
@@ -24,5 +24,5 @@ Gem::Specification.new do |s|
|
|
24
24
|
end
|
25
25
|
|
26
26
|
s.add_dependency "therubyracer", "~> 0.9.3beta1"
|
27
|
-
s.add_development_dependency "rspec", "~> 2.0
|
27
|
+
s.add_development_dependency "rspec", "~> 2.0"
|
28
28
|
end
|
data/lib/handlebars/version.rb
CHANGED
data/spec/handlebars_spec.rb
CHANGED
@@ -23,10 +23,18 @@ describe(Handlebars) do
|
|
23
23
|
Handlebars.register_helper('alsowith') do |context, block|
|
24
24
|
block.call(context)
|
25
25
|
end
|
26
|
+
Handlebars.register_helper(:twice) do |block|
|
27
|
+
"#{block.call}#{block.call}"
|
28
|
+
end
|
26
29
|
|
27
30
|
it "correctly passes context and implementation" do
|
28
31
|
t = compile("it's so {{#alsowith weather}}*{{summary}}*{{/alsowith}}!")
|
29
32
|
t.call(:weather => {:summary => "sunny"}).should eql "it's so *sunny*!"
|
30
33
|
end
|
34
|
+
|
35
|
+
it "doesn't nee a context or arguments to the call" do
|
36
|
+
t = compile("{{#twice}}Hurray!{{/twice}}")
|
37
|
+
t.call.should eql "Hurray!Hurray!"
|
38
|
+
end
|
31
39
|
end
|
32
40
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: hbs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Charles Lowell
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 2.0
|
35
|
+
version: "2.0"
|
36
36
|
type: :development
|
37
37
|
version_requirements: *id002
|
38
|
-
description: Uses the
|
38
|
+
description: Uses the actual JavaScript implementation of Handlebars, but supports using Ruby objects as template contexts and Ruby procs as view functions and named helpers
|
39
39
|
email:
|
40
40
|
- cowboyd@thefrontside.net
|
41
41
|
executables: []
|