_rubyapp 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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