faithfulgeek-haml_splash 0.1.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/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +7 -0
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/haml_splash.gemspec +52 -0
- data/lib/core_ext/hash.rb +13 -0
- data/lib/haml/splash.rb +3 -0
- data/lib/haml_splash.rb +10 -0
- data/lib/haml_splash/haml_hacks.rb +75 -0
- data/lib/haml_splash/liquid_hacks.rb +15 -0
- data/test/haml_liquid_if_tags_test.rb +195 -0
- data/test/haml_splash_test.rb +56 -0
- data/test/test_helper.rb +14 -0
- metadata +70 -0
data/.document
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Joe Fiorini
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "haml_splash"
|
8
|
+
gem.summary = %Q{TODO}
|
9
|
+
gem.email = "joe@faithfulgeek.org"
|
10
|
+
gem.homepage = "http://github.com/faithfulgeek/haml_splash"
|
11
|
+
gem.authors = ["Joe Fiorini"]
|
12
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
13
|
+
end
|
14
|
+
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'rake/testtask'
|
20
|
+
Rake::TestTask.new(:test) do |test|
|
21
|
+
test.libs << 'lib' << 'test'
|
22
|
+
test.pattern = 'test/**/*_test.rb'
|
23
|
+
test.verbose = true
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
require 'rcov/rcovtask'
|
28
|
+
Rcov::RcovTask.new do |test|
|
29
|
+
test.libs << 'test'
|
30
|
+
test.pattern = 'test/**/*_test.rb'
|
31
|
+
test.verbose = true
|
32
|
+
end
|
33
|
+
rescue LoadError
|
34
|
+
task :rcov do
|
35
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
task :default => :test
|
41
|
+
|
42
|
+
require 'rake/rdoctask'
|
43
|
+
Rake::RDocTask.new do |rdoc|
|
44
|
+
if File.exist?('VERSION.yml')
|
45
|
+
config = YAML.load(File.read('VERSION.yml'))
|
46
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
47
|
+
else
|
48
|
+
version = ""
|
49
|
+
end
|
50
|
+
|
51
|
+
rdoc.rdoc_dir = 'rdoc'
|
52
|
+
rdoc.title = "haml_splash #{version}"
|
53
|
+
rdoc.rdoc_files.include('README*')
|
54
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
55
|
+
end
|
56
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/haml_splash.gemspec
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{haml_splash}
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Joe Fiorini"]
|
9
|
+
s.date = %q{2009-06-22}
|
10
|
+
s.email = %q{joe@faithfulgeek.org}
|
11
|
+
s.extra_rdoc_files = [
|
12
|
+
"LICENSE",
|
13
|
+
"README.rdoc"
|
14
|
+
]
|
15
|
+
s.files = [
|
16
|
+
".document",
|
17
|
+
".gitignore",
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc",
|
20
|
+
"Rakefile",
|
21
|
+
"VERSION",
|
22
|
+
"haml_splash.gemspec",
|
23
|
+
"lib/core_ext/hash.rb",
|
24
|
+
"lib/haml/splash.rb",
|
25
|
+
"lib/haml_splash.rb",
|
26
|
+
"lib/haml_splash/haml_hacks.rb",
|
27
|
+
"lib/haml_splash/liquid_hacks.rb",
|
28
|
+
"test/haml_liquid_if_tags_test.rb",
|
29
|
+
"test/haml_splash_test.rb",
|
30
|
+
"test/test_helper.rb"
|
31
|
+
]
|
32
|
+
s.homepage = %q{http://github.com/faithfulgeek/haml_splash}
|
33
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
34
|
+
s.require_paths = ["lib"]
|
35
|
+
s.rubygems_version = %q{1.3.3}
|
36
|
+
s.summary = %q{TODO}
|
37
|
+
s.test_files = [
|
38
|
+
"test/haml_liquid_if_tags_test.rb",
|
39
|
+
"test/haml_splash_test.rb",
|
40
|
+
"test/test_helper.rb"
|
41
|
+
]
|
42
|
+
|
43
|
+
if s.respond_to? :specification_version then
|
44
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
45
|
+
s.specification_version = 3
|
46
|
+
|
47
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
48
|
+
else
|
49
|
+
end
|
50
|
+
else
|
51
|
+
end
|
52
|
+
end
|
data/lib/haml/splash.rb
ADDED
data/lib/haml_splash.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
module HamlSplash
|
2
|
+
def self.register!
|
3
|
+
HamlSplash::HamlHacks.register!
|
4
|
+
HamlSplash::LiquidHacks.register!
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
require File.dirname(__FILE__) + '/core_ext/hash'
|
9
|
+
require File.dirname(__FILE__) + '/haml_splash/haml_hacks'
|
10
|
+
require File.dirname(__FILE__) + '/haml_splash/liquid_hacks'
|
@@ -0,0 +1,75 @@
|
|
1
|
+
class HamlSplash::HamlHacks
|
2
|
+
|
3
|
+
def self.register!
|
4
|
+
hacker = self.new
|
5
|
+
hacker.override_push_script!
|
6
|
+
hacker.override_push_silent!
|
7
|
+
hacker.create_render_liquid_method!
|
8
|
+
end
|
9
|
+
|
10
|
+
def override_push_script!
|
11
|
+
Haml::Precompiler.module_eval do
|
12
|
+
def push_script(text, preserve_script, in_tag = false,
|
13
|
+
preserve_tag = false, escape_html = false,
|
14
|
+
nuke_inner_whitespace = false)
|
15
|
+
push_merged_text '' unless in_tag
|
16
|
+
|
17
|
+
flush_merged_text
|
18
|
+
newline_now
|
19
|
+
if block_opened?
|
20
|
+
push_and_tabulate([:loud, out])
|
21
|
+
else
|
22
|
+
@precompiled << "_hamlout.push_script('{{#{text.lstrip}}}', [])"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def override_push_silent!
|
29
|
+
Haml::Precompiler.module_eval do
|
30
|
+
def push_silent(text, can_suppress = false)
|
31
|
+
flush_merged_text
|
32
|
+
@precompiled << "{% #{text.lstrip} %}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def create_render_liquid_method!
|
38
|
+
Haml::Engine.class_eval do
|
39
|
+
def render_liquid(locals={}, &block)
|
40
|
+
scope = Object.new
|
41
|
+
buffer = Haml::Buffer.new(scope, options_for_buffer)
|
42
|
+
|
43
|
+
if scope.is_a?(Binding) || scope.is_a?(Proc)
|
44
|
+
scope_object = eval("self", scope)
|
45
|
+
scope = scope_object.instance_eval{binding} if block_given?
|
46
|
+
else
|
47
|
+
scope_object = scope
|
48
|
+
scope = scope_object.instance_eval{binding}
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
set_locals(locals.merge(:_hamlout => buffer, :_erbout => buffer.buffer), scope, scope_object)
|
53
|
+
scope_object.instance_eval do
|
54
|
+
extend Haml::Helpers
|
55
|
+
@haml_buffer = buffer
|
56
|
+
end
|
57
|
+
|
58
|
+
template = Liquid::Template.parse(@precompiled)
|
59
|
+
output = template.render(locals.stringify_keys)
|
60
|
+
eval(output, scope)
|
61
|
+
|
62
|
+
# Get rid of the current buffer
|
63
|
+
scope_object.instance_eval do
|
64
|
+
@haml_buffer = buffer.upper
|
65
|
+
end
|
66
|
+
|
67
|
+
buffer.buffer
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
@@ -0,0 +1,195 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class HamlLiquidTagsTest < Test::Unit::TestCase
|
4
|
+
context 'If we hack Haml' do
|
5
|
+
setup do
|
6
|
+
HamlSplash.register!
|
7
|
+
end
|
8
|
+
|
9
|
+
context "when evaluating Liquid {% if ... %} tags" do
|
10
|
+
|
11
|
+
should 'not display anything for false' do
|
12
|
+
t = haml("- if false\n this text should not go in output")
|
13
|
+
assert t == ""
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'display text for true' do
|
17
|
+
t = haml("- if true\n this text should go in output")
|
18
|
+
assert t == "this text should go in output\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
should 'display text for true with two different if statements' do
|
22
|
+
t = haml("- if false\n you suck\n- if true\n you rock\n?")
|
23
|
+
assert t == "you rock\n?\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when evaluating Liquid {% if ... %} ... {% else %} ... tags" do
|
28
|
+
|
29
|
+
should 'branch to else when if clause is false' do
|
30
|
+
t = haml("- if false\n NO\n- else\n YES")
|
31
|
+
assert t == "YES\n"
|
32
|
+
end
|
33
|
+
|
34
|
+
should 'use if clause when else clause is false' do
|
35
|
+
t = haml("- if true\n YES\n- else\n NO")
|
36
|
+
assert t == "YES\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
should 'use if clause with non-null value when else clause is false' do
|
40
|
+
t = haml("- if \"foo\"\n YES\n- else\n NO")
|
41
|
+
assert t == "YES\n"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when evaluating with a boolean variable' do
|
47
|
+
|
48
|
+
should 'use if clause with true local variable' do
|
49
|
+
t = haml("- if var\n YES", :var => true)
|
50
|
+
assert t == "YES\n"
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
should 'evaluate with a boolean "or"' do
|
56
|
+
t = "- if a or b\n YES"
|
57
|
+
assert haml(t, :a => true, :b => true) == "YES\n"
|
58
|
+
assert haml(t, :a => true, :b => false) == "YES\n"
|
59
|
+
assert haml(t, :a => false, :b => true) == "YES\n"
|
60
|
+
assert haml(t, :a => false, :b => false) == ""
|
61
|
+
|
62
|
+
t = "- if a or b or c\n YES"
|
63
|
+
assert haml(t, :a => false, :b => false, :c => true) == "YES\n"
|
64
|
+
assert haml(t, :a => false, :b => false, :c => false) == ""
|
65
|
+
end
|
66
|
+
|
67
|
+
should 'evaluate with a boolean "or" with operators' do
|
68
|
+
assert haml("- if a == true or b == true\n YES", :a => true, :b => true) == "YES\n"
|
69
|
+
assert haml("- if a == true or b == false\n YES", :a => true, :b => true) == "YES\n"
|
70
|
+
assert haml("- if a == false or b == false\n YES", :a => true, :b => true) == ""
|
71
|
+
end
|
72
|
+
|
73
|
+
should 'evaluate with a boolean "and"' do
|
74
|
+
assert haml("- if true and true\n YES") == "YES\n"
|
75
|
+
assert haml("- if false and true\n YES") == ""
|
76
|
+
assert haml("- if false and false\n YES") == ""
|
77
|
+
end
|
78
|
+
|
79
|
+
should 'evaluate false with an empty hash' do
|
80
|
+
assert haml("- if foo.bar\n NO", :foo => {}) == ""
|
81
|
+
end
|
82
|
+
|
83
|
+
should 'evaluate if statements from a variable' do
|
84
|
+
assert haml("- if var\n NO", :var => false) == ''
|
85
|
+
assert haml("- if var\n NO", :var => nil) == ''
|
86
|
+
assert haml("- if foo.bar\n NO", :foo => {:bar => false}) == ''
|
87
|
+
assert haml("- if foo.bar\n NO", :foo => {}) == ''
|
88
|
+
assert haml("- if foo.bar\n NO", :foo => nil) == ''
|
89
|
+
assert haml("- if foo.bar\n NO", :foo => true) == ''
|
90
|
+
|
91
|
+
assert haml("- if var\n YES", :var => "text") == "YES\n"
|
92
|
+
assert haml("- if var\n YES", :var => true) == "YES\n"
|
93
|
+
assert haml("- if var\n YES", :var => 1) == "YES\n"
|
94
|
+
assert haml("- if var\n YES", :var => {}) == "YES\n"
|
95
|
+
assert haml("- if var\n YES", :var => []) == "YES\n"
|
96
|
+
assert haml("- if 'foo'\n YES") == "YES\n"
|
97
|
+
assert haml("- if foo.bar\n YES", :foo => {:bar => true}) == "YES\n"
|
98
|
+
assert haml("- if foo.bar\n YES", :foo => {:bar => "text"}) == "YES\n"
|
99
|
+
assert haml("- if foo.bar\n YES", :foo => {:bar => 1 }) == "YES\n"
|
100
|
+
assert haml("- if foo.bar\n YES", :foo => {:bar => {} }) == "YES\n"
|
101
|
+
assert haml("- if foo.bar\n YES", :foo => {:bar => [] }) == "YES\n"
|
102
|
+
|
103
|
+
assert haml("- if var\n NO\n- else\n YES", :var => false) == "YES\n"
|
104
|
+
assert haml("- if var\n NO\n- else\n YES", :var => nil) == "YES\n"
|
105
|
+
assert haml("- if var\n YES\n- else\n NO", :var => true) == "YES\n"
|
106
|
+
assert haml("- if 'foo'\n YES\n- else\n NO", :var => "text") == "YES\n"
|
107
|
+
|
108
|
+
assert haml("- if foo.bar\n NO\n- else\n YES",
|
109
|
+
:foo => {:bar => false}) == "YES\n"
|
110
|
+
assert haml("- if foo.bar\n YES\n- else\n NO",
|
111
|
+
:foo => {:bar => true}) == "YES\n"
|
112
|
+
assert haml("- if foo.bar\n YES\n- else\n NO",
|
113
|
+
:foo => {:bar => "text"}) == "YES\n"
|
114
|
+
assert haml("- if foo.bar\n NO\n- else\n YES",
|
115
|
+
:foo => {:notbar => true}) == "YES\n"
|
116
|
+
assert haml("- if foo.bar\n NO\n- else\n YES",
|
117
|
+
:foo => {}) == "YES\n"
|
118
|
+
assert haml("- if foo.bar\n NO\n- else\n YES",
|
119
|
+
:notfoo => {:bar => true}) == "YES\n"
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
should 'evaluate nested if statements' do
|
124
|
+
assert haml("- if false\n - if false\n NO") == ""
|
125
|
+
assert haml("- if false\n - if true\n NO") == ""
|
126
|
+
assert haml("- if true\n - if false\n NO") == ""
|
127
|
+
assert haml(<<-EHAML) == "YES\n"
|
128
|
+
- if true
|
129
|
+
- if true
|
130
|
+
YES
|
131
|
+
EHAML
|
132
|
+
assert haml(<<-EHAML) =="YES\n"
|
133
|
+
- if true
|
134
|
+
- if true
|
135
|
+
YES
|
136
|
+
- else
|
137
|
+
NO
|
138
|
+
- else
|
139
|
+
NO
|
140
|
+
EHAML
|
141
|
+
assert haml(<<-EHAML) == "YES\n"
|
142
|
+
- if false
|
143
|
+
- if true
|
144
|
+
NO
|
145
|
+
- else
|
146
|
+
NONO
|
147
|
+
- else
|
148
|
+
YES
|
149
|
+
EHAML
|
150
|
+
assert haml(<<-EHAML) == "YES\n"
|
151
|
+
- if false
|
152
|
+
- if true
|
153
|
+
NO
|
154
|
+
- else
|
155
|
+
NONO
|
156
|
+
- else
|
157
|
+
YES
|
158
|
+
EHAML
|
159
|
+
end
|
160
|
+
|
161
|
+
should 'evaluate comparisons on null' do
|
162
|
+
assert haml("- if null < 10\n NO") == ""
|
163
|
+
assert haml("- if null <= 10\n NO") == ""
|
164
|
+
assert haml("- if null >= 10\n NO") == ""
|
165
|
+
assert haml("- if null > 10\n NO") == ""
|
166
|
+
|
167
|
+
assert haml("- if 10 < null\n NO") == ""
|
168
|
+
assert haml("- if 10 <= null\n NO") == ""
|
169
|
+
assert haml("- if 10 >= null\n NO") == ""
|
170
|
+
assert haml("- if 10 > null\n NO") == ""
|
171
|
+
end
|
172
|
+
|
173
|
+
should 'evaluate Liquid elseif' do
|
174
|
+
assert haml("- if 0 == 0\n 0\n- elsif 1 == 1\n 1\n- else\n 2") == "0\n"
|
175
|
+
assert haml("- if 0 != 0\n 0\n- elsif 1 == 1\n 1\n- else\n 2") == "1\n"
|
176
|
+
assert haml("- if 0 != 0\n 0\n- elsif 1 != 1\n 1\n- else\n 2") == "2\n"
|
177
|
+
assert haml("- if false\n if\n- elsif true\n elsif") == "elsif\n"
|
178
|
+
end
|
179
|
+
|
180
|
+
should 'raise syntax error with no variable' do
|
181
|
+
assert_raise(Liquid::SyntaxError) { haml("- if jerry == 1") }
|
182
|
+
end
|
183
|
+
|
184
|
+
should 'raise syntax error with no expression' do
|
185
|
+
assert_raise(Liquid::SyntaxError) { haml("- if") }
|
186
|
+
end
|
187
|
+
|
188
|
+
should 'evaluate with custom conditions' do
|
189
|
+
Liquid::Condition.operators['contains'] = :[]
|
190
|
+
assert haml("- if 'bob' contains 'o'\n YES") == "YES\n"
|
191
|
+
assert haml("- if 'bob' contains 'f'\n NO") == ""
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class HamlTestsRenderWithLiquid < Test::Unit::TestCase
|
4
|
+
context 'If we hack Haml' do
|
5
|
+
setup do
|
6
|
+
HamlSplash.register!
|
7
|
+
end
|
8
|
+
|
9
|
+
context 'render_liquid' do
|
10
|
+
should 'render Hello World with liquid' do
|
11
|
+
assert haml("= \"Hello World\"") == "Hello World\n"
|
12
|
+
end
|
13
|
+
|
14
|
+
should 'render Hello World with liquid filter' do
|
15
|
+
assert haml("= \"hello world\" | upcase") == "HELLO WORLD\n"
|
16
|
+
end
|
17
|
+
|
18
|
+
should 'render with variable' do
|
19
|
+
t = haml("= name", :name => "joe")
|
20
|
+
assert t == "joe\n"
|
21
|
+
end
|
22
|
+
|
23
|
+
should 'not evaluate Ruby' do
|
24
|
+
assert_raises(Liquid::SyntaxError) do
|
25
|
+
haml("- [1,2,3,4,5].each do |i|\n = i")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
should 'still evaluate html' do
|
30
|
+
assert haml("%h1 Hello World") == "<h1>Hello World</h1>\n"
|
31
|
+
end
|
32
|
+
|
33
|
+
should 'evaluate script with html' do
|
34
|
+
assert haml("%h1= \"Hello World\"") == "<h1>Hello World\n</h1>\n"
|
35
|
+
end
|
36
|
+
|
37
|
+
should 'evaluate script with variable' do
|
38
|
+
t = haml("%h1= name", :name => 'joe')
|
39
|
+
assert t == "<h1>joe\n</h1>\n"
|
40
|
+
end
|
41
|
+
|
42
|
+
should 'evaluate script with html and filter' do
|
43
|
+
t = haml("%h1= name | capitalize", :name => 'joe')
|
44
|
+
assert t == "<h1>Joe\n</h1>\n"
|
45
|
+
end
|
46
|
+
|
47
|
+
should 'evaluate liquid {% for . in ... %} tag' do
|
48
|
+
assert haml("- for i in array\n = i", :array => [1,2,3,4,5]) ==
|
49
|
+
"1\n2\n3\n4\n5\n"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'shoulda'
|
4
|
+
|
5
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
6
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
7
|
+
require 'haml/splash'
|
8
|
+
|
9
|
+
class Test::Unit::TestCase
|
10
|
+
def haml(t, locals={})
|
11
|
+
Haml::Engine.new(t).render_liquid(locals)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: faithfulgeek-haml_splash
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joe Fiorini
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-06-22 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: joe@faithfulgeek.org
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- LICENSE
|
24
|
+
- README.rdoc
|
25
|
+
files:
|
26
|
+
- .document
|
27
|
+
- .gitignore
|
28
|
+
- LICENSE
|
29
|
+
- README.rdoc
|
30
|
+
- Rakefile
|
31
|
+
- VERSION
|
32
|
+
- haml_splash.gemspec
|
33
|
+
- lib/core_ext/hash.rb
|
34
|
+
- lib/haml/splash.rb
|
35
|
+
- lib/haml_splash.rb
|
36
|
+
- lib/haml_splash/haml_hacks.rb
|
37
|
+
- lib/haml_splash/liquid_hacks.rb
|
38
|
+
- test/haml_liquid_if_tags_test.rb
|
39
|
+
- test/haml_splash_test.rb
|
40
|
+
- test/test_helper.rb
|
41
|
+
has_rdoc: false
|
42
|
+
homepage: http://github.com/faithfulgeek/haml_splash
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options:
|
45
|
+
- --charset=UTF-8
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: "0"
|
53
|
+
version:
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
requirements: []
|
61
|
+
|
62
|
+
rubyforge_project:
|
63
|
+
rubygems_version: 1.2.0
|
64
|
+
signing_key:
|
65
|
+
specification_version: 3
|
66
|
+
summary: TODO
|
67
|
+
test_files:
|
68
|
+
- test/haml_liquid_if_tags_test.rb
|
69
|
+
- test/haml_splash_test.rb
|
70
|
+
- test/test_helper.rb
|