express_templates 0.2.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.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +53 -0
  4. data/Rakefile +32 -0
  5. data/lib/express_templates/component.rb +92 -0
  6. data/lib/express_templates/components/html_tag.rb +36 -0
  7. data/lib/express_templates/components/wrapper.rb +51 -0
  8. data/lib/express_templates/components/yielder.rb +21 -0
  9. data/lib/express_templates/components.rb +8 -0
  10. data/lib/express_templates/expander.rb +116 -0
  11. data/lib/express_templates/html5_emitter.rb +45 -0
  12. data/lib/express_templates/renderer.rb +16 -0
  13. data/lib/express_templates/template/handler.rb +15 -0
  14. data/lib/express_templates/version.rb +3 -0
  15. data/lib/express_templates.rb +12 -0
  16. data/lib/tasks/gara_tasks.rake +4 -0
  17. data/test/component_test.rb +77 -0
  18. data/test/dummy/Rakefile +6 -0
  19. data/test/dummy/app/assets/javascripts/application.js +13 -0
  20. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  21. data/test/dummy/app/controllers/application_controller.rb +5 -0
  22. data/test/dummy/app/controllers/hello_controller.rb +5 -0
  23. data/test/dummy/app/helpers/application_helper.rb +2 -0
  24. data/test/dummy/app/views/hello/show.html.et +5 -0
  25. data/test/dummy/app/views/layouts/application.html.et +15 -0
  26. data/test/dummy/bin/bundle +3 -0
  27. data/test/dummy/bin/rails +4 -0
  28. data/test/dummy/bin/rake +4 -0
  29. data/test/dummy/config/application.rb +26 -0
  30. data/test/dummy/config/boot.rb +5 -0
  31. data/test/dummy/config/environment.rb +5 -0
  32. data/test/dummy/config/environments/development.rb +37 -0
  33. data/test/dummy/config/environments/production.rb +82 -0
  34. data/test/dummy/config/environments/test.rb +39 -0
  35. data/test/dummy/config/initializers/assets.rb +8 -0
  36. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  37. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  38. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  39. data/test/dummy/config/initializers/inflections.rb +16 -0
  40. data/test/dummy/config/initializers/mime_types.rb +4 -0
  41. data/test/dummy/config/initializers/session_store.rb +3 -0
  42. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  43. data/test/dummy/config/locales/en.yml +23 -0
  44. data/test/dummy/config/routes.rb +4 -0
  45. data/test/dummy/config/secrets.yml +22 -0
  46. data/test/dummy/config.ru +4 -0
  47. data/test/dummy/log/development.log +6478 -0
  48. data/test/dummy/log/test.log +20859 -0
  49. data/test/dummy/public/404.html +67 -0
  50. data/test/dummy/public/422.html +67 -0
  51. data/test/dummy/public/500.html +66 -0
  52. data/test/dummy/public/favicon.ico +0 -0
  53. data/test/dummy/test/controllers/hello_controller_test.rb +14 -0
  54. data/test/dummy/test/helpers/hello_helper_test.rb +4 -0
  55. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  56. data/test/dummy/tmp/cache/assets/development/sprockets/219e4ef52e71a2dd3142d36271626492 +0 -0
  57. data/test/dummy/tmp/cache/assets/development/sprockets/29331726baea36717bf28565c0be1881 +0 -0
  58. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  59. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  60. data/test/dummy/tmp/cache/assets/development/sprockets/4584795e7f513db14ffca10dab44759e +0 -0
  61. data/test/dummy/tmp/cache/assets/development/sprockets/72a227156d935c44e2aad8718b3952fb +0 -0
  62. data/test/dummy/tmp/cache/assets/development/sprockets/cfea650552ed221f83ea2c8fc3198c53 +0 -0
  63. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  64. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  65. data/test/dummy/tmp/cache/assets/development/sprockets/e27275f4020fd1fc40de79a1e5db4c96 +0 -0
  66. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  68. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  69. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  71. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  72. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  73. data/test/expander_stack_test.rb +41 -0
  74. data/test/expander_test.rb +56 -0
  75. data/test/fixtures/a_big_page.html +595 -0
  76. data/test/gara_test.rb +19 -0
  77. data/test/handler_test.rb +122 -0
  78. data/test/performance_test.rb +93 -0
  79. data/test/test_helper.rb +17 -0
  80. data/test/wrapper_test.rb +23 -0
  81. metadata +271 -0
data/test/gara_test.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class ExpressTemplatesTest < ActiveSupport::TestCase
4
+ test "we have a module" do
5
+ assert_kind_of Module, ExpressTemplates
6
+ end
7
+
8
+ test "ExpressTemplates.render renders a template" do
9
+ result = ExpressTemplates.render(self) do
10
+ ul {
11
+ li 'one'
12
+ li 'two'
13
+ li 'three'
14
+ }
15
+ end
16
+ assert_equal "<ul><li>one</li><li>two</li><li>three</li></ul>", result
17
+ end
18
+
19
+ end
@@ -0,0 +1,122 @@
1
+ require 'test_helper'
2
+
3
+ class HandlerTest < ActiveSupport::TestCase
4
+
5
+ GARAHandler = ExpressTemplates::Template::Handler.new
6
+
7
+ DEFAULT_DOCTYPE = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">"
8
+ A_LINK = %Q(<a href="#">link</a>)
9
+
10
+ class LookupContext
11
+ def disable_cache
12
+ yield
13
+ end
14
+
15
+ def find_template(*args)
16
+ end
17
+
18
+ attr_accessor :formats
19
+ end
20
+
21
+ class Context
22
+ include ActionView::Context
23
+ include ActionView::Helpers::TagHelper
24
+ def initialize(*args)
25
+ @output_buffer = "original"
26
+ @virtual_path = nil
27
+ end
28
+
29
+ def lookup_context
30
+ @lookup_context ||= LookupContext.new
31
+ end
32
+
33
+ def concat(string)
34
+ @output_buffer << string
35
+ end
36
+
37
+ def capture(&block)
38
+ block.call
39
+ end
40
+
41
+ def link_helper
42
+ A_LINK
43
+ end
44
+ end
45
+
46
+ def new_template(body = " h1 'Hello' ", details = { format: :html })
47
+ ActionView::Template.new(body, "hello template", details.fetch(:handler) { GARAHandler }, {:virtual_path => "hello"}.merge!(details))
48
+ end
49
+
50
+ def render(locals = {})
51
+ output = @template.render(@context, locals)
52
+ output
53
+ end
54
+
55
+ def with_doctype(body, alt_doctype = nil)
56
+ "#{alt_doctype||DEFAULT_DOCTYPE}\n#{body}"
57
+ end
58
+
59
+ def setup
60
+ controller = Object.new
61
+ class << controller
62
+ def view_context_class ; Context ; end
63
+ end
64
+ @context = Context.new(nil, {}, controller)
65
+ end
66
+
67
+
68
+ test "our handler is registered" do
69
+ handler = ActionView::Template.registered_template_handler("et")
70
+ assert_equal ExpressTemplates::Template::Handler, handler
71
+ end
72
+
73
+ test "html generates <h1>Hello</h1> by default" do
74
+ @template = new_template
75
+ result = render
76
+ assert_equal "<h1>Hello</h1>", result
77
+ end
78
+
79
+ test "nesting elements with ruby block structure" do
80
+ @template = new_template("ul { li 'one' ; li 'two' ; li 'three' }")
81
+ assert_equal "<ul><li>one</li><li>two</li><li>three</li></ul>", render
82
+ end
83
+
84
+ test "class names" do
85
+ @template = new_template("p.whatever.another 'Lorum Ipsum' ")
86
+ assert_equal "<p class=\"whatever another\">Lorum Ipsum</p>", render
87
+ end
88
+
89
+ # test "string in block works" do
90
+ # @template = new_template "h1 { 'foo' } "
91
+ # assert_equal "<h1>foo</h1>", render
92
+ # end
93
+
94
+ # test "real document has doctype and newline" do
95
+ # @template = new_template("html { body { h1 \"hello\" } }")
96
+ # assert_equal with_doctype("<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <body>\n <h1>hello</h1>\n </body>\n</html>\n"), render
97
+ # end
98
+
99
+
100
+ test "other attributes" do
101
+ @template = new_template("p('Lorum Ipsum', style: 'align: right;')")
102
+ assert_equal "<p style=\"align: right;\">Lorum Ipsum</p>", render
103
+ end
104
+
105
+ test "locals work" do
106
+ @template = new_template "h1 { my_title }"
107
+ @template.locals = [:my_title]
108
+ assert_equal "<h1>Foo</h1>", render(my_title: 'Foo')
109
+ end
110
+
111
+ test "helpers returning html when alone in a block" do
112
+ @template = new_template("li { link_helper } ")
113
+ assert_equal "<li>#{A_LINK}</li>", render
114
+ end
115
+
116
+ test "helpers returning html work in sequence within a block" do
117
+ @template = new_template("li { link_helper ; link_helper } ")
118
+ assert_equal "<li>#{A_LINK}#{A_LINK}</li>", render
119
+ end
120
+
121
+
122
+ end
@@ -0,0 +1,93 @@
1
+ require 'test_helper'
2
+ require 'haml'
3
+
4
+ class PerformanceTest < ActiveSupport::TestCase
5
+
6
+ GARA_EXAMPLE =<<-RUBY
7
+ html(lang: "en") {
8
+ head {
9
+ meta charset: 'utf-8'
10
+ meta name: 'viewport', content: "width=device-width, initial-scale=1.0"
11
+ stylesheet_link_tag "application", media: 'all', 'data-turbolinks-track' => true
12
+ csrf_meta_tags
13
+ }
14
+ body {
15
+ h1 "Hello"
16
+ p "Some text"
17
+ javascript_include_tag "application"
18
+ }
19
+ }
20
+ RUBY
21
+
22
+ ERB_EXAMPLE = <<-ERB
23
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
24
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
25
+ <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
26
+ <meta charset="utf-8" />
27
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
+ <%= stylesheet_link_tag 'application' %>
29
+ <%= csrf_meta_tags %>
30
+ </head>
31
+ <body>
32
+ <h1>Hello</h1>
33
+ <p>Some text</p>
34
+ <%= javascript_include_tag 'application' %>
35
+ </body>
36
+ </html>
37
+ ERB
38
+
39
+ HAML_EXAMPLE = <<-HAML
40
+ %html{:xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", 'xml:lang' => "en"}
41
+ %head
42
+ %meta{'http-equiv' => "Content-Type", 'content' => "text/html; charset=UTF-8"}
43
+ %meta{ 'charset' => 'utf-8'}
44
+ %meta{'name' => 'viewport', 'content' => 'width=device-width, initial-scale=1.0'}
45
+ = stylesheet_link_tag 'application'
46
+ = csrf_meta_tags
47
+ %body
48
+ %h1 Hello
49
+ %p Some text
50
+ = javascript_include_tag 'application'
51
+ HAML
52
+ # class Context
53
+ def javascript_include_tag(name, *args)
54
+ %Q(<script data-turbolinks-track="true" src="/assets/#{name}.js"></script>)
55
+ end
56
+
57
+ def stylesheet_link_tag(name, *args)
58
+ %Q(<link data-turbolinks-track="true" href="/assets/#{name}.css" media="all" rel="stylesheet" />)
59
+ end
60
+ def csrf_meta_tags
61
+ %Q(<meta content="authenticity_token" name="csrf-param" />
62
+ <meta content="NF7iiBSErALM5A24Iw07wMH9e8rzxehE50Sv6iPYo98=" name="csrf-token" />
63
+ )
64
+ end
65
+ # end
66
+
67
+ def time(count)
68
+ start_time = Time.now
69
+ 1.upto(100) { yield }
70
+ end_time = Time.now
71
+ return end_time - start_time
72
+ end
73
+
74
+ test "performance is okay" do
75
+ duration = time(100) { ExpressTemplates.render(self, "#{GARA_EXAMPLE}") }
76
+ assert_operator 1.0, :>, duration
77
+ end
78
+
79
+ test "performance no more than 3x slower than erubis" do
80
+ eruby = Erubis::Eruby.new
81
+ duration_erb = time(100) { eval(eruby.convert(ERB_EXAMPLE)) }
82
+ duration_express_templates = time(100) { ExpressTemplates.render(self, "#{GARA_EXAMPLE}") }
83
+ assert_operator 3.0, :>, (duration_express_templates/duration_erb)
84
+ end
85
+
86
+ test "performance better than haml" do
87
+ duration_haml = time(100) { Haml::Engine.new(HAML_EXAMPLE).render(self) }
88
+ duration_express_templates = time(100) { ExpressTemplates.render(self, "#{GARA_EXAMPLE}") }
89
+ assert_operator 0.5, :>, (duration_express_templates/duration_haml)
90
+ end
91
+
92
+ end
93
+
@@ -0,0 +1,17 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ require 'pry'
8
+
9
+ Rails.backtrace_cleaner.remove_silencers!
10
+
11
+ # Load support files
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
+
14
+ # Load fixtures from the engine
15
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
16
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17
+ end
@@ -0,0 +1,23 @@
1
+ require 'test_helper'
2
+
3
+ class WrapperTest < ActiveSupport::TestCase
4
+
5
+ test "name compiles to just name" do
6
+ assert_equal '"#{foo}"', ExpressTemplates::Components::Wrapper.new('foo').compile
7
+ end
8
+
9
+ test "simple args are preserved" do
10
+ wrapper = ExpressTemplates::Components::Wrapper.new('foo', "xyzzy", 'bar', "baz", 1, false, 3)
11
+ assert_equal '"#{foo("xyzzy", "bar", "baz", 1, false, 3)}"', wrapper.compile
12
+ end
13
+
14
+ test "args are preserved" do
15
+ wrapper = ExpressTemplates::Components::Wrapper.new('foo', "xyzzy", bar: "baz")
16
+ assert_equal '"#{foo("xyzzy", bar: "baz")}"', wrapper.compile
17
+ end
18
+
19
+ test "something returning nil when wrapped and compiled, evals to an empty string" do
20
+ assert_equal '', eval(ExpressTemplates::Components::Wrapper.new('nil').compile)
21
+ end
22
+
23
+ end
metadata ADDED
@@ -0,0 +1,271 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: express_templates
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Steven Talcott Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: erubis
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: haml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: better_errors
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: binding_of_caller
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Instead of Erb or HAML, write templates in plain Ruby.
98
+ email:
99
+ - steve@aelogica.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - LICENSE
105
+ - README.md
106
+ - Rakefile
107
+ - lib/express_templates.rb
108
+ - lib/express_templates/component.rb
109
+ - lib/express_templates/components.rb
110
+ - lib/express_templates/components/html_tag.rb
111
+ - lib/express_templates/components/wrapper.rb
112
+ - lib/express_templates/components/yielder.rb
113
+ - lib/express_templates/expander.rb
114
+ - lib/express_templates/html5_emitter.rb
115
+ - lib/express_templates/renderer.rb
116
+ - lib/express_templates/template/handler.rb
117
+ - lib/express_templates/version.rb
118
+ - lib/tasks/gara_tasks.rake
119
+ - test/component_test.rb
120
+ - test/dummy/Rakefile
121
+ - test/dummy/app/assets/javascripts/application.js
122
+ - test/dummy/app/assets/stylesheets/application.css
123
+ - test/dummy/app/controllers/application_controller.rb
124
+ - test/dummy/app/controllers/hello_controller.rb
125
+ - test/dummy/app/helpers/application_helper.rb
126
+ - test/dummy/app/views/hello/show.html.et
127
+ - test/dummy/app/views/layouts/application.html.et
128
+ - test/dummy/bin/bundle
129
+ - test/dummy/bin/rails
130
+ - test/dummy/bin/rake
131
+ - test/dummy/config.ru
132
+ - test/dummy/config/application.rb
133
+ - test/dummy/config/boot.rb
134
+ - test/dummy/config/environment.rb
135
+ - test/dummy/config/environments/development.rb
136
+ - test/dummy/config/environments/production.rb
137
+ - test/dummy/config/environments/test.rb
138
+ - test/dummy/config/initializers/assets.rb
139
+ - test/dummy/config/initializers/backtrace_silencers.rb
140
+ - test/dummy/config/initializers/cookies_serializer.rb
141
+ - test/dummy/config/initializers/filter_parameter_logging.rb
142
+ - test/dummy/config/initializers/inflections.rb
143
+ - test/dummy/config/initializers/mime_types.rb
144
+ - test/dummy/config/initializers/session_store.rb
145
+ - test/dummy/config/initializers/wrap_parameters.rb
146
+ - test/dummy/config/locales/en.yml
147
+ - test/dummy/config/routes.rb
148
+ - test/dummy/config/secrets.yml
149
+ - test/dummy/log/development.log
150
+ - test/dummy/log/test.log
151
+ - test/dummy/public/404.html
152
+ - test/dummy/public/422.html
153
+ - test/dummy/public/500.html
154
+ - test/dummy/public/favicon.ico
155
+ - test/dummy/test/controllers/hello_controller_test.rb
156
+ - test/dummy/test/helpers/hello_helper_test.rb
157
+ - test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
158
+ - test/dummy/tmp/cache/assets/development/sprockets/219e4ef52e71a2dd3142d36271626492
159
+ - test/dummy/tmp/cache/assets/development/sprockets/29331726baea36717bf28565c0be1881
160
+ - test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
161
+ - test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
162
+ - test/dummy/tmp/cache/assets/development/sprockets/4584795e7f513db14ffca10dab44759e
163
+ - test/dummy/tmp/cache/assets/development/sprockets/72a227156d935c44e2aad8718b3952fb
164
+ - test/dummy/tmp/cache/assets/development/sprockets/cfea650552ed221f83ea2c8fc3198c53
165
+ - test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
166
+ - test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
167
+ - test/dummy/tmp/cache/assets/development/sprockets/e27275f4020fd1fc40de79a1e5db4c96
168
+ - test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
169
+ - test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
170
+ - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
171
+ - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
172
+ - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
173
+ - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
174
+ - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
175
+ - test/expander_stack_test.rb
176
+ - test/expander_test.rb
177
+ - test/fixtures/a_big_page.html
178
+ - test/gara_test.rb
179
+ - test/handler_test.rb
180
+ - test/performance_test.rb
181
+ - test/test_helper.rb
182
+ - test/wrapper_test.rb
183
+ homepage: https://github.com/aelogica/express_templates
184
+ licenses:
185
+ - MIT
186
+ metadata: {}
187
+ post_install_message:
188
+ rdoc_options: []
189
+ require_paths:
190
+ - lib
191
+ required_ruby_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ requirements: []
202
+ rubyforge_project:
203
+ rubygems_version: 2.2.2
204
+ signing_key:
205
+ specification_version: 4
206
+ summary: Write HTML templates in plain Ruby.
207
+ test_files:
208
+ - test/component_test.rb
209
+ - test/dummy/app/assets/javascripts/application.js
210
+ - test/dummy/app/assets/stylesheets/application.css
211
+ - test/dummy/app/controllers/application_controller.rb
212
+ - test/dummy/app/controllers/hello_controller.rb
213
+ - test/dummy/app/helpers/application_helper.rb
214
+ - test/dummy/app/views/hello/show.html.et
215
+ - test/dummy/app/views/layouts/application.html.et
216
+ - test/dummy/bin/bundle
217
+ - test/dummy/bin/rails
218
+ - test/dummy/bin/rake
219
+ - test/dummy/config/application.rb
220
+ - test/dummy/config/boot.rb
221
+ - test/dummy/config/environment.rb
222
+ - test/dummy/config/environments/development.rb
223
+ - test/dummy/config/environments/production.rb
224
+ - test/dummy/config/environments/test.rb
225
+ - test/dummy/config/initializers/assets.rb
226
+ - test/dummy/config/initializers/backtrace_silencers.rb
227
+ - test/dummy/config/initializers/cookies_serializer.rb
228
+ - test/dummy/config/initializers/filter_parameter_logging.rb
229
+ - test/dummy/config/initializers/inflections.rb
230
+ - test/dummy/config/initializers/mime_types.rb
231
+ - test/dummy/config/initializers/session_store.rb
232
+ - test/dummy/config/initializers/wrap_parameters.rb
233
+ - test/dummy/config/locales/en.yml
234
+ - test/dummy/config/routes.rb
235
+ - test/dummy/config/secrets.yml
236
+ - test/dummy/config.ru
237
+ - test/dummy/log/development.log
238
+ - test/dummy/log/test.log
239
+ - test/dummy/public/404.html
240
+ - test/dummy/public/422.html
241
+ - test/dummy/public/500.html
242
+ - test/dummy/public/favicon.ico
243
+ - test/dummy/Rakefile
244
+ - test/dummy/test/controllers/hello_controller_test.rb
245
+ - test/dummy/test/helpers/hello_helper_test.rb
246
+ - test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
247
+ - test/dummy/tmp/cache/assets/development/sprockets/219e4ef52e71a2dd3142d36271626492
248
+ - test/dummy/tmp/cache/assets/development/sprockets/29331726baea36717bf28565c0be1881
249
+ - test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
250
+ - test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
251
+ - test/dummy/tmp/cache/assets/development/sprockets/4584795e7f513db14ffca10dab44759e
252
+ - test/dummy/tmp/cache/assets/development/sprockets/72a227156d935c44e2aad8718b3952fb
253
+ - test/dummy/tmp/cache/assets/development/sprockets/cfea650552ed221f83ea2c8fc3198c53
254
+ - test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
255
+ - test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
256
+ - test/dummy/tmp/cache/assets/development/sprockets/e27275f4020fd1fc40de79a1e5db4c96
257
+ - test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
258
+ - test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
259
+ - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
260
+ - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
261
+ - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
262
+ - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
263
+ - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
264
+ - test/expander_stack_test.rb
265
+ - test/expander_test.rb
266
+ - test/fixtures/a_big_page.html
267
+ - test/gara_test.rb
268
+ - test/handler_test.rb
269
+ - test/performance_test.rb
270
+ - test/test_helper.rb
271
+ - test/wrapper_test.rb