hogan_assets 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
+ ## 1.3.3 (2012-09-10)
2
+
3
+ * Use `HoganAssets::Config.template_namespace` to use a custom namespace for your templates - @adamstrickland
4
+
1
5
  ## 1.3.2 (2012-08-04)
2
6
 
3
- * Use `HoganAssets::Config.path\_prefix` to strip a common path prefix from your template names
7
+ * Use `HoganAssets::Config.path_prefix` to strip a common path prefix from your template names
4
8
 
5
9
  ## 1.3.1 (2012-06-21)
6
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hogan_assets (1.3.2)
4
+ hogan_assets (1.3.3)
5
5
  execjs (>= 1.2.9)
6
6
  sprockets (>= 2.0.3)
7
7
  tilt (>= 1.3.3)
data/README.md CHANGED
@@ -85,6 +85,16 @@ will give you a compiled template:
85
85
 
86
86
  *TODO* Can this be done in a nicer way?
87
87
 
88
+ ### Template namespace
89
+
90
+ You can change the namespace for the generated templates. By default, the
91
+ namespace is `HoganTemplates`. To change it, use the `template_namespace`
92
+ option. For example:
93
+
94
+ HoganAssets::Config.configure do |config|
95
+ config.template_namespace = 'JST'
96
+ end
97
+
88
98
  ### Template Extensions
89
99
 
90
100
  By default, templates are recognized if they have an extension of `.mustache` (and if you have haml available, `.hamstache`.) You can change the template extensions by setting the `template_extensions` configuration option in an initializer:
@@ -105,11 +115,12 @@ I made this because I <3 **mustache** and want to use it in Rails. Follow me on
105
115
 
106
116
  # Contributors
107
117
 
108
- * @mdavidn (Matthew Nelson) : Remove unnecessary template source
109
- * @ajacksified (Jack Lawson) : Configurable file extension
110
- * @mikesmullin (Mike Smullin) : hamstache support
111
- * @gleuch (Greg Leuch) : Mustache lambdas
112
- * @lautis (Ville Lautanala) : hamstache fix
118
+ * @mdavidn (Matthew Nelson) : Remove unnecessary template source
119
+ * @ajacksified (Jack Lawson) : Configurable file extension
120
+ * @mikesmullin (Mike Smullin) : hamstache support
121
+ * @gleuch (Greg Leuch) : Mustache lambdas
122
+ * @lautis (Ville Lautanala) : hamstache fix
123
+ * @adamstrickland (Adam Strickland) : Custom template namespace
113
124
 
114
125
  ## Contributing
115
126
 
@@ -14,7 +14,7 @@ module HoganAssets
14
14
  module Config
15
15
  extend self
16
16
 
17
- attr_writer :lambda_support, :path_prefix, :template_extensions
17
+ attr_writer :lambda_support, :path_prefix, :template_extensions, :template_namespace
18
18
 
19
19
  def configure
20
20
  yield self
@@ -32,6 +32,10 @@ module HoganAssets
32
32
  @path_prefix ||= 'templates'
33
33
  end
34
34
 
35
+ def template_namespace
36
+ @template_namespace ||= 'HoganTemplates'
37
+ end
38
+
35
39
  def template_extensions
36
40
  @template_extensions ||= if haml_available?
37
41
  ['mustache', 'hamstache']
@@ -12,6 +12,7 @@ module HoganAssets
12
12
 
13
13
  def evaluate(scope, locals, &block)
14
14
  template_path = TemplatePath.new scope
15
+ template_namespace = HoganAssets::Config.template_namespace
15
16
 
16
17
  text = if template_path.is_hamstache?
17
18
  raise "Unable to complile #{template_path.full_path} because haml is not available. Did you add the haml gem?" unless HoganAssets::Config.haml_available?
@@ -26,8 +27,8 @@ module HoganAssets
26
27
  # Only emit the source template if we are using lambdas
27
28
  text = '' unless HoganAssets::Config.lambda_support?
28
29
  <<-TEMPLATE
29
- this.HoganTemplates || (this.HoganTemplates = {});
30
- this.HoganTemplates[#{template_path.name}] = new Hogan.Template(#{compiled_template}, #{text.inspect}, Hogan, {});
30
+ this.#{template_namespace} || (this.#{template_namespace} = {});
31
+ this.#{template_namespace}[#{template_path.name}] = new Hogan.Template(#{compiled_template}, #{text.inspect}, Hogan, {});
31
32
  TEMPLATE
32
33
  end
33
34
 
@@ -1,3 +1,3 @@
1
1
  module HoganAssets
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.3"
3
3
  end
@@ -75,5 +75,20 @@ module HoganAssets
75
75
  this.HoganTemplates[\"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, {});
76
76
  END_EXPECTED
77
77
  end
78
+
79
+ def test_template_namespace
80
+ HoganAssets::Config.configure do |config|
81
+ config.template_namespace = 'JST'
82
+ end
83
+
84
+ scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.mustache'
85
+
86
+ template = HoganAssets::Tilt.new(scope.s_path) { "This is {{mustache}}" }
87
+
88
+ assert_equal <<-END_EXPECTED, template.render(scope, {})
89
+ this.JST || (this.JST = {});
90
+ this.JST[\"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, {});
91
+ END_EXPECTED
92
+ end
78
93
  end
79
94
  end
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.2
4
+ version: 1.3.3
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-08-05 00:00:00.000000000 Z
12
+ date: 2012-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: execjs