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 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