_rubyapp 0.0.3

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 (197) hide show
  1. data/.gitignore +6 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/README.md +0 -0
  5. data/Rakefile +65 -0
  6. data/bin/rubyapp +78 -0
  7. data/features/breadcrumbs.feature +10 -0
  8. data/features/content.feature +15 -0
  9. data/features/default.feature +9 -0
  10. data/features/exception.feature +50 -0
  11. data/features/input.feature +12 -0
  12. data/features/list.feature +12 -0
  13. data/features/step_definitions/default_macros.rb +15 -0
  14. data/features/step_definitions/default_steps.rb +36 -0
  15. data/features/support/env.rb +8 -0
  16. data/lib/rubyapp.rb +1 -0
  17. data/lib/rubyapp/config.ru +22 -0
  18. data/lib/rubyapp/element.css.haml +3 -0
  19. data/lib/rubyapp/element.html.haml +2 -0
  20. data/lib/rubyapp/element.js.haml +3 -0
  21. data/lib/rubyapp/element.rb +100 -0
  22. data/lib/rubyapp/elements/button.css.haml +5 -0
  23. data/lib/rubyapp/elements/button.html.haml +3 -0
  24. data/lib/rubyapp/elements/button.rb +19 -0
  25. data/lib/rubyapp/elements/click.js.haml +9 -0
  26. data/lib/rubyapp/elements/click.rb +44 -0
  27. data/lib/rubyapp/elements/content.css.haml +12 -0
  28. data/lib/rubyapp/elements/content.html.haml +3 -0
  29. data/lib/rubyapp/elements/content.js.haml +9 -0
  30. data/lib/rubyapp/elements/content.rb +51 -0
  31. data/lib/rubyapp/elements/dialog.css.haml +30 -0
  32. data/lib/rubyapp/elements/dialog.html.haml +8 -0
  33. data/lib/rubyapp/elements/dialog.rb +58 -0
  34. data/lib/rubyapp/elements/dialogs/exception_dialog.css.haml +4 -0
  35. data/lib/rubyapp/elements/dialogs/exception_dialog.html.haml +8 -0
  36. data/lib/rubyapp/elements/dialogs/exception_dialog.rb +32 -0
  37. data/lib/rubyapp/elements/dialogs/message_dialog.html.haml +8 -0
  38. data/lib/rubyapp/elements/dialogs/message_dialog.rb +33 -0
  39. data/lib/rubyapp/elements/exception_element.css.haml +12 -0
  40. data/lib/rubyapp/elements/exception_element.html.haml +6 -0
  41. data/lib/rubyapp/elements/exception_element.rb +19 -0
  42. data/lib/rubyapp/elements/input.css.haml +5 -0
  43. data/lib/rubyapp/elements/input.html.haml +2 -0
  44. data/lib/rubyapp/elements/input.js.haml +8 -0
  45. data/lib/rubyapp/elements/input.rb +55 -0
  46. data/lib/rubyapp/elements/link.css.haml +5 -0
  47. data/lib/rubyapp/elements/link.html.haml +3 -0
  48. data/lib/rubyapp/elements/link.rb +19 -0
  49. data/lib/rubyapp/elements/list.css.haml +33 -0
  50. data/lib/rubyapp/elements/list.html.haml +11 -0
  51. data/lib/rubyapp/elements/list.js.haml +9 -0
  52. data/lib/rubyapp/elements/list.rb +60 -0
  53. data/lib/rubyapp/elements/mobile/ios/page.html.haml +36 -0
  54. data/lib/rubyapp/elements/mobile/ios/page.rb +29 -0
  55. data/lib/rubyapp/elements/navigation/breadcrumbs.css.haml +24 -0
  56. data/lib/rubyapp/elements/navigation/breadcrumbs.html.haml +16 -0
  57. data/lib/rubyapp/elements/navigation/breadcrumbs.js.haml +9 -0
  58. data/lib/rubyapp/elements/navigation/breadcrumbs.rb +49 -0
  59. data/lib/rubyapp/elements/navigation/page_link.css.haml +12 -0
  60. data/lib/rubyapp/elements/navigation/page_link.html.haml +8 -0
  61. data/lib/rubyapp/elements/navigation/page_link.js.haml +9 -0
  62. data/lib/rubyapp/elements/navigation/page_link.rb +56 -0
  63. data/lib/rubyapp/elements/navigation/page_menu.css.haml +36 -0
  64. data/lib/rubyapp/elements/navigation/page_menu.html.haml +11 -0
  65. data/lib/rubyapp/elements/navigation/page_menu.js.haml +9 -0
  66. data/lib/rubyapp/elements/navigation/page_menu.rb +57 -0
  67. data/lib/rubyapp/elements/page.css.haml +50 -0
  68. data/lib/rubyapp/elements/page.html.haml +30 -0
  69. data/lib/rubyapp/elements/page.js.haml +52 -0
  70. data/lib/rubyapp/elements/page.rb +60 -0
  71. data/lib/rubyapp/elements/pages/default_page.css.haml +4 -0
  72. data/lib/rubyapp/elements/pages/default_page.html.haml +5 -0
  73. data/lib/rubyapp/elements/pages/default_page.js.haml +4 -0
  74. data/lib/rubyapp/elements/pages/default_page.rb +33 -0
  75. data/lib/rubyapp/elements/pages/exception_page.css.haml +4 -0
  76. data/lib/rubyapp/elements/pages/exception_page.html.haml +3 -0
  77. data/lib/rubyapp/elements/pages/exception_page.rb +27 -0
  78. data/lib/rubyapp/elements/pages/test_pages/alphabet_list.html.haml +3 -0
  79. data/lib/rubyapp/elements/pages/test_pages/base_test_page.css.haml +17 -0
  80. data/lib/rubyapp/elements/pages/test_pages/base_test_page.html.haml +6 -0
  81. data/lib/rubyapp/elements/pages/test_pages/base_test_page.js.haml +4 -0
  82. data/lib/rubyapp/elements/pages/test_pages/base_test_page.rb +41 -0
  83. data/lib/rubyapp/elements/pages/test_pages/breadcrumbs_test_page.html.haml +4 -0
  84. data/lib/rubyapp/elements/pages/test_pages/breadcrumbs_test_page.rb +36 -0
  85. data/lib/rubyapp/elements/pages/test_pages/content_test_page.css.haml +5 -0
  86. data/lib/rubyapp/elements/pages/test_pages/content_test_page.html.haml +6 -0
  87. data/lib/rubyapp/elements/pages/test_pages/content_test_page.js.haml +4 -0
  88. data/lib/rubyapp/elements/pages/test_pages/content_test_page.rb +40 -0
  89. data/lib/rubyapp/elements/pages/test_pages/default_test_page.html.haml +3 -0
  90. data/lib/rubyapp/elements/pages/test_pages/default_test_page.rb +26 -0
  91. data/lib/rubyapp/elements/pages/test_pages/exception_content.html.haml +8 -0
  92. data/lib/rubyapp/elements/pages/test_pages/exception_test_page.css.haml +9 -0
  93. data/lib/rubyapp/elements/pages/test_pages/exception_test_page.html.haml +21 -0
  94. data/lib/rubyapp/elements/pages/test_pages/exception_test_page.rb +65 -0
  95. data/lib/rubyapp/elements/pages/test_pages/input_test_page.css.haml +5 -0
  96. data/lib/rubyapp/elements/pages/test_pages/input_test_page.html.haml +7 -0
  97. data/lib/rubyapp/elements/pages/test_pages/input_test_page.js.haml +4 -0
  98. data/lib/rubyapp/elements/pages/test_pages/input_test_page.rb +40 -0
  99. data/lib/rubyapp/elements/pages/test_pages/list_test_page.css.haml +5 -0
  100. data/lib/rubyapp/elements/pages/test_pages/list_test_page.html.haml +7 -0
  101. data/lib/rubyapp/elements/pages/test_pages/list_test_page.js.haml +4 -0
  102. data/lib/rubyapp/elements/pages/test_pages/list_test_page.rb +56 -0
  103. data/lib/rubyapp/mixins/duration.rb +18 -0
  104. data/lib/rubyapp/mixins/render.rb +69 -0
  105. data/lib/rubyapp/mixins/route.rb +40 -0
  106. data/lib/rubyapp/mixins/template.rb +38 -0
  107. data/lib/rubyapp/mixins/translate.rb +47 -0
  108. data/lib/rubyapp/rack/duration.rb +32 -0
  109. data/lib/rubyapp/rack/locale.rb +32 -0
  110. data/lib/rubyapp/rack/logger.rb +30 -0
  111. data/lib/rubyapp/rack/route.rb +97 -0
  112. data/lib/rubyapp/rack/session.rb +32 -0
  113. data/lib/rubyapp/resources/application.manifest +0 -0
  114. data/lib/rubyapp/resources/favicon.ico +0 -0
  115. data/lib/rubyapp/resources/mobile/ios/icon.png +0 -0
  116. data/lib/rubyapp/resources/mobile/ios/icon.psd +0 -0
  117. data/lib/rubyapp/resources/mobile/ios/start.png +0 -0
  118. data/lib/rubyapp/resources/mobile/ios/start.psd +0 -0
  119. data/lib/rubyapp/session.rb +44 -0
  120. data/lib/rubyapp/template/Gemfile +3 -0
  121. data/lib/rubyapp/template/Rakefile +25 -0
  122. data/lib/rubyapp/template/config.ru +22 -0
  123. data/lib/rubyapp/template/elements/pages/default_page.css.haml +13 -0
  124. data/lib/rubyapp/template/elements/pages/default_page.html.haml +6 -0
  125. data/lib/rubyapp/template/elements/pages/default_page.rb +22 -0
  126. data/lib/rubyapp/template/resources/application.manifest +0 -0
  127. data/lib/rubyapp/template/resources/favicon.ico +0 -0
  128. data/lib/rubyapp/template/resources/mobile/ios/icon.png +0 -0
  129. data/lib/rubyapp/template/resources/mobile/ios/start.png +0 -0
  130. data/lib/rubyapp/template/session.rb +17 -0
  131. data/lib/rubyapp/template/translations/en.yml +5 -0
  132. data/lib/rubyapp/translations/ar.yml +46 -0
  133. data/lib/rubyapp/translations/bg.yml +46 -0
  134. data/lib/rubyapp/translations/ca.yml +46 -0
  135. data/lib/rubyapp/translations/cs.yml +46 -0
  136. data/lib/rubyapp/translations/da.yml +46 -0
  137. data/lib/rubyapp/translations/de.yml +46 -0
  138. data/lib/rubyapp/translations/el.yml +46 -0
  139. data/lib/rubyapp/translations/en.bak +44 -0
  140. data/lib/rubyapp/translations/en.yml +48 -0
  141. data/lib/rubyapp/translations/es.yml +46 -0
  142. data/lib/rubyapp/translations/et.yml +46 -0
  143. data/lib/rubyapp/translations/fa.yml +46 -0
  144. data/lib/rubyapp/translations/fi.yml +46 -0
  145. data/lib/rubyapp/translations/fr.yml +46 -0
  146. data/lib/rubyapp/translations/gl.yml +46 -0
  147. data/lib/rubyapp/translations/hi.yml +46 -0
  148. data/lib/rubyapp/translations/hr.yml +46 -0
  149. data/lib/rubyapp/translations/ht.yml +46 -0
  150. data/lib/rubyapp/translations/hu.yml +46 -0
  151. data/lib/rubyapp/translations/id.yml +46 -0
  152. data/lib/rubyapp/translations/it.yml +46 -0
  153. data/lib/rubyapp/translations/iw.yml +46 -0
  154. data/lib/rubyapp/translations/ja.yml +46 -0
  155. data/lib/rubyapp/translations/ko.yml +46 -0
  156. data/lib/rubyapp/translations/lt.yml +46 -0
  157. data/lib/rubyapp/translations/lv.yml +46 -0
  158. data/lib/rubyapp/translations/mt.yml +46 -0
  159. data/lib/rubyapp/translations/nl.yml +46 -0
  160. data/lib/rubyapp/translations/no.yml +47 -0
  161. data/lib/rubyapp/translations/pl.yml +46 -0
  162. data/lib/rubyapp/translations/pt-PT.yml +46 -0
  163. data/lib/rubyapp/translations/ro.yml +46 -0
  164. data/lib/rubyapp/translations/ru.yml +46 -0
  165. data/lib/rubyapp/translations/sk.yml +46 -0
  166. data/lib/rubyapp/translations/sl.yml +46 -0
  167. data/lib/rubyapp/translations/sq.yml +46 -0
  168. data/lib/rubyapp/translations/sr.yml +46 -0
  169. data/lib/rubyapp/translations/sv.yml +46 -0
  170. data/lib/rubyapp/translations/th.yml +46 -0
  171. data/lib/rubyapp/translations/tl.yml +46 -0
  172. data/lib/rubyapp/translations/tr.yml +46 -0
  173. data/lib/rubyapp/translations/uk.yml +46 -0
  174. data/lib/rubyapp/translations/vi.yml +46 -0
  175. data/lib/rubyapp/translations/zh-CN.yml +46 -0
  176. data/lib/rubyapp/translations/zh-TW.yml +46 -0
  177. data/lib/rubyapp/translations/zh.yml +46 -0
  178. data/lib/rubyapp/version.rb +3 -0
  179. data/rubyapp.gemspec +36 -0
  180. data/spec/element_spec.rb +20 -0
  181. data/spec/mixins/duration_spec.rb +17 -0
  182. data/spec/mixins/render_spec.rb +190 -0
  183. data/spec/mixins/route_spec.rb +60 -0
  184. data/spec/mixins/template_spec.rb +78 -0
  185. data/spec/mixins/test_a.css.haml +3 -0
  186. data/spec/mixins/test_a.html.haml +3 -0
  187. data/spec/mixins/test_a.js.haml +3 -0
  188. data/spec/mixins/test_b.css.haml +4 -0
  189. data/spec/mixins/test_b.html.haml +3 -0
  190. data/spec/mixins/test_b.js.haml +4 -0
  191. data/spec/mixins/test_c.css.haml +4 -0
  192. data/spec/mixins/test_c.html.haml +2 -0
  193. data/spec/mixins/test_c.js.haml +4 -0
  194. data/spec/mixins/test_e.html.haml +2 -0
  195. data/spec/mixins/test_f.html.haml +2 -0
  196. data/spec/mixins/test_g.css.haml +4 -0
  197. metadata +540 -0
@@ -0,0 +1,190 @@
1
+ require 'rubyapp/mixins/render'
2
+
3
+ describe RubyApp::Mixins::Render do
4
+
5
+ before(:all) do
6
+
7
+ class TestA
8
+ extend RubyApp::Mixins::Render
9
+ include RubyApp::Mixins::Render
10
+ template_path(__FILE__)
11
+ end
12
+
13
+ @instance_a = TestA.new
14
+
15
+ class TestB < TestA
16
+ template_path(__FILE__)
17
+ end
18
+
19
+ @instance_b = TestB.new
20
+
21
+ class TestC < TestA
22
+ template_path(__FILE__)
23
+ exclude_parent_template(:html)
24
+ end
25
+
26
+ @instance_c = TestC.new
27
+
28
+ class TestD < TestC
29
+ template_path(__FILE__)
30
+ end
31
+
32
+ @instance_d = TestD.new
33
+
34
+ class TestE
35
+ extend RubyApp::Mixins::Render
36
+ include RubyApp::Mixins::Render
37
+ template_path(__FILE__)
38
+ end
39
+
40
+ @instance_e = TestE.new
41
+
42
+ class TestF < TestE
43
+ template_path(__FILE__)
44
+ end
45
+
46
+ @instance_f = TestF.new
47
+
48
+ class TestG < TestB
49
+ template_path(__FILE__)
50
+ end
51
+
52
+ end
53
+
54
+ describe 'positive' do
55
+
56
+ describe 'render a class' do
57
+
58
+ specify { TestA.render(:html).should include('<!-- TestA -->') }
59
+ specify { TestA.render(:html).scan(/TestA/).length.should == 1 }
60
+ specify { TestA.render(:css).should include('/* TestA */') }
61
+ specify { TestA.render(:css).scan(/TestA/).length.should == 1 }
62
+ specify { TestA.render(:js).should include('// TestA') }
63
+ specify { TestA.render(:js).scan(/TestA/).length.should == 1 }
64
+
65
+ describe 'render an including all derived class' do
66
+
67
+ specify { TestB.render(:html).should include('<!-- TestA -->') }
68
+ specify { TestB.render(:html).should include('<!-- TestB -->') }
69
+ specify { TestB.render(:css).should include('/* TestA */') }
70
+ specify { TestB.render(:css).should include('/* TestB */') }
71
+ specify { TestB.render(:js).should include('// TestA') }
72
+ specify { TestB.render(:js).should include('// TestB') }
73
+
74
+ specify { TestF.render(:html).scan(/TestF/).length.should == 1 }
75
+ specify { TestF.render(:html).scan(/TestF/).length.should == 1 }
76
+ specify { TestF.render(:html).scan(/TestF/).length.should == 1 }
77
+
78
+ end
79
+
80
+ describe 'render an including some derived class' do
81
+
82
+ specify { TestC.render(:html).should include('<!-- TestC -->') }
83
+ specify { TestC.render(:css).should include('/* TestA */') }
84
+ specify { TestC.render(:css).should include('/* TestC */') }
85
+ specify { TestC.render(:js).should include('// TestA') }
86
+ specify { TestC.render(:js).should include('// TestC') }
87
+
88
+ end
89
+
90
+ describe 'render a derived class with no templates' do
91
+
92
+ specify { TestD.render(:html).should include('<!-- TestC -->') }
93
+ specify { TestD.render(:css).should include('/* TestA */') }
94
+ specify { TestD.render(:css).should include('/* TestC */') }
95
+ specify { TestD.render(:js).should include('// TestA') }
96
+ specify { TestD.render(:js).should include('// TestC') }
97
+
98
+ end
99
+
100
+ describe 'render a derived class in multiple threads' do
101
+
102
+ specify { TestG.render(:css).should include('/* TestA */') }
103
+ specify { TestG.render(:css).should include('/* TestB */') }
104
+ specify { TestG.render(:css).should include('/* TestG */') }
105
+
106
+ end
107
+
108
+ end
109
+
110
+ describe 'render an instance' do
111
+
112
+ specify { @instance_a.render(:html).should include('<!-- TestA -->') }
113
+ specify { @instance_a.render(:html).scan(/TestA/).length.should == 1 }
114
+ specify { @instance_a.render(:css).should include('/* TestA */') }
115
+ specify { @instance_a.render(:css).scan(/TestA/).length.should == 1 }
116
+ specify { @instance_a.render(:js).should include('// TestA') }
117
+ specify { @instance_a.render(:js).scan(/TestA/).length.should == 1 }
118
+
119
+ describe 'render an include all derived instance' do
120
+
121
+ specify { @instance_b.render(:html).should include('<!-- TestA -->') }
122
+ specify { @instance_b.render(:html).should include('<!-- TestB -->') }
123
+ specify { @instance_b.render(:css).should include('/* TestA */') }
124
+ specify { @instance_b.render(:css).should include('/* TestB */') }
125
+ specify { @instance_b.render(:js).should include('// TestA') }
126
+ specify { @instance_b.render(:js).should include('// TestB') }
127
+
128
+ specify { @instance_f.render(:html).scan(/TestF/).length.should == 1 }
129
+ specify { @instance_f.render(:html).scan(/TestF/).length.should == 1 }
130
+ specify { @instance_f.render(:html).scan(/TestF/).length.should == 1 }
131
+
132
+ end
133
+
134
+ describe 'render an include some derived instance' do
135
+
136
+ specify { @instance_c.render(:html).should include('<!-- TestC -->') }
137
+ specify { @instance_c.render(:css).should include('/* TestA */') }
138
+ specify { @instance_c.render(:css).should include('/* TestC */') }
139
+ specify { @instance_c.render(:js).should include('// TestA') }
140
+ specify { @instance_c.render(:js).should include('// TestC') }
141
+
142
+ end
143
+
144
+ describe 'render a derived instance with no templates' do
145
+
146
+ specify { @instance_d.render(:html).should include('<!-- TestC -->') }
147
+ specify { @instance_d.render(:css).should include('/* TestA */') }
148
+ specify { @instance_d.render(:css).should include('/* TestC */') }
149
+ specify { @instance_d.render(:js).should include('// TestA') }
150
+ specify { @instance_d.render(:js).should include('// TestC') }
151
+
152
+ end
153
+
154
+ end
155
+
156
+ end
157
+
158
+ describe 'negative' do
159
+
160
+ describe 'should not render a class' do
161
+
162
+ # specify { lambda { TestA.render(:htm) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
163
+ # specify { lambda { TestA.render(:scss) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
164
+ # specify { lambda { TestA.render(:javascript) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
165
+
166
+ describe 'should not render an include some derived class' do
167
+
168
+ specify { TestC.render(:html).should_not include('<!-- TestA -->') }
169
+
170
+ end
171
+
172
+ end
173
+
174
+ describe 'should not render an instance' do
175
+
176
+ # specify { lambda { @instance_a.render(:htm) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
177
+ # specify { lambda { @instance_a.render(:scss) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
178
+ # specify { lambda { @instance_a.render(:javascript) }.should raise_error(RubyApp::Exceptions::TemplateNotFoundException) }
179
+
180
+ describe 'should not render an include some derived instance' do
181
+
182
+ specify { @instance_c.render(:html).should_not include('<!-- TestA -->') }
183
+
184
+ end
185
+
186
+ end
187
+
188
+ end
189
+
190
+ end
@@ -0,0 +1,60 @@
1
+ require 'rubyapp/mixins/route'
2
+
3
+ describe RubyApp::Mixins::Route do
4
+
5
+ before(:all) do
6
+ Object.extend RubyApp::Mixins::Route
7
+ end
8
+
9
+ before(:each) do
10
+ @value = false
11
+ @parameters = nil
12
+ Object.clear_routes
13
+ end
14
+
15
+ describe 'positive' do
16
+
17
+ it "should match a blank pattern on GET" do
18
+ Object.route(RubyApp::Mixins::Route::GET, /^$/) { @value = true }
19
+ @value.should be_false
20
+ Object.do_route(RubyApp::Mixins::Route::GET, '')
21
+ @value.should be_true
22
+ end
23
+
24
+ it "should match a pattern on GET" do
25
+ Object.route(RubyApp::Mixins::Route::GET, /^pattern$/) { @value = true }
26
+ @value.should be_false
27
+ Object.do_route(RubyApp::Mixins::Route::GET, 'pattern')
28
+ @value.should be_true
29
+ end
30
+
31
+ it "should match a pattern on POST" do
32
+ Object.route(RubyApp::Mixins::Route::POST, /^pattern$/) { @value = true }
33
+ @value.should be_false
34
+ Object.do_route(RubyApp::Mixins::Route::POST, 'pattern')
35
+ @value.should be_true
36
+ end
37
+
38
+ it "should match a pattern on GET with a parameter" do
39
+ Object.route(RubyApp::Mixins::Route::GET, /^pattern (.*)$/) { |method, path, parameter| @value, @parameters = true, parameter }
40
+ @value.should be_false
41
+ @parameter.should be_nil
42
+ Object.do_route(RubyApp::Mixins::Route::GET, 'pattern parameter')
43
+ @value.should be_true
44
+ @parameters.should == 'parameter'
45
+ end
46
+
47
+ end
48
+
49
+ describe 'negative' do
50
+
51
+ it "should not match a not matching pattern on GET" do
52
+ Object.route(RubyApp::Mixins::Route::GET, /^pattern$/) { @value = true }
53
+ @value.should be_false
54
+ Object.do_route(RubyApp::Mixins::Route::GET, 'not matching pattern')
55
+ @value.should be_false
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -0,0 +1,78 @@
1
+ require 'rubyapp/mixins/template'
2
+
3
+ describe RubyApp::Mixins::Template do
4
+
5
+ before(:all) do
6
+
7
+ class TestA
8
+ extend RubyApp::Mixins::Template
9
+ template_path(__FILE__)
10
+ end
11
+
12
+ class TestB < TestA
13
+ template_path(__FILE__)
14
+ end
15
+
16
+ class TestC < TestA
17
+ template_path(__FILE__)
18
+ exclude_parent_template(:html)
19
+ end
20
+
21
+ class TestD < TestC
22
+ template_path(__FILE__)
23
+ end
24
+
25
+ end
26
+
27
+ describe 'positive' do
28
+
29
+ specify { TestA.get_templates(:html).should include File.join(File.dirname(__FILE__), %w[test_a.html.haml]) }
30
+ specify { TestA.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_a.css.haml]) }
31
+ specify { TestA.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_a.js.haml]) }
32
+
33
+ describe 'include all parent' do
34
+
35
+ specify { TestB.get_templates(:html).should include File.join(File.dirname(__FILE__), %w[test_a.html.haml]) }
36
+ specify { TestB.get_templates(:html).should include File.join(File.dirname(__FILE__), %w[test_b.html.haml]) }
37
+ specify { TestB.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_a.css.haml]) }
38
+ specify { TestB.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_b.css.haml]) }
39
+ specify { TestB.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_a.js.haml]) }
40
+ specify { TestB.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_b.js.haml]) }
41
+
42
+ end
43
+
44
+ describe 'include some parents' do
45
+
46
+ specify { TestC.get_templates(:html).should include File.join(File.dirname(__FILE__), %w[test_c.html.haml]) }
47
+ specify { TestC.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_a.css.haml]) }
48
+ specify { TestC.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_c.css.haml]) }
49
+ specify { TestC.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_a.js.haml]) }
50
+ specify { TestC.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_c.js.haml]) }
51
+
52
+ end
53
+
54
+ describe 'with no templates' do
55
+
56
+ specify { TestD.get_templates(:html).should include File.join(File.dirname(__FILE__), %w[test_c.html.haml]) }
57
+ specify { TestD.get_templates(:css).should include File.join(File.dirname(__FILE__), %w[test_c.css.haml]) }
58
+ specify { TestD.get_templates(:js).should include File.join(File.dirname(__FILE__), %w[test_c.js.haml]) }
59
+
60
+ end
61
+
62
+ end
63
+
64
+ describe 'negative' do
65
+
66
+ specify { TestA.get_templates(:htm).should_not include File.join(File.dirname(__FILE__), %w[test_a.htm.haml]) }
67
+ specify { TestA.get_templates(:scss).should_not include File.join(File.dirname(__FILE__), %w[test_a.scss.haml]) }
68
+ specify { TestA.get_templates(:javascript).should_not include File.join(File.dirname(__FILE__), %w[test_a.javascript.haml]) }
69
+
70
+ describe 'include some parents' do
71
+
72
+ specify { TestC.get_templates(:html).should_not include File.join(File.dirname(__FILE__), %w[test_a.html.haml]) }
73
+
74
+ end
75
+
76
+ end
77
+
78
+ end
@@ -0,0 +1,3 @@
1
+ :plain
2
+ /* TestA */
3
+ = yield :next_1
@@ -0,0 +1,3 @@
1
+ / TestA
2
+ = yield :next_1
3
+ = yield
@@ -0,0 +1,3 @@
1
+ :plain
2
+ // TestA
3
+ = yield :next_1
@@ -0,0 +1,4 @@
1
+ - content_for(:next_1) do
2
+ :plain
3
+ /* TestB */
4
+ = yield :next_2
@@ -0,0 +1,3 @@
1
+ - content_for(:next_1) do
2
+ / TestB
3
+ = yield :next_2
@@ -0,0 +1,4 @@
1
+ - content_for(:next_1) do
2
+ :plain
3
+ // TestB
4
+ = yield :next_2
@@ -0,0 +1,4 @@
1
+ - content_for(:next_1) do
2
+ :plain
3
+ /* TestC */
4
+ = yield :next_2
@@ -0,0 +1,2 @@
1
+ / TestC
2
+ = yield :next_3
@@ -0,0 +1,4 @@
1
+ - content_for(:next_1) do
2
+ :plain
3
+ // TestC
4
+ = yield :next_2
@@ -0,0 +1,2 @@
1
+ / TestE
2
+ = yield
@@ -0,0 +1,2 @@
1
+ / TestF
2
+ = yield
@@ -0,0 +1,4 @@
1
+ - content_for(:next_2) do
2
+ :plain
3
+ /* TestG */
4
+ = yield :next_3
metadata ADDED
@@ -0,0 +1,540 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: _rubyapp
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Frank G. Ficnar
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-17 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - "="
26
+ - !ruby/object:Gem::Version
27
+ hash: 7
28
+ segments:
29
+ - 0
30
+ - 4
31
+ - 4
32
+ version: 0.4.4
33
+ requirement: *id001
34
+ type: :runtime
35
+ name: babelphish
36
+ prerelease: false
37
+ - !ruby/object:Gem::Dependency
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - "="
42
+ - !ruby/object:Gem::Version
43
+ hash: 21
44
+ segments:
45
+ - 1
46
+ - 0
47
+ - 1
48
+ version: 1.0.1
49
+ requirement: *id002
50
+ type: :runtime
51
+ name: BlueCloth
52
+ prerelease: false
53
+ - !ruby/object:Gem::Dependency
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - "="
58
+ - !ruby/object:Gem::Version
59
+ hash: 5
60
+ segments:
61
+ - 0
62
+ - 7
63
+ version: "0.7"
64
+ requirement: *id003
65
+ type: :runtime
66
+ name: fileutils
67
+ prerelease: false
68
+ - !ruby/object:Gem::Dependency
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - "="
73
+ - !ruby/object:Gem::Version
74
+ hash: 53
75
+ segments:
76
+ - 3
77
+ - 0
78
+ - 25
79
+ version: 3.0.25
80
+ requirement: *id004
81
+ type: :runtime
82
+ name: haml
83
+ prerelease: false
84
+ - !ruby/object:Gem::Dependency
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - "="
89
+ - !ruby/object:Gem::Version
90
+ hash: 47
91
+ segments:
92
+ - 1
93
+ - 16
94
+ version: "1.16"
95
+ requirement: *id005
96
+ type: :runtime
97
+ name: mime-types
98
+ prerelease: false
99
+ - !ruby/object:Gem::Dependency
100
+ version_requirements: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - "="
104
+ - !ruby/object:Gem::Version
105
+ hash: 29
106
+ segments:
107
+ - 0
108
+ - 4
109
+ - 9
110
+ version: 0.4.9
111
+ requirement: *id006
112
+ type: :runtime
113
+ name: r18n-core
114
+ prerelease: false
115
+ - !ruby/object:Gem::Dependency
116
+ version_requirements: &id007 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - "="
120
+ - !ruby/object:Gem::Version
121
+ hash: 27
122
+ segments:
123
+ - 1
124
+ - 2
125
+ - 2
126
+ version: 1.2.2
127
+ requirement: *id007
128
+ type: :runtime
129
+ name: rack
130
+ prerelease: false
131
+ - !ruby/object:Gem::Dependency
132
+ version_requirements: &id008 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - "="
136
+ - !ruby/object:Gem::Version
137
+ hash: 63
138
+ segments:
139
+ - 0
140
+ - 9
141
+ - 2
142
+ version: 0.9.2
143
+ requirement: *id008
144
+ type: :runtime
145
+ name: rake
146
+ prerelease: false
147
+ - !ruby/object:Gem::Dependency
148
+ version_requirements: &id009 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - "="
152
+ - !ruby/object:Gem::Version
153
+ hash: 23
154
+ segments:
155
+ - 1
156
+ - 0
157
+ - 0
158
+ version: 1.0.0
159
+ requirement: *id009
160
+ type: :runtime
161
+ name: ruby-event
162
+ prerelease: false
163
+ - !ruby/object:Gem::Dependency
164
+ version_requirements: &id010 !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - "="
168
+ - !ruby/object:Gem::Version
169
+ hash: 27
170
+ segments:
171
+ - 1
172
+ - 0
173
+ - 6
174
+ version: 1.0.6
175
+ requirement: *id010
176
+ type: :runtime
177
+ name: term-ansicolor
178
+ prerelease: false
179
+ - !ruby/object:Gem::Dependency
180
+ version_requirements: &id011 !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - "="
184
+ - !ruby/object:Gem::Version
185
+ hash: 59
186
+ segments:
187
+ - 0
188
+ - 8
189
+ - 2
190
+ version: 0.8.2
191
+ requirement: *id011
192
+ type: :runtime
193
+ name: yajl-ruby
194
+ prerelease: false
195
+ - !ruby/object:Gem::Dependency
196
+ version_requirements: &id012 !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - "="
200
+ - !ruby/object:Gem::Version
201
+ hash: 23
202
+ segments:
203
+ - 1
204
+ - 0
205
+ - 0
206
+ version: 1.0.0
207
+ requirement: *id012
208
+ type: :development
209
+ name: capybara
210
+ prerelease: false
211
+ - !ruby/object:Gem::Dependency
212
+ version_requirements: &id013 !ruby/object:Gem::Requirement
213
+ none: false
214
+ requirements:
215
+ - - "="
216
+ - !ruby/object:Gem::Version
217
+ hash: 23
218
+ segments:
219
+ - 1
220
+ - 0
221
+ - 0
222
+ version: 1.0.0
223
+ requirement: *id013
224
+ type: :development
225
+ name: cucumber
226
+ prerelease: false
227
+ - !ruby/object:Gem::Dependency
228
+ version_requirements: &id014 !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - "="
232
+ - !ruby/object:Gem::Version
233
+ hash: 29
234
+ segments:
235
+ - 0
236
+ - 3
237
+ - 7
238
+ version: 0.3.7
239
+ requirement: *id014
240
+ type: :development
241
+ name: launchy
242
+ prerelease: false
243
+ - !ruby/object:Gem::Dependency
244
+ version_requirements: &id015 !ruby/object:Gem::Requirement
245
+ none: false
246
+ requirements:
247
+ - - "="
248
+ - !ruby/object:Gem::Version
249
+ hash: 23
250
+ segments:
251
+ - 2
252
+ - 6
253
+ - 0
254
+ version: 2.6.0
255
+ requirement: *id015
256
+ type: :development
257
+ name: rspec
258
+ prerelease: false
259
+ - !ruby/object:Gem::Dependency
260
+ version_requirements: &id016 !ruby/object:Gem::Requirement
261
+ none: false
262
+ requirements:
263
+ - - "="
264
+ - !ruby/object:Gem::Version
265
+ hash: 55
266
+ segments:
267
+ - 0
268
+ - 30
269
+ version: "0.30"
270
+ requirement: *id016
271
+ type: :development
272
+ name: ya2yaml
273
+ prerelease: false
274
+ description: A web application framework in Ruby
275
+ email:
276
+ - frank.ficnar@gmail.com
277
+ executables:
278
+ - rubyapp
279
+ extensions: []
280
+
281
+ extra_rdoc_files: []
282
+
283
+ files:
284
+ - .gitignore
285
+ - .rvmrc
286
+ - Gemfile
287
+ - README.md
288
+ - Rakefile
289
+ - bin/rubyapp
290
+ - features/breadcrumbs.feature
291
+ - features/content.feature
292
+ - features/default.feature
293
+ - features/exception.feature
294
+ - features/input.feature
295
+ - features/list.feature
296
+ - features/step_definitions/default_macros.rb
297
+ - features/step_definitions/default_steps.rb
298
+ - features/support/env.rb
299
+ - lib/rubyapp.rb
300
+ - lib/rubyapp/config.ru
301
+ - lib/rubyapp/element.css.haml
302
+ - lib/rubyapp/element.html.haml
303
+ - lib/rubyapp/element.js.haml
304
+ - lib/rubyapp/element.rb
305
+ - lib/rubyapp/elements/button.css.haml
306
+ - lib/rubyapp/elements/button.html.haml
307
+ - lib/rubyapp/elements/button.rb
308
+ - lib/rubyapp/elements/click.js.haml
309
+ - lib/rubyapp/elements/click.rb
310
+ - lib/rubyapp/elements/content.css.haml
311
+ - lib/rubyapp/elements/content.html.haml
312
+ - lib/rubyapp/elements/content.js.haml
313
+ - lib/rubyapp/elements/content.rb
314
+ - lib/rubyapp/elements/dialog.css.haml
315
+ - lib/rubyapp/elements/dialog.html.haml
316
+ - lib/rubyapp/elements/dialog.rb
317
+ - lib/rubyapp/elements/dialogs/exception_dialog.css.haml
318
+ - lib/rubyapp/elements/dialogs/exception_dialog.html.haml
319
+ - lib/rubyapp/elements/dialogs/exception_dialog.rb
320
+ - lib/rubyapp/elements/dialogs/message_dialog.html.haml
321
+ - lib/rubyapp/elements/dialogs/message_dialog.rb
322
+ - lib/rubyapp/elements/exception_element.css.haml
323
+ - lib/rubyapp/elements/exception_element.html.haml
324
+ - lib/rubyapp/elements/exception_element.rb
325
+ - lib/rubyapp/elements/input.css.haml
326
+ - lib/rubyapp/elements/input.html.haml
327
+ - lib/rubyapp/elements/input.js.haml
328
+ - lib/rubyapp/elements/input.rb
329
+ - lib/rubyapp/elements/link.css.haml
330
+ - lib/rubyapp/elements/link.html.haml
331
+ - lib/rubyapp/elements/link.rb
332
+ - lib/rubyapp/elements/list.css.haml
333
+ - lib/rubyapp/elements/list.html.haml
334
+ - lib/rubyapp/elements/list.js.haml
335
+ - lib/rubyapp/elements/list.rb
336
+ - lib/rubyapp/elements/mobile/ios/page.html.haml
337
+ - lib/rubyapp/elements/mobile/ios/page.rb
338
+ - lib/rubyapp/elements/navigation/breadcrumbs.css.haml
339
+ - lib/rubyapp/elements/navigation/breadcrumbs.html.haml
340
+ - lib/rubyapp/elements/navigation/breadcrumbs.js.haml
341
+ - lib/rubyapp/elements/navigation/breadcrumbs.rb
342
+ - lib/rubyapp/elements/navigation/page_link.css.haml
343
+ - lib/rubyapp/elements/navigation/page_link.html.haml
344
+ - lib/rubyapp/elements/navigation/page_link.js.haml
345
+ - lib/rubyapp/elements/navigation/page_link.rb
346
+ - lib/rubyapp/elements/navigation/page_menu.css.haml
347
+ - lib/rubyapp/elements/navigation/page_menu.html.haml
348
+ - lib/rubyapp/elements/navigation/page_menu.js.haml
349
+ - lib/rubyapp/elements/navigation/page_menu.rb
350
+ - lib/rubyapp/elements/page.css.haml
351
+ - lib/rubyapp/elements/page.html.haml
352
+ - lib/rubyapp/elements/page.js.haml
353
+ - lib/rubyapp/elements/page.rb
354
+ - lib/rubyapp/elements/pages/default_page.css.haml
355
+ - lib/rubyapp/elements/pages/default_page.html.haml
356
+ - lib/rubyapp/elements/pages/default_page.js.haml
357
+ - lib/rubyapp/elements/pages/default_page.rb
358
+ - lib/rubyapp/elements/pages/exception_page.css.haml
359
+ - lib/rubyapp/elements/pages/exception_page.html.haml
360
+ - lib/rubyapp/elements/pages/exception_page.rb
361
+ - lib/rubyapp/elements/pages/test_pages/alphabet_list.html.haml
362
+ - lib/rubyapp/elements/pages/test_pages/base_test_page.css.haml
363
+ - lib/rubyapp/elements/pages/test_pages/base_test_page.html.haml
364
+ - lib/rubyapp/elements/pages/test_pages/base_test_page.js.haml
365
+ - lib/rubyapp/elements/pages/test_pages/base_test_page.rb
366
+ - lib/rubyapp/elements/pages/test_pages/breadcrumbs_test_page.html.haml
367
+ - lib/rubyapp/elements/pages/test_pages/breadcrumbs_test_page.rb
368
+ - lib/rubyapp/elements/pages/test_pages/content_test_page.css.haml
369
+ - lib/rubyapp/elements/pages/test_pages/content_test_page.html.haml
370
+ - lib/rubyapp/elements/pages/test_pages/content_test_page.js.haml
371
+ - lib/rubyapp/elements/pages/test_pages/content_test_page.rb
372
+ - lib/rubyapp/elements/pages/test_pages/default_test_page.html.haml
373
+ - lib/rubyapp/elements/pages/test_pages/default_test_page.rb
374
+ - lib/rubyapp/elements/pages/test_pages/exception_content.html.haml
375
+ - lib/rubyapp/elements/pages/test_pages/exception_test_page.css.haml
376
+ - lib/rubyapp/elements/pages/test_pages/exception_test_page.html.haml
377
+ - lib/rubyapp/elements/pages/test_pages/exception_test_page.rb
378
+ - lib/rubyapp/elements/pages/test_pages/input_test_page.css.haml
379
+ - lib/rubyapp/elements/pages/test_pages/input_test_page.html.haml
380
+ - lib/rubyapp/elements/pages/test_pages/input_test_page.js.haml
381
+ - lib/rubyapp/elements/pages/test_pages/input_test_page.rb
382
+ - lib/rubyapp/elements/pages/test_pages/list_test_page.css.haml
383
+ - lib/rubyapp/elements/pages/test_pages/list_test_page.html.haml
384
+ - lib/rubyapp/elements/pages/test_pages/list_test_page.js.haml
385
+ - lib/rubyapp/elements/pages/test_pages/list_test_page.rb
386
+ - lib/rubyapp/mixins/duration.rb
387
+ - lib/rubyapp/mixins/render.rb
388
+ - lib/rubyapp/mixins/route.rb
389
+ - lib/rubyapp/mixins/template.rb
390
+ - lib/rubyapp/mixins/translate.rb
391
+ - lib/rubyapp/rack/duration.rb
392
+ - lib/rubyapp/rack/locale.rb
393
+ - lib/rubyapp/rack/logger.rb
394
+ - lib/rubyapp/rack/route.rb
395
+ - lib/rubyapp/rack/session.rb
396
+ - lib/rubyapp/resources/application.manifest
397
+ - lib/rubyapp/resources/favicon.ico
398
+ - lib/rubyapp/resources/mobile/ios/icon.png
399
+ - lib/rubyapp/resources/mobile/ios/icon.psd
400
+ - lib/rubyapp/resources/mobile/ios/start.png
401
+ - lib/rubyapp/resources/mobile/ios/start.psd
402
+ - lib/rubyapp/session.rb
403
+ - lib/rubyapp/template/Gemfile
404
+ - lib/rubyapp/template/Rakefile
405
+ - lib/rubyapp/template/config.ru
406
+ - lib/rubyapp/template/elements/pages/default_page.css.haml
407
+ - lib/rubyapp/template/elements/pages/default_page.html.haml
408
+ - lib/rubyapp/template/elements/pages/default_page.rb
409
+ - lib/rubyapp/template/resources/application.manifest
410
+ - lib/rubyapp/template/resources/favicon.ico
411
+ - lib/rubyapp/template/resources/mobile/ios/icon.png
412
+ - lib/rubyapp/template/resources/mobile/ios/start.png
413
+ - lib/rubyapp/template/session.rb
414
+ - lib/rubyapp/template/translations/en.yml
415
+ - lib/rubyapp/translations/ar.yml
416
+ - lib/rubyapp/translations/bg.yml
417
+ - lib/rubyapp/translations/ca.yml
418
+ - lib/rubyapp/translations/cs.yml
419
+ - lib/rubyapp/translations/da.yml
420
+ - lib/rubyapp/translations/de.yml
421
+ - lib/rubyapp/translations/el.yml
422
+ - lib/rubyapp/translations/en.bak
423
+ - lib/rubyapp/translations/en.yml
424
+ - lib/rubyapp/translations/es.yml
425
+ - lib/rubyapp/translations/et.yml
426
+ - lib/rubyapp/translations/fa.yml
427
+ - lib/rubyapp/translations/fi.yml
428
+ - lib/rubyapp/translations/fr.yml
429
+ - lib/rubyapp/translations/gl.yml
430
+ - lib/rubyapp/translations/hi.yml
431
+ - lib/rubyapp/translations/hr.yml
432
+ - lib/rubyapp/translations/ht.yml
433
+ - lib/rubyapp/translations/hu.yml
434
+ - lib/rubyapp/translations/id.yml
435
+ - lib/rubyapp/translations/it.yml
436
+ - lib/rubyapp/translations/iw.yml
437
+ - lib/rubyapp/translations/ja.yml
438
+ - lib/rubyapp/translations/ko.yml
439
+ - lib/rubyapp/translations/lt.yml
440
+ - lib/rubyapp/translations/lv.yml
441
+ - lib/rubyapp/translations/mt.yml
442
+ - lib/rubyapp/translations/nl.yml
443
+ - lib/rubyapp/translations/no.yml
444
+ - lib/rubyapp/translations/pl.yml
445
+ - lib/rubyapp/translations/pt-PT.yml
446
+ - lib/rubyapp/translations/ro.yml
447
+ - lib/rubyapp/translations/ru.yml
448
+ - lib/rubyapp/translations/sk.yml
449
+ - lib/rubyapp/translations/sl.yml
450
+ - lib/rubyapp/translations/sq.yml
451
+ - lib/rubyapp/translations/sr.yml
452
+ - lib/rubyapp/translations/sv.yml
453
+ - lib/rubyapp/translations/th.yml
454
+ - lib/rubyapp/translations/tl.yml
455
+ - lib/rubyapp/translations/tr.yml
456
+ - lib/rubyapp/translations/uk.yml
457
+ - lib/rubyapp/translations/vi.yml
458
+ - lib/rubyapp/translations/zh-CN.yml
459
+ - lib/rubyapp/translations/zh-TW.yml
460
+ - lib/rubyapp/translations/zh.yml
461
+ - lib/rubyapp/version.rb
462
+ - rubyapp.gemspec
463
+ - spec/element_spec.rb
464
+ - spec/mixins/duration_spec.rb
465
+ - spec/mixins/render_spec.rb
466
+ - spec/mixins/route_spec.rb
467
+ - spec/mixins/template_spec.rb
468
+ - spec/mixins/test_a.css.haml
469
+ - spec/mixins/test_a.html.haml
470
+ - spec/mixins/test_a.js.haml
471
+ - spec/mixins/test_b.css.haml
472
+ - spec/mixins/test_b.html.haml
473
+ - spec/mixins/test_b.js.haml
474
+ - spec/mixins/test_c.css.haml
475
+ - spec/mixins/test_c.html.haml
476
+ - spec/mixins/test_c.js.haml
477
+ - spec/mixins/test_e.html.haml
478
+ - spec/mixins/test_f.html.haml
479
+ - spec/mixins/test_g.css.haml
480
+ has_rdoc: true
481
+ homepage: ""
482
+ licenses: []
483
+
484
+ post_install_message:
485
+ rdoc_options: []
486
+
487
+ require_paths:
488
+ - lib
489
+ required_ruby_version: !ruby/object:Gem::Requirement
490
+ none: false
491
+ requirements:
492
+ - - ">="
493
+ - !ruby/object:Gem::Version
494
+ hash: 3
495
+ segments:
496
+ - 0
497
+ version: "0"
498
+ required_rubygems_version: !ruby/object:Gem::Requirement
499
+ none: false
500
+ requirements:
501
+ - - ">="
502
+ - !ruby/object:Gem::Version
503
+ hash: 3
504
+ segments:
505
+ - 0
506
+ version: "0"
507
+ requirements: []
508
+
509
+ rubyforge_project:
510
+ rubygems_version: 1.3.7
511
+ signing_key:
512
+ specification_version: 3
513
+ summary: A web application framework in Ruby
514
+ test_files:
515
+ - features/breadcrumbs.feature
516
+ - features/content.feature
517
+ - features/default.feature
518
+ - features/exception.feature
519
+ - features/input.feature
520
+ - features/list.feature
521
+ - features/step_definitions/default_macros.rb
522
+ - features/step_definitions/default_steps.rb
523
+ - features/support/env.rb
524
+ - spec/element_spec.rb
525
+ - spec/mixins/duration_spec.rb
526
+ - spec/mixins/render_spec.rb
527
+ - spec/mixins/route_spec.rb
528
+ - spec/mixins/template_spec.rb
529
+ - spec/mixins/test_a.css.haml
530
+ - spec/mixins/test_a.html.haml
531
+ - spec/mixins/test_a.js.haml
532
+ - spec/mixins/test_b.css.haml
533
+ - spec/mixins/test_b.html.haml
534
+ - spec/mixins/test_b.js.haml
535
+ - spec/mixins/test_c.css.haml
536
+ - spec/mixins/test_c.html.haml
537
+ - spec/mixins/test_c.js.haml
538
+ - spec/mixins/test_e.html.haml
539
+ - spec/mixins/test_f.html.haml
540
+ - spec/mixins/test_g.css.haml