hamlet 0.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/.gitignore +1 -0
- data/Gemfile +25 -0
- data/LICENSE +21 -0
- data/README.md +52 -0
- data/Rakefile +57 -0
- data/bin/hamletrb +7 -0
- data/extra/slim-mode.el +409 -0
- data/extra/test.hamlet +50 -0
- data/hamlet.gemspec +36 -0
- data/lib/hamlet.rb +7 -0
- data/lib/hamlet/engine.rb +3 -0
- data/lib/hamlet/parser.rb +147 -0
- data/lib/hamlet/template.rb +19 -0
- data/test/rails/Rakefile +7 -0
- data/test/rails/app/controllers/application_controller.rb +3 -0
- data/test/rails/app/controllers/parents_controller.rb +84 -0
- data/test/rails/app/controllers/slim_controller.rb +32 -0
- data/test/rails/app/helpers/application_helper.rb +2 -0
- data/test/rails/app/models/child.rb +3 -0
- data/test/rails/app/models/parent.rb +4 -0
- data/test/rails/app/views/layouts/application.html.slim +10 -0
- data/test/rails/app/views/parents/_form.html.slim +7 -0
- data/test/rails/app/views/parents/edit.html.slim +1 -0
- data/test/rails/app/views/parents/new.html.slim +1 -0
- data/test/rails/app/views/parents/show.html.slim +5 -0
- data/test/rails/app/views/slim/_partial.html.slim +1 -0
- data/test/rails/app/views/slim/content_for.html.slim +7 -0
- data/test/rails/app/views/slim/erb.html.erb +1 -0
- data/test/rails/app/views/slim/integers.html.slim +1 -0
- data/test/rails/app/views/slim/nil.html.slim +1 -0
- data/test/rails/app/views/slim/no_layout.html.slim +1 -0
- data/test/rails/app/views/slim/normal.html.slim +1 -0
- data/test/rails/app/views/slim/partial.html.slim +2 -0
- data/test/rails/app/views/slim/variables.html.slim +1 -0
- data/test/rails/config.ru +4 -0
- data/test/rails/config/application.rb +45 -0
- data/test/rails/config/boot.rb +10 -0
- data/test/rails/config/database.yml +4 -0
- data/test/rails/config/environment.rb +5 -0
- data/test/rails/config/environments/development.rb +26 -0
- data/test/rails/config/environments/production.rb +49 -0
- data/test/rails/config/environments/test.rb +35 -0
- data/test/rails/config/initializers/backtrace_silencers.rb +7 -0
- data/test/rails/config/initializers/inflections.rb +10 -0
- data/test/rails/config/initializers/mime_types.rb +5 -0
- data/test/rails/config/initializers/secret_token.rb +7 -0
- data/test/rails/config/initializers/session_store.rb +8 -0
- data/test/rails/config/locales/en.yml +5 -0
- data/test/rails/config/routes.rb +60 -0
- data/test/rails/db/migrate/20101220223037_parents_and_children.rb +17 -0
- data/test/rails/script/rails +6 -0
- data/test/rails/test/helper.rb +10 -0
- data/test/rails/test/test_slim.rb +77 -0
- data/test/slim/helper.rb +200 -0
- data/test/slim/test_chain_manipulation.rb +42 -0
- data/test/slim/test_code_blocks.rb +68 -0
- data/test/slim/test_code_escaping.rb +53 -0
- data/test/slim/test_code_evaluation.rb +281 -0
- data/test/slim/test_code_output.rb +159 -0
- data/test/slim/test_code_structure.rb +95 -0
- data/test/slim/test_embedded_engines.rb +141 -0
- data/test/slim/test_html_escaping.rb +40 -0
- data/test/slim/test_html_structure.rb +438 -0
- data/test/slim/test_parser_errors.rb +107 -0
- data/test/slim/test_pretty.rb +75 -0
- data/test/slim/test_ruby_errors.rb +187 -0
- data/test/slim/test_sections.rb +90 -0
- data/test/slim/test_slim_template.rb +118 -0
- data/test/slim/test_text_interpolation.rb +78 -0
- data/test/slim/test_wrapper.rb +39 -0
- metadata +230 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class ::MockError < NameError
|
4
|
+
end
|
5
|
+
|
6
|
+
class TestSlimTemplate < TestSlim
|
7
|
+
class Scope
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_registered_extension
|
11
|
+
assert_equal Hamlet::Template, Tilt['test.hamlet']
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_preparing_and_evaluating
|
15
|
+
template = Hamlet::Template.new { |t| "<p>Hello World!\n" }
|
16
|
+
assert_equal "<p>Hello World!</p>", template.render
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_passing_locals
|
20
|
+
template = Hamlet::Template.new { "<p>= 'Hey ' + name + '!'\n" }
|
21
|
+
assert_equal "<p>Hey Joe!</p>", template.render(Object.new, :name => 'Joe')
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_evaluating_in_an_object_scope
|
25
|
+
template = Hamlet::Template.new { "<p = 'Hey ' + @name + '!'\n" }
|
26
|
+
scope = Object.new
|
27
|
+
scope.instance_variable_set :@name, 'Joe'
|
28
|
+
assert_equal "<p>Hey Joe!</p>", template.render(scope)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_passing_a_block_for_yield
|
32
|
+
template = Hamlet::Template.new { "<p = 'Hey ' + yield + '!'\n" }
|
33
|
+
assert_equal "<p>Hey Joe!</p>", template.render { 'Joe' }
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_backtrace_file_and_line_reporting_without_locals
|
37
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
38
|
+
fail unless data[0] == ?h
|
39
|
+
template = Hamlet::Template.new('test.slim', 10) { data }
|
40
|
+
begin
|
41
|
+
template.render
|
42
|
+
fail 'should have raised an exception'
|
43
|
+
rescue => ex
|
44
|
+
assert_kind_of NameError, ex
|
45
|
+
assert_backtrace(ex, 'test.slim:12')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_backtrace_file_and_line_reporting_with_locals
|
50
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
51
|
+
fail unless data[0] == ?h
|
52
|
+
template = Hamlet::Template.new('test.slim') { data }
|
53
|
+
begin
|
54
|
+
res = template.render(Object.new, :name => 'Joe', :foo => 'bar')
|
55
|
+
rescue => ex
|
56
|
+
assert_kind_of MockError, ex
|
57
|
+
assert_backtrace(ex, 'test.slim:4')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_compiling_template_source_to_a_method
|
62
|
+
template = Hamlet::Template.new { |t| "Hello World!" }
|
63
|
+
template.render(Scope.new)
|
64
|
+
method = template.send(:compiled_method, [])
|
65
|
+
assert_kind_of UnboundMethod, method
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_passing_locals
|
69
|
+
template = Hamlet::Template.new { "<p = 'Hey ' + name + '!'\n" }
|
70
|
+
assert_equal "<p>Hey Joe!</p>", template.render(Scope.new, :name => 'Joe')
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_evaluating_in_an_object_scope
|
74
|
+
template = Hamlet::Template.new { "<p = 'Hey ' + @name + '!'\n" }
|
75
|
+
scope = Scope.new
|
76
|
+
scope.instance_variable_set :@name, 'Joe'
|
77
|
+
assert_equal "<p>Hey Joe!</p>", template.render(scope)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_passing_a_block_for_yield
|
81
|
+
template = Hamlet::Template.new { "<p = 'Hey ' + yield + '!'\n" }
|
82
|
+
assert_equal "<p>Hey Joe!</p>", template.render(Scope.new) { 'Joe' }
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_backtrace_file_and_line_reporting_without_locals
|
86
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
87
|
+
fail unless data[0] == ?h
|
88
|
+
template = Hamlet::Template.new('test.slim', 10) { data }
|
89
|
+
begin
|
90
|
+
template.render(Scope.new)
|
91
|
+
fail 'should have raised an exception'
|
92
|
+
rescue => ex
|
93
|
+
assert_kind_of NameError, ex
|
94
|
+
assert_backtrace(ex, 'test.slim:12')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_backtrace_file_and_line_reporting_with_locals
|
99
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
100
|
+
fail unless data[0] == ?h
|
101
|
+
template = Hamlet::Template.new('test.slim') { data }
|
102
|
+
begin
|
103
|
+
res = template.render(Scope.new, :name => 'Joe', :foo => 'bar')
|
104
|
+
rescue => ex
|
105
|
+
assert_kind_of MockError, ex
|
106
|
+
assert_backtrace(ex, 'test.slim:5')
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
__END__
|
112
|
+
html
|
113
|
+
body
|
114
|
+
<h1>= "Hey #{name}"
|
115
|
+
|
116
|
+
= raise MockError
|
117
|
+
|
118
|
+
<p>we never get here
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestSlimTextInterpolation < TestSlim
|
4
|
+
def test_interpolation_in_attribute
|
5
|
+
source = %q{
|
6
|
+
<p id="a#{id_helper}b" = hello_world
|
7
|
+
}
|
8
|
+
|
9
|
+
assert_html '<p id="anoticeb">Hello World from @env</p>', source
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_nested_interpolation_in_attribute
|
13
|
+
source = %q{
|
14
|
+
<p id="#{"abc#{1+1}" + "("}" = hello_world
|
15
|
+
}
|
16
|
+
|
17
|
+
assert_html '<p id="abc2(">Hello World from @env</p>', source
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_interpolation_in_text
|
21
|
+
source = %q{
|
22
|
+
<p
|
23
|
+
> #{hello_world} with "quotes"
|
24
|
+
<p
|
25
|
+
|
26
|
+
>A message from the compiler: #{hello_world}
|
27
|
+
}
|
28
|
+
|
29
|
+
assert_html '<p>Hello World from @env with "quotes"</p><p>A message from the compiler: Hello World from @env</p>', source
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_interpolation_in_tag
|
33
|
+
source = %q{
|
34
|
+
<p #{hello_world}
|
35
|
+
}
|
36
|
+
|
37
|
+
assert_html '<p>Hello World from @env</p>', source
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_escape_interpolation
|
41
|
+
source = %q{
|
42
|
+
<p \\#{hello_world}
|
43
|
+
}
|
44
|
+
|
45
|
+
assert_html '<p>#{hello_world}</p>', source
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_complex_interpolation
|
49
|
+
source = %q{
|
50
|
+
<p Message: #{message('hello', "user #{output_number}")}
|
51
|
+
}
|
52
|
+
|
53
|
+
assert_html '<p>Message: hello user 1337</p>', source
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_interpolation_with_escaping
|
57
|
+
source = %q{
|
58
|
+
> #{evil_method}
|
59
|
+
}
|
60
|
+
|
61
|
+
assert_html '<script>do_something_evil();</script>', source
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_interpolation_without_escaping
|
65
|
+
source = %q{
|
66
|
+
> #{{evil_method}}
|
67
|
+
}
|
68
|
+
|
69
|
+
assert_html '<script>do_something_evil();</script>', source
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_interpolation_with_escaping_and_delimiter
|
73
|
+
source = %q{
|
74
|
+
> #{(evil_method)}
|
75
|
+
}
|
76
|
+
assert_html '<script>do_something_evil();</script>', source
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
|
4
|
+
class TestSlimWrapper < TestSlim
|
5
|
+
def setup
|
6
|
+
Slim::Sections.set_default_options(:dictionary => 'ViewEnv.new')
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
Slim::Sections.set_default_options(:dictionary => 'self')
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_sections
|
14
|
+
source = %q{
|
15
|
+
<p
|
16
|
+
- person
|
17
|
+
<.name = name
|
18
|
+
}
|
19
|
+
assert_html '<p><div class="name">Joe</div><div class="name">Jack</div></p>', source, :sections => true
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_with_array
|
23
|
+
source = %q{
|
24
|
+
<ul
|
25
|
+
- people_with_locations
|
26
|
+
<li = name
|
27
|
+
<li = city
|
28
|
+
}
|
29
|
+
assert_html '<ul><li>Andy</li><li>Atlanta</li><li>Fred</li><li>Melbourne</li><li>Daniel</li><li>Karlsruhe</li></ul>', source, :sections => true
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_method
|
33
|
+
source = %q{
|
34
|
+
<a href=output_number Link
|
35
|
+
}
|
36
|
+
assert_html '<a href="1337">Link</a>', source, :sections => true
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
metadata
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hamlet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Greg Weber
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-10-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: slim
|
16
|
+
requirement: &4263040 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *4263040
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &4261800 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.8.7
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *4261800
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: sass
|
38
|
+
requirement: &4260580 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 3.1.0
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *4260580
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: minitest
|
49
|
+
requirement: &4259280 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *4259280
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: kramdown
|
60
|
+
requirement: &4258240 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *4258240
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: yard
|
71
|
+
requirement: &4257160 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *4257160
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: creole
|
82
|
+
requirement: &4253900 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *4253900
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: builder
|
93
|
+
requirement: &4253060 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *4253060
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: pry
|
104
|
+
requirement: &4252560 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *4252560
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rcov
|
115
|
+
requirement: &4251980 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *4251980
|
124
|
+
description: Hamlet is a template language whose goal is reduce HTML syntax to the
|
125
|
+
essential parts.
|
126
|
+
email:
|
127
|
+
- greg@gregweber.info
|
128
|
+
executables:
|
129
|
+
- hamletrb
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files:
|
132
|
+
- README.md
|
133
|
+
files:
|
134
|
+
- .gitignore
|
135
|
+
- Gemfile
|
136
|
+
- LICENSE
|
137
|
+
- README.md
|
138
|
+
- Rakefile
|
139
|
+
- bin/hamletrb
|
140
|
+
- extra/slim-mode.el
|
141
|
+
- extra/test.hamlet
|
142
|
+
- hamlet.gemspec
|
143
|
+
- lib/hamlet.rb
|
144
|
+
- lib/hamlet/engine.rb
|
145
|
+
- lib/hamlet/parser.rb
|
146
|
+
- lib/hamlet/template.rb
|
147
|
+
- test/rails/Rakefile
|
148
|
+
- test/rails/app/controllers/application_controller.rb
|
149
|
+
- test/rails/app/controllers/parents_controller.rb
|
150
|
+
- test/rails/app/controllers/slim_controller.rb
|
151
|
+
- test/rails/app/helpers/application_helper.rb
|
152
|
+
- test/rails/app/models/child.rb
|
153
|
+
- test/rails/app/models/parent.rb
|
154
|
+
- test/rails/app/views/layouts/application.html.slim
|
155
|
+
- test/rails/app/views/parents/_form.html.slim
|
156
|
+
- test/rails/app/views/parents/edit.html.slim
|
157
|
+
- test/rails/app/views/parents/new.html.slim
|
158
|
+
- test/rails/app/views/parents/show.html.slim
|
159
|
+
- test/rails/app/views/slim/_partial.html.slim
|
160
|
+
- test/rails/app/views/slim/content_for.html.slim
|
161
|
+
- test/rails/app/views/slim/erb.html.erb
|
162
|
+
- test/rails/app/views/slim/integers.html.slim
|
163
|
+
- test/rails/app/views/slim/nil.html.slim
|
164
|
+
- test/rails/app/views/slim/no_layout.html.slim
|
165
|
+
- test/rails/app/views/slim/normal.html.slim
|
166
|
+
- test/rails/app/views/slim/partial.html.slim
|
167
|
+
- test/rails/app/views/slim/variables.html.slim
|
168
|
+
- test/rails/config.ru
|
169
|
+
- test/rails/config/application.rb
|
170
|
+
- test/rails/config/boot.rb
|
171
|
+
- test/rails/config/database.yml
|
172
|
+
- test/rails/config/environment.rb
|
173
|
+
- test/rails/config/environments/development.rb
|
174
|
+
- test/rails/config/environments/production.rb
|
175
|
+
- test/rails/config/environments/test.rb
|
176
|
+
- test/rails/config/initializers/backtrace_silencers.rb
|
177
|
+
- test/rails/config/initializers/inflections.rb
|
178
|
+
- test/rails/config/initializers/mime_types.rb
|
179
|
+
- test/rails/config/initializers/secret_token.rb
|
180
|
+
- test/rails/config/initializers/session_store.rb
|
181
|
+
- test/rails/config/locales/en.yml
|
182
|
+
- test/rails/config/routes.rb
|
183
|
+
- test/rails/db/migrate/20101220223037_parents_and_children.rb
|
184
|
+
- test/rails/script/rails
|
185
|
+
- test/rails/test/helper.rb
|
186
|
+
- test/rails/test/test_slim.rb
|
187
|
+
- test/slim/helper.rb
|
188
|
+
- test/slim/test_chain_manipulation.rb
|
189
|
+
- test/slim/test_code_blocks.rb
|
190
|
+
- test/slim/test_code_escaping.rb
|
191
|
+
- test/slim/test_code_evaluation.rb
|
192
|
+
- test/slim/test_code_output.rb
|
193
|
+
- test/slim/test_code_structure.rb
|
194
|
+
- test/slim/test_embedded_engines.rb
|
195
|
+
- test/slim/test_html_escaping.rb
|
196
|
+
- test/slim/test_html_structure.rb
|
197
|
+
- test/slim/test_parser_errors.rb
|
198
|
+
- test/slim/test_pretty.rb
|
199
|
+
- test/slim/test_ruby_errors.rb
|
200
|
+
- test/slim/test_sections.rb
|
201
|
+
- test/slim/test_slim_template.rb
|
202
|
+
- test/slim/test_text_interpolation.rb
|
203
|
+
- test/slim/test_wrapper.rb
|
204
|
+
homepage: http://github.com/gregwebs/hamlet.rb
|
205
|
+
licenses: []
|
206
|
+
post_install_message:
|
207
|
+
rdoc_options:
|
208
|
+
- --charset=UTF-8
|
209
|
+
require_paths:
|
210
|
+
- lib
|
211
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
219
|
+
requirements:
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
requirements: []
|
224
|
+
rubyforge_project: hamlet
|
225
|
+
rubygems_version: 1.8.10
|
226
|
+
signing_key:
|
227
|
+
specification_version: 3
|
228
|
+
summary: Hamlet is a DRY HTML template language.
|
229
|
+
test_files: []
|
230
|
+
has_rdoc:
|