express_templates 0.2.7 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/core_extensions/proc.rb +72 -20
- data/lib/express_templates/compiler.rb +9 -1
- data/lib/express_templates/components/base.rb +1 -1
- data/lib/express_templates/components/capabilities/building.rb +8 -0
- data/lib/express_templates/components/capabilities/conditionality.rb +8 -6
- data/lib/express_templates/components/capabilities/configurable.rb +3 -4
- data/lib/express_templates/components/capabilities/iterating.rb +18 -23
- data/lib/express_templates/components/capabilities/parenting.rb +4 -18
- data/lib/express_templates/components/capabilities/rendering.rb +2 -65
- data/lib/express_templates/components/capabilities/templating.rb +24 -22
- data/lib/express_templates/components/capabilities/wrapping.rb +23 -39
- data/lib/express_templates/components/column.rb +1 -1
- data/lib/express_templates/components/for_each.rb +28 -0
- data/lib/express_templates/components/form_for.rb +19 -0
- data/lib/express_templates/components/form_rails_support.rb +1 -1
- data/lib/express_templates/components/null_wrap.rb +9 -0
- data/lib/express_templates/components/row.rb +1 -1
- data/lib/express_templates/components/table_for.rb +119 -0
- data/lib/express_templates/components/tree_for.rb +41 -0
- data/lib/express_templates/components/unless_block.rb +40 -0
- data/lib/express_templates/components.rb +4 -0
- data/lib/express_templates/expander.rb +15 -4
- data/lib/express_templates/indenter.rb +8 -5
- data/lib/express_templates/markup/tag.rb +62 -30
- data/lib/express_templates/markup/wrapper.rb +1 -1
- data/lib/express_templates/version.rb +1 -1
- data/test/components/base_test.rb +5 -38
- data/test/components/conditionality_test.rb +1 -1
- data/test/components/configurable_test.rb +2 -2
- data/test/components/container_test.rb +1 -1
- data/test/components/iterating_test.rb +30 -9
- data/test/components/table_for_test.rb +116 -0
- data/test/core_extensions/proc_test.rb +35 -5
- data/test/dummy/log/test.log +645 -0
- data/test/fixtures/{a_big_page.html → a_big_page2.html} +0 -0
- data/test/indenter_test.rb +6 -4
- data/test/markup/tag_test.rb +15 -2
- data/test/performance_test.rb +1 -1
- data/test/test_helper.rb +2 -0
- metadata +26 -3
data/test/indenter_test.rb
CHANGED
@@ -5,8 +5,10 @@ class IndenterTest < ActiveSupport::TestCase
|
|
5
5
|
Indenter = ExpressTemplates::Indenter
|
6
6
|
|
7
7
|
test ".for(:name) takes a block receiving whitespace" do
|
8
|
-
|
9
|
-
|
8
|
+
Indenter.for(:foo) do
|
9
|
+
assert_equal "\n ", Indenter.for(:foo) { |indent, indent_with_newline| indent_with_newline }
|
10
|
+
assert_equal " ", Indenter.for(:foo) { |indent, indent_with_newline| indent }
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
14
|
test "nesting blocks increases whitespace accordingly" do
|
@@ -15,11 +17,11 @@ class IndenterTest < ActiveSupport::TestCase
|
|
15
17
|
ws2
|
16
18
|
end
|
17
19
|
end
|
18
|
-
assert_equal "
|
20
|
+
assert_equal " ", nested_whitespace
|
19
21
|
end
|
20
22
|
|
21
23
|
test ".for(:name) returns current indent without newline when block is not given" do
|
22
|
-
assert_equal "
|
24
|
+
assert_equal "", Indenter.for(:foo) { |_| Indenter.for(:foo) }
|
23
25
|
end
|
24
26
|
|
25
27
|
end
|
data/test/markup/tag_test.rb
CHANGED
@@ -14,6 +14,10 @@ class TagTest < ActiveSupport::TestCase
|
|
14
14
|
end
|
15
15
|
|
16
16
|
|
17
|
+
# NOTE: Due to formatting html leading newlines may be
|
18
|
+
# required for test values. These are stripped for the
|
19
|
+
# first tag during ExpressTemplates.compile
|
20
|
+
|
17
21
|
test "#macro_name returns the name of the class" do
|
18
22
|
assert_equal 'bare', bare_tag.macro_name
|
19
23
|
end
|
@@ -121,6 +125,17 @@ class TagTest < ActiveSupport::TestCase
|
|
121
125
|
assert_equal '"<bare id=\"foo\" />"', bare_tag(:foo).compile
|
122
126
|
end
|
123
127
|
|
128
|
+
test "proc option values are evaluated in context" do
|
129
|
+
assert_equal '"<bare id=\"#{(-> { awesome }).call}\" />"', bare_tag(id: -> { awesome }).compile
|
130
|
+
end
|
131
|
+
|
132
|
+
test "markup is indented" do
|
133
|
+
ExpressTemplates::Markup::Tag.formatted do
|
134
|
+
code = ExpressTemplates.compile &-> {ul { li { "*"*36 }}}
|
135
|
+
assert_equal "<ul>\n <li>#{"*"*36}</li>\n</ul>\n", eval(code)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
124
139
|
test "print doctype for HTML5 document version" do
|
125
140
|
assert_equal '"<!DOCTYPE html>"', ExpressTemplates::Markup::Doctype.new.compile
|
126
141
|
end
|
@@ -129,6 +144,4 @@ class TagTest < ActiveSupport::TestCase
|
|
129
144
|
assert_equal '"<img>"', ExpressTemplates::Markup::Img.new.compile
|
130
145
|
end
|
131
146
|
|
132
|
-
# test "proc option values are evaluated in context"
|
133
|
-
|
134
147
|
end
|
data/test/performance_test.rb
CHANGED
@@ -80,7 +80,7 @@ HAML
|
|
80
80
|
eruby = Erubis::Eruby.new
|
81
81
|
duration_erb = time(100) { eval(eruby.convert(ERB_EXAMPLE)) }
|
82
82
|
duration_express_templates = time(100) { ExpressTemplates.render(self, "#{GARA_EXAMPLE}") }
|
83
|
-
assert_operator
|
83
|
+
assert_operator 4.0, :>, (duration_express_templates/duration_erb)
|
84
84
|
end
|
85
85
|
|
86
86
|
test "performance better than haml" do
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: express_templates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Talcott Smith
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0.7'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-stack_explorer
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.4'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.4'
|
111
125
|
description: Replace Erb/HAML/Slim with ExpressTemplates and write templates in a
|
112
126
|
declartive style of Ruby. With ExpressTemplates you may easily create a library
|
113
127
|
of components for use across projects.
|
@@ -125,6 +139,7 @@ files:
|
|
125
139
|
- lib/express_templates/compiler.rb
|
126
140
|
- lib/express_templates/components.rb
|
127
141
|
- lib/express_templates/components/base.rb
|
142
|
+
- lib/express_templates/components/capabilities/building.rb
|
128
143
|
- lib/express_templates/components/capabilities/conditionality.rb
|
129
144
|
- lib/express_templates/components/capabilities/configurable.rb
|
130
145
|
- lib/express_templates/components/capabilities/iterating.rb
|
@@ -135,8 +150,14 @@ files:
|
|
135
150
|
- lib/express_templates/components/column.rb
|
136
151
|
- lib/express_templates/components/container.rb
|
137
152
|
- lib/express_templates/components/content_for.rb
|
153
|
+
- lib/express_templates/components/for_each.rb
|
154
|
+
- lib/express_templates/components/form_for.rb
|
138
155
|
- lib/express_templates/components/form_rails_support.rb
|
156
|
+
- lib/express_templates/components/null_wrap.rb
|
139
157
|
- lib/express_templates/components/row.rb
|
158
|
+
- lib/express_templates/components/table_for.rb
|
159
|
+
- lib/express_templates/components/tree_for.rb
|
160
|
+
- lib/express_templates/components/unless_block.rb
|
140
161
|
- lib/express_templates/expander.rb
|
141
162
|
- lib/express_templates/indenter.rb
|
142
163
|
- lib/express_templates/macro.rb
|
@@ -158,6 +179,7 @@ files:
|
|
158
179
|
- test/components/content_for_test.rb
|
159
180
|
- test/components/iterating_test.rb
|
160
181
|
- test/components/row_test.rb
|
182
|
+
- test/components/table_for_test.rb
|
161
183
|
- test/core_extensions/proc_test.rb
|
162
184
|
- test/dummy/Rakefile
|
163
185
|
- test/dummy/app/assets/javascripts/application.js
|
@@ -217,7 +239,7 @@ files:
|
|
217
239
|
- test/expander_stack_test.rb
|
218
240
|
- test/expander_test.rb
|
219
241
|
- test/express_templates_test.rb
|
220
|
-
- test/fixtures/
|
242
|
+
- test/fixtures/a_big_page2.html
|
221
243
|
- test/handler_test.rb
|
222
244
|
- test/indenter_test.rb
|
223
245
|
- test/markup/tag_test.rb
|
@@ -259,6 +281,7 @@ test_files:
|
|
259
281
|
- test/components/content_for_test.rb
|
260
282
|
- test/components/iterating_test.rb
|
261
283
|
- test/components/row_test.rb
|
284
|
+
- test/components/table_for_test.rb
|
262
285
|
- test/core_extensions/proc_test.rb
|
263
286
|
- test/dummy/app/assets/javascripts/application.js
|
264
287
|
- test/dummy/app/assets/stylesheets/application.css
|
@@ -318,7 +341,7 @@ test_files:
|
|
318
341
|
- test/expander_stack_test.rb
|
319
342
|
- test/expander_test.rb
|
320
343
|
- test/express_templates_test.rb
|
321
|
-
- test/fixtures/
|
344
|
+
- test/fixtures/a_big_page2.html
|
322
345
|
- test/handler_test.rb
|
323
346
|
- test/indenter_test.rb
|
324
347
|
- test/markup/tag_test.rb
|