templebars 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
- config.templebars_template_global = "Templates"
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
+
@@ -1,6 +1,6 @@
1
1
  module Templebars
2
2
  module Rails
3
- VERSION = "0.3.1"
3
+ VERSION = "0.4.0"
4
4
  HANDLEBARSJS_VERSION = "1.0.0"
5
5
  end
6
6
  end
data/lib/templebars.rb CHANGED
@@ -1,2 +1,4 @@
1
- require 'templebars/rails'
1
+ require 'templebars/version'
2
+ require 'templebars/templates'
3
+ require 'templebars/rails/engine'
2
4
 
data/templebars.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/templebars/rails/version', __FILE__)
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.0"
18
- s.add_dependency "execjs", "~> 1.4.0"
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
 
@@ -2276,3 +2276,4 @@ Handlebars.template = Handlebars.VM.template;
2276
2276
  // lib/handlebars/browser-suffix.js
2277
2277
  })(Handlebars);
2278
2278
  ;
2279
+
@@ -360,3 +360,4 @@ Handlebars.template = Handlebars.VM.template;
360
360
  // lib/handlebars/browser-suffix.js
361
361
  })(Handlebars);
362
362
  ;
363
+
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.3.1
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-05 00:00:00.000000000 Z
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.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.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.4.0
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.4.0
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/rails/templates.rb
94
- - lib/templebars/rails/version.rb
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
-
@@ -1,7 +0,0 @@
1
- module Templebars
2
- module Rails
3
- require 'templebars/rails/engine'
4
- require 'templebars/rails/templates'
5
- require 'templebars/rails/version'
6
- end
7
- end