templebars 0.3.1 → 0.4.0
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 +2 -0
- data/lib/templebars/rails/engine.rb +8 -1
- data/lib/templebars/templates.rb +43 -0
- data/lib/templebars/{rails/version.rb → version.rb} +1 -1
- data/lib/templebars.rb +3 -1
- data/templebars.gemspec +3 -3
- data/vendor/assets/javascripts/handlebars.js +1 -0
- data/vendor/assets/javascripts/handlebars.runtime.js +1 -0
- metadata +10 -12
- data/lib/templebars/rails/templates.rb +0 -49
- data/lib/templebars/rails.rb +0 -7
data/README.md
CHANGED
@@ -70,6 +70,8 @@ config.templebars_template_global = "Ember.TEMPLATES"
|
|
70
70
|
|
71
71
|
# Version History
|
72
72
|
|
73
|
+
* **0.4.0** Drop support for old Rails versions, clean up code, bump sprockets
|
74
|
+
and execjs version dependencies.
|
73
75
|
* **0.3.1** Relax tilt dependency version to ~> 1.3.
|
74
76
|
* **0.3.0** Update Handlebars to 1.0.0, clean up gem dependencies.
|
75
77
|
* **0.2.2** Update Handlebars to a custom 1.0.rc.1 build, which fixes [issue #317](https://github.com/wycats/handlebars.js/issues/317).
|
@@ -1,7 +1,14 @@
|
|
1
1
|
module Templebars
|
2
2
|
module Rails
|
3
3
|
class Engine < ::Rails::Engine
|
4
|
-
|
4
|
+
initializer "sprockets.templebars", after: "sprockets.environment", group: :all do |app|
|
5
|
+
next unless app.assets
|
6
|
+
|
7
|
+
app.config.templebars_template_global = "Templates"
|
8
|
+
|
9
|
+
app.assets.register_engine( ".handlebars", Templebars::HandlebarsTemplate )
|
10
|
+
app.assets.register_engine( ".hbs", Templebars::HandlebarsTemplate )
|
11
|
+
end
|
5
12
|
end
|
6
13
|
end
|
7
14
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require "tilt"
|
2
|
+
require "execjs"
|
3
|
+
|
4
|
+
module Templebars
|
5
|
+
# Tilt template renderer for precompiling Handlebars templates and storing
|
6
|
+
# them in a global Templates object.
|
7
|
+
class HandlebarsTemplate < ::Tilt::Template
|
8
|
+
def self.default_mime_type
|
9
|
+
"application/javascript"
|
10
|
+
end
|
11
|
+
|
12
|
+
def evaluate( scope, locals, &block )
|
13
|
+
name = scope.logical_path.sub( /^templates\//, "" )
|
14
|
+
register_template_js( name, precompile( data ) )
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
|
19
|
+
def prepare; end
|
20
|
+
|
21
|
+
def register_template_js( name, precompiled_js )
|
22
|
+
global = ::Rails.application.config.templebars_template_global
|
23
|
+
<<-JS
|
24
|
+
this.#{global} || (this.#{global} = {});
|
25
|
+
this.#{global}["#{name}"] = Handlebars.template(#{precompiled_js});
|
26
|
+
JS
|
27
|
+
end
|
28
|
+
|
29
|
+
def precompile( template )
|
30
|
+
runtime.call( "Handlebars.precompile", template, { data: {} } )
|
31
|
+
end
|
32
|
+
|
33
|
+
def runtime
|
34
|
+
@runtime ||= ExecJS.compile( handlebars_js )
|
35
|
+
end
|
36
|
+
|
37
|
+
def handlebars_js
|
38
|
+
path = File.expand_path( "../../../vendor/assets/javascripts/handlebars.js", __FILE__ )
|
39
|
+
File.read( path )
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
data/lib/templebars.rb
CHANGED
data/templebars.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require File.expand_path('../lib/templebars/
|
2
|
+
require File.expand_path('../lib/templebars/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "templebars"
|
@@ -14,8 +14,8 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
s.rubyforge_project = "templebars"
|
16
16
|
|
17
|
-
s.add_dependency "sprockets", ">= 2.0.
|
18
|
-
s.add_dependency "execjs", "
|
17
|
+
s.add_dependency "sprockets", ">= 2.0.3"
|
18
|
+
s.add_dependency "execjs", ">= 1.2.9"
|
19
19
|
s.add_dependency "tilt", "~> 1.3"
|
20
20
|
s.add_development_dependency "rake"
|
21
21
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: templebars
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.0.
|
21
|
+
version: 2.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,23 +26,23 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0.
|
29
|
+
version: 2.0.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: execjs
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
37
|
+
version: 1.2.9
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
45
|
+
version: 1.2.9
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: tilt
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,10 +88,9 @@ files:
|
|
88
88
|
- README.md
|
89
89
|
- Rakefile
|
90
90
|
- lib/templebars.rb
|
91
|
-
- lib/templebars/rails.rb
|
92
91
|
- lib/templebars/rails/engine.rb
|
93
|
-
- lib/templebars/
|
94
|
-
- lib/templebars/
|
92
|
+
- lib/templebars/templates.rb
|
93
|
+
- lib/templebars/version.rb
|
95
94
|
- templebars.gemspec
|
96
95
|
- vendor/assets/javascripts/handlebars.js
|
97
96
|
- vendor/assets/javascripts/handlebars.runtime.js
|
@@ -120,4 +119,3 @@ signing_key:
|
|
120
119
|
specification_version: 3
|
121
120
|
summary: Use precompiled Handlebars templates with Rails 3
|
122
121
|
test_files: []
|
123
|
-
has_rdoc:
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require "tilt/template"
|
2
|
-
require "execjs"
|
3
|
-
require 'sprockets'
|
4
|
-
|
5
|
-
module Templebars
|
6
|
-
module Rails
|
7
|
-
# Tilt template renderer for precompiling Handlebars templates and storing
|
8
|
-
# them in a global Templates object.
|
9
|
-
class HandlebarsTemplate < ::Tilt::Template
|
10
|
-
def self.default_mime_type
|
11
|
-
"application/javascript"
|
12
|
-
end
|
13
|
-
|
14
|
-
def prepare; end
|
15
|
-
|
16
|
-
def evaluate( scope, locals, &block )
|
17
|
-
name = scope.logical_path.sub( /^templates\//, "" )
|
18
|
-
register_template_js( name, precompile( data ) )
|
19
|
-
end
|
20
|
-
|
21
|
-
protected
|
22
|
-
|
23
|
-
def register_template_js( name, precompiled_js )
|
24
|
-
global = ::Rails.application.config.templebars_template_global
|
25
|
-
<<-JS
|
26
|
-
this.#{global} || (this.#{global} = {});
|
27
|
-
this.#{global}["#{name}"] = Handlebars.template(#{precompiled_js});
|
28
|
-
JS
|
29
|
-
end
|
30
|
-
|
31
|
-
def precompile( template )
|
32
|
-
runtime.call( "Handlebars.precompile", template, { data: {} } )
|
33
|
-
end
|
34
|
-
|
35
|
-
def runtime
|
36
|
-
@runtime ||= ExecJS.compile( handlebars_js )
|
37
|
-
end
|
38
|
-
|
39
|
-
def handlebars_js
|
40
|
-
path = File.expand_path( "../../../../vendor/assets/javascripts/handlebars.js", __FILE__ )
|
41
|
-
File.read( path )
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
Sprockets.register_engine '.handlebars', HandlebarsTemplate
|
46
|
-
Sprockets.register_engine '.hbs', HandlebarsTemplate
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|