hogan_assets 1.5.0 → 1.5.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/.rvmrc +1 -1
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +8 -1
- data/lib/hogan_assets/config.rb +12 -1
- data/lib/hogan_assets/tilt.rb +6 -4
- data/lib/hogan_assets/version.rb +1 -1
- data/test/hogan_assets/tilt_test.rb +5 -4
- data/test/test_helper.rb +9 -0
- metadata +22 -22
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use
|
1
|
+
rvm gemset use --create hogan_assets
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -63,9 +63,15 @@ Hamstache compilation can be configured using [Haml options](http://haml.info/do
|
|
63
63
|
config.haml_options[:ugly] = true
|
64
64
|
end
|
65
65
|
|
66
|
+
You can configure which recognized as _hamstache_. For example:
|
67
|
+
|
68
|
+
HoganAssets::Config.configure do |config|
|
69
|
+
config.hamstache_extensions = %w(hamstache hamlhbs)
|
70
|
+
end
|
71
|
+
|
66
72
|
## Slimstache!
|
67
73
|
|
68
|
-
_slimstache_ is the also popular combination of `slim` and `mustache`. Works just like hamstache.
|
74
|
+
_slimstache_ is the also popular combination of `slim` and `mustache`. Works just like hamstache above.
|
69
75
|
|
70
76
|
## Configuration
|
71
77
|
|
@@ -137,6 +143,7 @@ I made this because I <3 **mustache** and want to use it in Rails. Follow me on
|
|
137
143
|
* @lautis (Ville Lautanala) : haml_options configuration
|
138
144
|
* @sars (Rodion) : slimstache support
|
139
145
|
* @apai4 : YAML configuration
|
146
|
+
* @AlexRiedler (Alex Riedler) : hamstache/slimstache extensions and helper support
|
140
147
|
|
141
148
|
## Contributing
|
142
149
|
|
data/lib/hogan_assets/config.rb
CHANGED
@@ -38,7 +38,8 @@ module HoganAssets
|
|
38
38
|
module Config
|
39
39
|
extend self
|
40
40
|
|
41
|
-
attr_writer :env, :lambda_support, :path_prefix, :template_extensions, :template_namespace, :haml_options, :slim_options
|
41
|
+
attr_writer :env, :lambda_support, :path_prefix, :template_extensions, :template_namespace, :haml_options, :slim_options,
|
42
|
+
:slimstache_extensions, :hamstache_extensions
|
42
43
|
|
43
44
|
def configure
|
44
45
|
yield self
|
@@ -73,6 +74,8 @@ module HoganAssets
|
|
73
74
|
@template_namespace = yml['template_namespace'] if yml.has_key? 'template_namespace'
|
74
75
|
@haml_options = yml['haml_options'] if yml.has_key? 'haml_options'
|
75
76
|
@slim_options = yml['slim_options'] if yml.has_key? 'slim_options'
|
77
|
+
@slimstache_extensions = yml['slimstache_extensions'] if yml.has_key? 'slimstache_extensions'
|
78
|
+
@hamstache_extensions = yml['hamstache_extensions'] if yml.has_key? 'hamstache_extensions'
|
76
79
|
symbolize(@haml_options) if @haml_options
|
77
80
|
symbolize(@slim_options) if @slim_options
|
78
81
|
end
|
@@ -97,6 +100,14 @@ module HoganAssets
|
|
97
100
|
@template_extensions ||= "mustache#{' hamstache' if haml_available?}#{' slimstache' if slim_available?}".split
|
98
101
|
end
|
99
102
|
|
103
|
+
def hamstache_extensions
|
104
|
+
@hamstache_extensions ||= ['hamstache']
|
105
|
+
end
|
106
|
+
|
107
|
+
def slimstache_extensions
|
108
|
+
@slimstache_extensions ||= ['slimstache']
|
109
|
+
end
|
110
|
+
|
100
111
|
def yml
|
101
112
|
begin
|
102
113
|
@yml ||= (YAML.load(IO.read yml_path)[env] rescue nil) || {}
|
data/lib/hogan_assets/tilt.rb
CHANGED
@@ -15,10 +15,10 @@ module HoganAssets
|
|
15
15
|
|
16
16
|
text = if template_path.is_hamstache?
|
17
17
|
raise "Unable to compile #{template_path.full_path} because haml is not available. Did you add the haml gem?" unless HoganAssets::Config.haml_available?
|
18
|
-
Haml::Engine.new(data, HoganAssets::Config.haml_options.merge(@options)).render
|
18
|
+
Haml::Engine.new(data, HoganAssets::Config.haml_options.merge(@options)).render(scope, locals)
|
19
19
|
elsif template_path.is_slimstache?
|
20
20
|
raise "Unable to compile #{template_path.full_path} because slim is not available. Did you add the slim gem?" unless HoganAssets::Config.slim_available?
|
21
|
-
Slim::Template.new(HoganAssets::Config.slim_options.merge(@options)) { data }.render
|
21
|
+
Slim::Template.new(HoganAssets::Config.slim_options.merge(@options)) { data }.render(scope, locals)
|
22
22
|
else
|
23
23
|
data
|
24
24
|
end
|
@@ -59,11 +59,13 @@ module HoganAssets
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def is_hamstache?
|
62
|
-
full_path.to_s
|
62
|
+
file_path = full_path.to_s
|
63
|
+
HoganAssets::Config.hamstache_extensions.any? { |ext| file_path.to_s.end_with? ext }
|
63
64
|
end
|
64
65
|
|
65
66
|
def is_slimstache?
|
66
|
-
full_path.to_s
|
67
|
+
file_path = full_path.to_s
|
68
|
+
HoganAssets::Config.slimstache_extensions.any? { |ext| file_path.to_s.end_with? ext }
|
67
69
|
end
|
68
70
|
|
69
71
|
def name
|
data/lib/hogan_assets/version.rb
CHANGED
@@ -5,8 +5,7 @@ module HoganAssets
|
|
5
5
|
include TestSupport
|
6
6
|
|
7
7
|
def teardown
|
8
|
-
HoganAssets::Config.
|
9
|
-
HoganAssets::Config.path_prefix = 'templates'
|
8
|
+
HoganAssets::Config.reset!
|
10
9
|
end
|
11
10
|
|
12
11
|
def test_mime_type
|
@@ -83,8 +82,9 @@ module HoganAssets
|
|
83
82
|
def test_haml_options
|
84
83
|
HoganAssets::Config.configure do |config|
|
85
84
|
config.haml_options[:ugly] = true
|
85
|
+
config.hamstache_extensions = ['hamlhbs']
|
86
86
|
end
|
87
|
-
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.
|
87
|
+
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.hamlhbs'
|
88
88
|
template = HoganAssets::Tilt.new(scope.s_path) { "%p\n This is {{mustache}}" }
|
89
89
|
assert_match /<p>/, template.render(scope, {})
|
90
90
|
end
|
@@ -92,8 +92,9 @@ module HoganAssets
|
|
92
92
|
def test_slim_options
|
93
93
|
HoganAssets::Config.configure do |config|
|
94
94
|
config.slim_options[:pretty] = false
|
95
|
+
config.slimstache_extensions = ['slimhbs']
|
95
96
|
end
|
96
|
-
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.
|
97
|
+
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.slimhbs'
|
97
98
|
template = HoganAssets::Tilt.new(scope.s_path) { "p This is {{mustache}}" }
|
98
99
|
assert_match /<p>/, template.render(scope, {})
|
99
100
|
end
|
data/test/test_helper.rb
CHANGED
@@ -2,6 +2,15 @@ require 'hogan_assets'
|
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
4
|
|
5
|
+
module HoganAssets::Config
|
6
|
+
def reset!
|
7
|
+
%w(env lambda_support path_prefix template_extensions template_namespace haml_options slim_options slimstache_extensions hamstache_extensions).each do |option|
|
8
|
+
send "#{option}=", nil
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
5
14
|
module TestSupport
|
6
15
|
# Try to act like sprockets.
|
7
16
|
def make_scope(root, file)
|
metadata
CHANGED
@@ -1,18 +1,24 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hogan_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0
|
5
4
|
prerelease:
|
5
|
+
version: 1.5.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Les Hill
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: execjs
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.2.9
|
16
22
|
requirement: !ruby/object:Gem::Requirement
|
17
23
|
none: false
|
18
24
|
requirements:
|
@@ -21,14 +27,14 @@ dependencies:
|
|
21
27
|
version: 1.2.9
|
22
28
|
type: :runtime
|
23
29
|
prerelease: false
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: tilt
|
24
32
|
version_requirements: !ruby/object:Gem::Requirement
|
25
33
|
none: false
|
26
34
|
requirements:
|
27
35
|
- - ! '>='
|
28
36
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: tilt
|
37
|
+
version: 1.3.3
|
32
38
|
requirement: !ruby/object:Gem::Requirement
|
33
39
|
none: false
|
34
40
|
requirements:
|
@@ -37,14 +43,14 @@ dependencies:
|
|
37
43
|
version: 1.3.3
|
38
44
|
type: :runtime
|
39
45
|
prerelease: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: sprockets
|
40
48
|
version_requirements: !ruby/object:Gem::Requirement
|
41
49
|
none: false
|
42
50
|
requirements:
|
43
51
|
- - ! '>='
|
44
52
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: sprockets
|
53
|
+
version: 2.0.3
|
48
54
|
requirement: !ruby/object:Gem::Requirement
|
49
55
|
none: false
|
50
56
|
requirements:
|
@@ -53,14 +59,14 @@ dependencies:
|
|
53
59
|
version: 2.0.3
|
54
60
|
type: :runtime
|
55
61
|
prerelease: false
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: debugger
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
65
|
none: false
|
58
66
|
requirements:
|
59
67
|
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: debugger
|
69
|
+
version: '0'
|
64
70
|
requirement: !ruby/object:Gem::Requirement
|
65
71
|
none: false
|
66
72
|
requirements:
|
@@ -69,14 +75,14 @@ dependencies:
|
|
69
75
|
version: '0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: haml
|
72
80
|
version_requirements: !ruby/object:Gem::Requirement
|
73
81
|
none: false
|
74
82
|
requirements:
|
75
83
|
- - ! '>='
|
76
84
|
- !ruby/object:Gem::Version
|
77
85
|
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: haml
|
80
86
|
requirement: !ruby/object:Gem::Requirement
|
81
87
|
none: false
|
82
88
|
requirements:
|
@@ -85,14 +91,14 @@ dependencies:
|
|
85
91
|
version: '0'
|
86
92
|
type: :development
|
87
93
|
prerelease: false
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: slim
|
88
96
|
version_requirements: !ruby/object:Gem::Requirement
|
89
97
|
none: false
|
90
98
|
requirements:
|
91
99
|
- - ! '>='
|
92
100
|
- !ruby/object:Gem::Version
|
93
101
|
version: '0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: slim
|
96
102
|
requirement: !ruby/object:Gem::Requirement
|
97
103
|
none: false
|
98
104
|
requirements:
|
@@ -101,12 +107,6 @@ dependencies:
|
|
101
107
|
version: '0'
|
102
108
|
type: :development
|
103
109
|
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
110
|
description: Use compiled hogan.js (mustache) JavaScript templates with sprockets
|
111
111
|
and the Rails asset pipeline.
|
112
112
|
email:
|
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
155
|
version: '0'
|
156
156
|
requirements: []
|
157
157
|
rubyforge_project:
|
158
|
-
rubygems_version: 1.8.
|
158
|
+
rubygems_version: 1.8.25
|
159
159
|
signing_key:
|
160
160
|
specification_version: 3
|
161
161
|
summary: Use compiled hogan.js (mustache) JavaScript templates with sprockets and
|