fortitude 0.9.1-java → 0.9.2-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.travis.yml +28 -22
  4. data/CHANGES.md +50 -0
  5. data/CONTRIBUTORS.md +1 -0
  6. data/doc/.gitignore +18 -0
  7. data/doc/Gemfile +21 -0
  8. data/doc/config.rb +92 -0
  9. data/doc/source/images/background.png +0 -0
  10. data/doc/source/images/middleman.png +0 -0
  11. data/doc/source/images/why/icon_button.png +0 -0
  12. data/doc/source/images/why/icon_button@2x.png +0 -0
  13. data/doc/source/images/why/modal_dialog@2x.png +0 -0
  14. data/doc/source/index.html.pcss +96 -0
  15. data/doc/source/index.html.rb +66 -0
  16. data/doc/source/javascripts/all.js +1 -0
  17. data/doc/source/javascripts/highlight.pack.js +1 -0
  18. data/doc/source/layouts/layout.rb +55 -0
  19. data/doc/source/portable/fortitude-bootstrap.rb +53 -0
  20. data/doc/source/shared/base.pcss +62 -0
  21. data/doc/source/shared/base.rb +30 -0
  22. data/doc/source/shared/common.rb +55 -0
  23. data/doc/source/shared/standard_page.rb +40 -0
  24. data/doc/source/stylesheets/_shared_prefix.scss +25 -0
  25. data/doc/source/stylesheets/all.css.scss +7 -0
  26. data/doc/source/stylesheets/basics.css.scss +20 -0
  27. data/doc/source/stylesheets/bootstrap_importer.css.scss +1 -0
  28. data/doc/source/stylesheets/highlight/arta.css +140 -0
  29. data/doc/source/stylesheets/highlight/ascetic.css +52 -0
  30. data/doc/source/stylesheets/highlight/atelier-dune.dark.css +95 -0
  31. data/doc/source/stylesheets/highlight/atelier-dune.light.css +95 -0
  32. data/doc/source/stylesheets/highlight/atelier-forest.dark.css +95 -0
  33. data/doc/source/stylesheets/highlight/atelier-forest.light.css +95 -0
  34. data/doc/source/stylesheets/highlight/atelier-heath.dark.css +95 -0
  35. data/doc/source/stylesheets/highlight/atelier-heath.light.css +95 -0
  36. data/doc/source/stylesheets/highlight/atelier-lakeside.dark.css +95 -0
  37. data/doc/source/stylesheets/highlight/atelier-lakeside.light.css +95 -0
  38. data/doc/source/stylesheets/highlight/atelier-seaside.dark.css +95 -0
  39. data/doc/source/stylesheets/highlight/atelier-seaside.light.css +95 -0
  40. data/doc/source/stylesheets/highlight/brown_paper.css +104 -0
  41. data/doc/source/stylesheets/highlight/brown_papersq.png +0 -0
  42. data/doc/source/stylesheets/highlight/codepen-embed.css +108 -0
  43. data/doc/source/stylesheets/highlight/color-brewer.css +168 -0
  44. data/doc/source/stylesheets/highlight/dark.css +104 -0
  45. data/doc/source/stylesheets/highlight/default.css +152 -0
  46. data/doc/source/stylesheets/highlight/docco.css +135 -0
  47. data/doc/source/stylesheets/highlight/far.css +111 -0
  48. data/doc/source/stylesheets/highlight/foundation.css +136 -0
  49. data/doc/source/stylesheets/highlight/github.css +124 -0
  50. data/doc/source/stylesheets/highlight/googlecode.css +147 -0
  51. data/doc/source/stylesheets/highlight/hybrid.css +170 -0
  52. data/doc/source/stylesheets/highlight/idea.css +125 -0
  53. data/doc/source/stylesheets/highlight/ir_black.css +109 -0
  54. data/doc/source/stylesheets/highlight/kimbie.dark.css +96 -0
  55. data/doc/source/stylesheets/highlight/kimbie.light.css +96 -0
  56. data/doc/source/stylesheets/highlight/magula.css +121 -0
  57. data/doc/source/stylesheets/highlight/mono-blue.css +69 -0
  58. data/doc/source/stylesheets/highlight/monokai.css +127 -0
  59. data/doc/source/stylesheets/highlight/monokai_sublime.css +154 -0
  60. data/doc/source/stylesheets/highlight/obsidian.css +153 -0
  61. data/doc/source/stylesheets/highlight/paraiso.dark.css +95 -0
  62. data/doc/source/stylesheets/highlight/paraiso.light.css +95 -0
  63. data/doc/source/stylesheets/highlight/pojoaque.css +107 -0
  64. data/doc/source/stylesheets/highlight/pojoaque.jpg +0 -0
  65. data/doc/source/stylesheets/highlight/railscasts.css +187 -0
  66. data/doc/source/stylesheets/highlight/rainbow.css +108 -0
  67. data/doc/source/stylesheets/highlight/school_book.css +112 -0
  68. data/doc/source/stylesheets/highlight/school_book.png +0 -0
  69. data/doc/source/stylesheets/highlight/solarized_dark.css +108 -0
  70. data/doc/source/stylesheets/highlight/solarized_light.css +108 -0
  71. data/doc/source/stylesheets/highlight/sunburst.css +164 -0
  72. data/doc/source/stylesheets/highlight/tomorrow-night-blue.css +95 -0
  73. data/doc/source/stylesheets/highlight/tomorrow-night-bright.css +94 -0
  74. data/doc/source/stylesheets/highlight/tomorrow-night-eighties.css +94 -0
  75. data/doc/source/stylesheets/highlight/tomorrow-night.css +95 -0
  76. data/doc/source/stylesheets/highlight/tomorrow.css +92 -0
  77. data/doc/source/stylesheets/highlight/vs.css +93 -0
  78. data/doc/source/stylesheets/highlight/xcode.css +158 -0
  79. data/doc/source/stylesheets/highlight/zenburn.css +118 -0
  80. data/doc/source/why/a_larger_view.html.rb +774 -0
  81. data/doc/source/why/a_simple_helper.html.rb +332 -0
  82. data/doc/source/why/building_a_rich_modal_dialog.html.rb +156 -0
  83. data/doc/source/why/commonality_and_inheritance.html.rb +564 -0
  84. data/doc/source/why/example_list.rb +60 -0
  85. data/doc/source/why/example_page.rb +116 -0
  86. data/doc/source/why/index.html.rb +86 -0
  87. data/doc/source/why/other_benefits.html.rb +110 -0
  88. data/fortitude.gemspec +6 -1
  89. data/lib/fortitude/doctypes/html4_tags_strict.rb +1 -0
  90. data/lib/fortitude/doctypes/html5.rb +1 -0
  91. data/lib/fortitude/method_templates/tag_method_template.rb.smpl +27 -14
  92. data/lib/fortitude/rails/helpers.rb +2 -2
  93. data/lib/fortitude/rendering_context.rb +10 -1
  94. data/lib/fortitude/tags/tag.rb +3 -2
  95. data/lib/fortitude/tags/tag_support.rb +8 -3
  96. data/lib/fortitude/tilt/fortitude_template.rb +6 -2
  97. data/lib/fortitude/version.rb +1 -1
  98. data/lib/fortitude/widget.rb +2 -0
  99. data/lib/fortitude/widget/convenience.rb +30 -0
  100. data/lib/fortitude/widget/files.rb +22 -11
  101. data/lib/fortitude/widget/needs.rb +5 -3
  102. data/spec/helpers/system_helpers.rb +1 -0
  103. data/spec/rails/development_mode_system_spec.rb +0 -1
  104. data/spec/rails/rendering_system_spec.rb +20 -1
  105. data/spec/rails/templates/rendering_system_spec/app/controllers/rendering_system_spec_controller.rb +13 -0
  106. data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_hash_subclass.rb +18 -0
  107. data/spec/rails/templates/rendering_system_spec/lib/my_hash.rb +5 -0
  108. data/spec/system/convenience_methods_system_spec.rb +166 -0
  109. data/spec/system/formatting_system_spec.rb +25 -1
  110. data/spec/system/tag_rendering_system_spec.rb +73 -0
  111. data/spec/system/tilt_system_spec.rb +31 -0
  112. data/spec/system/widget_class_from_spec.rb +20 -4
  113. metadata +91 -4
@@ -5,7 +5,8 @@ describe "Fortitude formatting support", :type => :system do
5
5
  end
6
6
 
7
7
  wc.send(:define_method, :content, &block)
8
- expect(render(wc)).to eq(text)
8
+ actual = render(wc)
9
+ expect(actual).to eq(text)
9
10
  end
10
11
 
11
12
  it "should add newlines around <div> and <p>" do
@@ -60,4 +61,27 @@ describe "Fortitude formatting support", :type => :system do
60
61
  </div>
61
62
  </div>}) { div(:class => 'foo') { div(:class => 'bar') { } } }
62
63
  end
64
+
65
+ it "should suppress all formatting inside <pre>" do
66
+ should_format_to(%{<pre><p>hello
67
+ world
68
+ there</p></pre>}) { pre { p "hello\n world\nthere" } }
69
+ end
70
+
71
+ it "should suppress all formatting inside <pre> (complex example)" do
72
+ should_format_to(%{<div>
73
+ <pre><p>hello
74
+ world
75
+ there</p><div><p>another here</p></div><p>yet another</p></pre>
76
+ </div>}) { div { pre { p "hello\n world\nthere"; div { p "another here" }; p "yet another" } } }
77
+ end
78
+
79
+ it "should suppress all formatting inside <pre>, even with nested <pre> tags" do
80
+ should_format_to(%{<div>
81
+ <pre><p>hello
82
+ world
83
+ there</p><pre><p>another
84
+ here</p></pre><p>yet another</p></pre>
85
+ </div>}) { div { pre { p "hello\n world\nthere"; pre { p "another\n here" }; p "yet another" } } }
86
+ end
63
87
  end
@@ -92,6 +92,79 @@ describe "Fortitude tag rendering", :type => :system do
92
92
  should_render_to("<p>12345</p>") { p 12345 }
93
93
  end
94
94
 
95
+ it "should allow returning from within an element, and still render the close tags" do
96
+ wc = widget_class do
97
+ def content
98
+ div {
99
+ text "content_before"
100
+ foo
101
+ text "content_after"
102
+ }
103
+ end
104
+
105
+ def foo
106
+ p {
107
+ text "foo_before"
108
+ bar
109
+ text "foo_after"
110
+ }
111
+ end
112
+
113
+ def bar
114
+ span {
115
+ text "bar_first"
116
+ a {
117
+ text "bar_before"
118
+ return
119
+ text "bar_after"
120
+ }
121
+ text "bar_last"
122
+ }
123
+ end
124
+ end
125
+
126
+ expect(render(wc)).to eq("<div>content_before<p>foo_before<span>bar_first<a>bar_before</a></span>foo_after</p>content_after</div>")
127
+ end
128
+
129
+ it "should allow raising an exception from within an element, and still render the close tags" do
130
+ wc = widget_class do
131
+ def content
132
+ div {
133
+ text "content_before"
134
+ foo
135
+ text "content_after"
136
+ }
137
+ end
138
+
139
+ def foo
140
+ p {
141
+ text "foo_before"
142
+ bar
143
+ text "foo_after"
144
+ }
145
+ end
146
+
147
+ def bar
148
+ span {
149
+ text "bar_first"
150
+ a {
151
+ text "bar_before"
152
+ raise "kaboom"
153
+ text "bar_after"
154
+ }
155
+ text "bar_last"
156
+ }
157
+ end
158
+ end
159
+
160
+ widget = wc.new
161
+ rendering_context = ::Fortitude::RenderingContext.new({ })
162
+ expect { widget.render_to(rendering_context) }.to raise_error(/kaboom/)
163
+ output = html_from(rendering_context)
164
+
165
+ expect(output).to eq("<div>content_before<p>foo_before<span>bar_first<a>bar_before</a></span></p></div>")
166
+ end
167
+
95
168
  it "should render a tag using a specific tag_* method" do
96
169
  should_render_to("<p>foo</p>") { tag_p "foo" }
97
170
  end
@@ -93,6 +93,11 @@ EOS
93
93
  expect(result).to eq("foo: the_foo, bar: the_bar")
94
94
  end
95
95
 
96
+ it "should pass explicit locals to the template, as strings" do
97
+ result = render_text_with_tilt("simple_template_with_variables.rb", SIMPLE_TEMPLATE_WITH_VARIABLES, context_object, { 'foo' => 'the_foo', 'bar' => 'the_bar' })
98
+ expect(result).to eq("foo: the_foo, bar: the_bar")
99
+ end
100
+
96
101
  it "should allow passing nil for locals to the template, and should act like there are no variables" do
97
102
  result = render_text_with_tilt("simple_template_with_variables.rb", SIMPLE_TEMPLATE_WITH_VARIABLES_ALL_DEFAULTED, context_object, nil)
98
103
  expect(result).to eq("foo: something, bar: whatever")
@@ -389,4 +394,30 @@ EOS
389
394
  expect(e.tried_class_names).to be_include("String")
390
395
  expect(e.message).to match(/String/)
391
396
  end
397
+
398
+ it "should pass the filename of the template into the eval of the class source" do
399
+ text = <<-EOS
400
+ class ClassSourceTemplate < Fortitude::Widgets::Html5
401
+ def self.set_caller!
402
+ @caller = caller
403
+ end
404
+
405
+ def self.get_caller
406
+ @caller
407
+ end
408
+
409
+ set_caller!
410
+
411
+ def content
412
+ text "widget file: \#{__FILE__}\n"
413
+ text "called at: \#{self.class.get_caller.join("\n ")}"
414
+ end
415
+ end
416
+ EOS
417
+
418
+ full_path = File.join(tempdir, "class_source_template.rb")
419
+ html = render_text_with_tilt("class_source_template.rb", text)
420
+ expect(html).to match(/widget file: #{Regexp.escape(full_path)}/)
421
+ expect(html).to match(/called at: #{Regexp.escape(full_path)}:\d+/)
422
+ end
392
423
  end
@@ -38,10 +38,19 @@ describe "Fortitude widget-class-from-(file|source) support", :type => :system d
38
38
  expect(wcfs(text)).to eq(::WidgetFromClass2)
39
39
  end
40
40
 
41
- it "should fail if given source code it can't guess the class name from" do
42
- expect do
43
- wcfs("cname = 'WidgetFromCla' + 'ss3'; eval('class ' + cname + ' < ::Fortitude::Widget; end')")
44
- end.to raise_error(::Fortitude::Widget::Files::CannotDetermineWidgetClassNameError)
41
+ it "should prefer the longest class name to a shorter name" do
42
+ eval("module WidgetFromClass25; class Widget1 < Fortitude::Widget; end; end")
43
+ text = "module WidgetFromClass25; module Foo; class Widget1 < Fortitude::Widget; end; end; end"
44
+ eval(text)
45
+ expect(wcfs(text)).to eq(::WidgetFromClass25::Foo::Widget1)
46
+ end
47
+
48
+ it "should fail if given source code it can't guess the class name from, returning any :class_names_to_try in the exception" do
49
+ cdne = capture_exception(::Fortitude::Widget::Files::CannotDetermineWidgetClassNameError) do
50
+ wcfs("cname = 'WidgetFromCla' + 'ss3'; eval('class ' + cname + ' < ::Fortitude::Widget; end')",
51
+ :class_names_to_try => [ 'WidgetFromClass3::Foo', 'WidgetFromClass3::Baz' ])
52
+ end
53
+ expect(cdne.class_names_to_try).to eq([ 'WidgetFromClass3::Foo', 'WidgetFromClass3::Baz' ])
45
54
  end
46
55
 
47
56
  it "should fail if the source code contains something that isn't a widget class" do
@@ -51,6 +60,13 @@ describe "Fortitude widget-class-from-(file|source) support", :type => :system d
51
60
  expect(cdne.tried_class_names).to be_include("WidgetFromClass11")
52
61
  end
53
62
 
63
+ it "should fail, but return the object, if the source code contains an object of that class that just isn't a widget class" do
64
+ cdne = capture_exception(::Fortitude::Widget::Files::CannotDetermineWidgetClassNameError) do
65
+ wcfs("module WidgetFromClass24\nend")
66
+ end
67
+ expect(cdne.resulting_objects).to eq([ ::WidgetFromClass24 ])
68
+ end
69
+
54
70
  it "should work if given something that's a grandchild of Fortitude::Widget, not a direct child" do
55
71
  ::Object.class_eval("class WidgetFromClass12Parent < ::Fortitude::Widget; end")
56
72
  expect(wcfs("class WidgetFromClass12 < WidgetFromClass12Parent; end")).to eq(WidgetFromClass12)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fortitude
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: java
6
6
  authors:
7
7
  - Andrew Geweke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-15 00:00:00.000000000 Z
11
+ date: 2015-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,12 +114,12 @@ dependencies:
114
114
  requirements:
115
115
  - - '>='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.0.3
117
+ version: 0.0.7
118
118
  requirement: !ruby/object:Gem::Requirement
119
119
  requirements:
120
120
  - - '>='
121
121
  - !ruby/object:Gem::Version
122
- version: 0.0.3
122
+ version: 0.0.7
123
123
  prerelease: false
124
124
  type: :development
125
125
  description: 'Views Are Code: use all the power of Ruby to build views in your own
@@ -140,6 +140,88 @@ files:
140
140
  - README-erector.md
141
141
  - README.md
142
142
  - Rakefile
143
+ - doc/.gitignore
144
+ - doc/Gemfile
145
+ - doc/config.rb
146
+ - doc/source/images/background.png
147
+ - doc/source/images/middleman.png
148
+ - doc/source/images/why/icon_button.png
149
+ - doc/source/images/why/icon_button@2x.png
150
+ - doc/source/images/why/modal_dialog@2x.png
151
+ - doc/source/index.html.pcss
152
+ - doc/source/index.html.rb
153
+ - doc/source/javascripts/all.js
154
+ - doc/source/javascripts/highlight.pack.js
155
+ - doc/source/layouts/layout.rb
156
+ - doc/source/portable/fortitude-bootstrap.rb
157
+ - doc/source/shared/base.pcss
158
+ - doc/source/shared/base.rb
159
+ - doc/source/shared/common.rb
160
+ - doc/source/shared/standard_page.rb
161
+ - doc/source/stylesheets/_shared_prefix.scss
162
+ - doc/source/stylesheets/all.css.scss
163
+ - doc/source/stylesheets/basics.css.scss
164
+ - doc/source/stylesheets/bootstrap_importer.css.scss
165
+ - doc/source/stylesheets/highlight/arta.css
166
+ - doc/source/stylesheets/highlight/ascetic.css
167
+ - doc/source/stylesheets/highlight/atelier-dune.dark.css
168
+ - doc/source/stylesheets/highlight/atelier-dune.light.css
169
+ - doc/source/stylesheets/highlight/atelier-forest.dark.css
170
+ - doc/source/stylesheets/highlight/atelier-forest.light.css
171
+ - doc/source/stylesheets/highlight/atelier-heath.dark.css
172
+ - doc/source/stylesheets/highlight/atelier-heath.light.css
173
+ - doc/source/stylesheets/highlight/atelier-lakeside.dark.css
174
+ - doc/source/stylesheets/highlight/atelier-lakeside.light.css
175
+ - doc/source/stylesheets/highlight/atelier-seaside.dark.css
176
+ - doc/source/stylesheets/highlight/atelier-seaside.light.css
177
+ - doc/source/stylesheets/highlight/brown_paper.css
178
+ - doc/source/stylesheets/highlight/brown_papersq.png
179
+ - doc/source/stylesheets/highlight/codepen-embed.css
180
+ - doc/source/stylesheets/highlight/color-brewer.css
181
+ - doc/source/stylesheets/highlight/dark.css
182
+ - doc/source/stylesheets/highlight/default.css
183
+ - doc/source/stylesheets/highlight/docco.css
184
+ - doc/source/stylesheets/highlight/far.css
185
+ - doc/source/stylesheets/highlight/foundation.css
186
+ - doc/source/stylesheets/highlight/github.css
187
+ - doc/source/stylesheets/highlight/googlecode.css
188
+ - doc/source/stylesheets/highlight/hybrid.css
189
+ - doc/source/stylesheets/highlight/idea.css
190
+ - doc/source/stylesheets/highlight/ir_black.css
191
+ - doc/source/stylesheets/highlight/kimbie.dark.css
192
+ - doc/source/stylesheets/highlight/kimbie.light.css
193
+ - doc/source/stylesheets/highlight/magula.css
194
+ - doc/source/stylesheets/highlight/mono-blue.css
195
+ - doc/source/stylesheets/highlight/monokai.css
196
+ - doc/source/stylesheets/highlight/monokai_sublime.css
197
+ - doc/source/stylesheets/highlight/obsidian.css
198
+ - doc/source/stylesheets/highlight/paraiso.dark.css
199
+ - doc/source/stylesheets/highlight/paraiso.light.css
200
+ - doc/source/stylesheets/highlight/pojoaque.css
201
+ - doc/source/stylesheets/highlight/pojoaque.jpg
202
+ - doc/source/stylesheets/highlight/railscasts.css
203
+ - doc/source/stylesheets/highlight/rainbow.css
204
+ - doc/source/stylesheets/highlight/school_book.css
205
+ - doc/source/stylesheets/highlight/school_book.png
206
+ - doc/source/stylesheets/highlight/solarized_dark.css
207
+ - doc/source/stylesheets/highlight/solarized_light.css
208
+ - doc/source/stylesheets/highlight/sunburst.css
209
+ - doc/source/stylesheets/highlight/tomorrow-night-blue.css
210
+ - doc/source/stylesheets/highlight/tomorrow-night-bright.css
211
+ - doc/source/stylesheets/highlight/tomorrow-night-eighties.css
212
+ - doc/source/stylesheets/highlight/tomorrow-night.css
213
+ - doc/source/stylesheets/highlight/tomorrow.css
214
+ - doc/source/stylesheets/highlight/vs.css
215
+ - doc/source/stylesheets/highlight/xcode.css
216
+ - doc/source/stylesheets/highlight/zenburn.css
217
+ - doc/source/why/a_larger_view.html.rb
218
+ - doc/source/why/a_simple_helper.html.rb
219
+ - doc/source/why/building_a_rich_modal_dialog.html.rb
220
+ - doc/source/why/commonality_and_inheritance.html.rb
221
+ - doc/source/why/example_list.rb
222
+ - doc/source/why/example_page.rb
223
+ - doc/source/why/index.html.rb
224
+ - doc/source/why/other_benefits.html.rb
143
225
  - ext/FortitudeJrubyNativeExtService.java
144
226
  - ext/com/fortituderuby/ext/fortitude/FortitudeNativeLibrary.java
145
227
  - ext/fortitude_native_ext/extconf.rb
@@ -200,6 +282,7 @@ files:
200
282
  - lib/fortitude/widget/around_content.rb
201
283
  - lib/fortitude/widget/capturing.rb
202
284
  - lib/fortitude/widget/content.rb
285
+ - lib/fortitude/widget/convenience.rb
203
286
  - lib/fortitude/widget/doctypes.rb
204
287
  - lib/fortitude/widget/files.rb
205
288
  - lib/fortitude/widget/helpers.rb
@@ -485,6 +568,7 @@ files:
485
568
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection.html.erb
486
569
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection_as.html.erb
487
570
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_file_from_widget.rb
571
+ - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_hash_subclass.rb
488
572
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_html_safe_strings.rb
489
573
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_inline_from_widget.rb
490
574
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_object.html.erb
@@ -502,6 +586,7 @@ files:
502
586
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_class_only.rb
503
587
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_with_capture.rb
504
588
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_with_helper.rb
589
+ - spec/rails/templates/rendering_system_spec/lib/my_hash.rb
505
590
  - spec/rails/templates/rules_system_spec/app/controllers/rules_system_spec_controller.rb
506
591
  - spec/rails/templates/rules_system_spec/app/views/layouts/fortitude_layout_with_p.rb
507
592
  - spec/rails/templates/rules_system_spec/app/views/rules_system_spec/_intervening_partial_erb_partial.html.erb
@@ -841,6 +926,7 @@ test_files:
841
926
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection.html.erb
842
927
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection_as.html.erb
843
928
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_file_from_widget.rb
929
+ - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_hash_subclass.rb
844
930
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_html_safe_strings.rb
845
931
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_inline_from_widget.rb
846
932
  - spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_object.html.erb
@@ -858,6 +944,7 @@ test_files:
858
944
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_class_only.rb
859
945
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_with_capture.rb
860
946
  - spec/rails/templates/rendering_system_spec/app/views/widget_to_render_with_helper.rb
947
+ - spec/rails/templates/rendering_system_spec/lib/my_hash.rb
861
948
  - spec/rails/templates/rules_system_spec/app/controllers/rules_system_spec_controller.rb
862
949
  - spec/rails/templates/rules_system_spec/app/views/layouts/fortitude_layout_with_p.rb
863
950
  - spec/rails/templates/rules_system_spec/app/views/rules_system_spec/_intervening_partial_erb_partial.html.erb