hogan_assets 1.3.0 → 1.3.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/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.3.1 (2012-06-21)
2
+
3
+ * #11 - Fix **hamstache** support, broken in 1.3.0
4
+
1
5
  ## 1.3.0 (2012-06-18)
2
6
 
3
7
  * #9 - Support lambda construct in **mustache**, set via `config.lambda_support = true`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hogan_assets (1.3.0)
4
+ hogan_assets (1.3.1)
5
5
  execjs (>= 1.2.9)
6
6
  sprockets (>= 2.0.3)
7
7
  tilt (>= 1.3.3)
@@ -11,6 +11,7 @@ GEM
11
11
  specs:
12
12
  execjs (1.4.0)
13
13
  multi_json (~> 1.0)
14
+ haml (3.1.6)
14
15
  hike (1.2.1)
15
16
  multi_json (1.3.5)
16
17
  rack (1.4.1)
@@ -25,4 +26,5 @@ PLATFORMS
25
26
  ruby
26
27
 
27
28
  DEPENDENCIES
29
+ haml
28
30
  hogan_assets!
data/README.md CHANGED
@@ -91,10 +91,11 @@ I made this because I <3 **mustache** and want to use it in Rails. Follow me on
91
91
 
92
92
  # Contributors
93
93
 
94
- * @mdavidn (Matthew Nelson) : Remove unnecessary template source
95
- * @ajacksified (Jack Lawson) : Configurable file extension
96
- * @mikesmullin (Mike Smullin) : hamstache support
97
- * @gleuch (Greg Leuch) : Mustache lambdas
94
+ * @mdavidn (Matthew Nelson) : Remove unnecessary template source
95
+ * @ajacksified (Jack Lawson) : Configurable file extension
96
+ * @mikesmullin (Mike Smullin) : hamstache support
97
+ * @gleuch (Greg Leuch) : Mustache lambdas
98
+ * @lautis (Ville Lautanala) : hamstache fix
98
99
 
99
100
  ## Contributing
100
101
 
data/hogan_assets.gemspec CHANGED
@@ -18,4 +18,6 @@ Gem::Specification.new do |gem|
18
18
  gem.add_runtime_dependency "execjs", ">= 1.2.9"
19
19
  gem.add_runtime_dependency "tilt", ">= 1.3.3"
20
20
  gem.add_runtime_dependency "sprockets", ">= 2.0.3"
21
+
22
+ gem.add_development_dependency "haml"
21
23
  end
@@ -11,16 +11,14 @@ module HoganAssets
11
11
  end
12
12
 
13
13
  def evaluate(scope, locals, &block)
14
- text = data # Ugly, yes, but to not taint data variable
15
-
16
- if scope.pathname.extname == '.hamstache'
14
+ text = if scope.pathname.extname == '.hamstache'
17
15
  raise "Unable to complile #{scope.pathname} because haml is not available. Did you add the haml gem?" unless HoganAssets::Config.haml_available?
18
- text = Haml::Engine.new(data, @options).render
19
- compiled_template = Hogan.compile(source)
16
+ Haml::Engine.new(data, @options).render
20
17
  else
21
- compiled_template = Hogan.compile(data)
18
+ data
22
19
  end
23
20
 
21
+ compiled_template = Hogan.compile(text)
24
22
  template_name = scope.logical_path.inspect
25
23
 
26
24
  # Only emit the source template if we are using lambdas
@@ -1,3 +1,3 @@
1
1
  module HoganAssets
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -2,12 +2,16 @@ require 'test_helper'
2
2
 
3
3
  module HoganAssets
4
4
  class TiltTest < Test::Unit::TestCase
5
- def scope
6
- Class.new do
7
- def logical_path ; 'path/to/template' ; end
5
+ def scope(path)
6
+ instance = Class.new do
7
+ attr_accessor :_path
8
8
 
9
- def pathname ; Pathname.new logical_path ; end
9
+ def logical_path ; _path.gsub /\..*/, '' ; end
10
+
11
+ def pathname ; Pathname.new _path ; end
10
12
  end.new
13
+ instance._path = path
14
+ instance
11
15
  end
12
16
 
13
17
  def test_mime_type
@@ -15,17 +19,28 @@ module HoganAssets
15
19
  end
16
20
 
17
21
  def test_render
18
- template = HoganAssets::Tilt.new('/myapp/app/assets/templates/path/to/template.mustache') { "This is {{mustache}}" }
19
- assert_equal <<-END_EXPECTED, template.render(scope, {})
22
+ path = 'path/to/template.mustache'
23
+ template = HoganAssets::Tilt.new(path) { "This is {{mustache}}" }
24
+ assert_equal <<-END_EXPECTED, template.render(scope(path), {})
20
25
  this.HoganTemplates || (this.HoganTemplates = {});
21
26
  this.HoganTemplates[\"path/to/template\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"This is \");t.b(t.v(t.f(\"mustache\",c,p,0)));return t.fl(); },partials: {}, subs: { }}, "", Hogan, {});
22
27
  END_EXPECTED
23
28
  end
24
29
 
30
+ def test_hamstache_render
31
+ path = 'path/to/template.hamstache'
32
+ template = HoganAssets::Tilt.new(path) { "%p This is {{hamstache}}" }
33
+ assert_equal <<-END_EXPECTED, template.render(scope(path), {})
34
+ this.HoganTemplates || (this.HoganTemplates = {});
35
+ this.HoganTemplates[\"path/to/template\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"<p>This is \");t.b(t.v(t.f(\"hamstache\",c,p,0)));t.b(\"</p>\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\", Hogan, {});
36
+ END_EXPECTED
37
+ end
38
+
25
39
  def test_render_with_lambdas
40
+ path = 'path/to/template.mustache'
26
41
  HoganAssets::Config.lambda_support = true
27
- template = HoganAssets::Tilt.new('/myapp/app/assets/templates/path/to/template.mustache') { "This is {{mustache}}" }
28
- assert_equal <<-END_EXPECTED, template.render(scope, {})
42
+ template = HoganAssets::Tilt.new(path) { "This is {{mustache}}" }
43
+ assert_equal <<-END_EXPECTED, template.render(scope(path), {})
29
44
  this.HoganTemplates || (this.HoganTemplates = {});
30
45
  this.HoganTemplates[\"path/to/template\"] = new Hogan.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"This is \");t.b(t.v(t.f(\"mustache\",c,p,0)));return t.fl(); },partials: {}, subs: { }}, "This is {{mustache}}", Hogan, {});
31
46
  END_EXPECTED
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hogan_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
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: 2012-06-19 00:00:00.000000000 Z
12
+ date: 2012-06-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: execjs
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.0.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: haml
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: Use compiled hogan.js (mustache) JavaScript templates with sprockets
63
79
  and the Rails asset pipeline.
64
80
  email: