merb-core 0.9.2

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 (246) hide show
  1. data/LICENSE +20 -0
  2. data/README +21 -0
  3. data/Rakefile +285 -0
  4. data/TODO +0 -0
  5. data/bin/merb +8 -0
  6. data/bin/merb-specs +5 -0
  7. data/docs/bootloading.dox +57 -0
  8. data/docs/documentation_standards +40 -0
  9. data/docs/new_render_api +51 -0
  10. data/lib/merb-core.rb +304 -0
  11. data/lib/merb-core/autoload.rb +29 -0
  12. data/lib/merb-core/bootloader.rb +601 -0
  13. data/lib/merb-core/config.rb +284 -0
  14. data/lib/merb-core/constants.rb +43 -0
  15. data/lib/merb-core/controller/abstract_controller.rb +531 -0
  16. data/lib/merb-core/controller/exceptions.rb +257 -0
  17. data/lib/merb-core/controller/merb_controller.rb +214 -0
  18. data/lib/merb-core/controller/mime.rb +88 -0
  19. data/lib/merb-core/controller/mixins/controller.rb +262 -0
  20. data/lib/merb-core/controller/mixins/render.rb +324 -0
  21. data/lib/merb-core/controller/mixins/responder.rb +464 -0
  22. data/lib/merb-core/controller/template.rb +205 -0
  23. data/lib/merb-core/core_ext.rb +12 -0
  24. data/lib/merb-core/core_ext/class.rb +192 -0
  25. data/lib/merb-core/core_ext/hash.rb +422 -0
  26. data/lib/merb-core/core_ext/kernel.rb +304 -0
  27. data/lib/merb-core/core_ext/mash.rb +154 -0
  28. data/lib/merb-core/core_ext/object.rb +136 -0
  29. data/lib/merb-core/core_ext/object_space.rb +14 -0
  30. data/lib/merb-core/core_ext/rubygems.rb +28 -0
  31. data/lib/merb-core/core_ext/set.rb +41 -0
  32. data/lib/merb-core/core_ext/string.rb +69 -0
  33. data/lib/merb-core/dispatch/cookies.rb +92 -0
  34. data/lib/merb-core/dispatch/dispatcher.rb +233 -0
  35. data/lib/merb-core/dispatch/exceptions.html.erb +297 -0
  36. data/lib/merb-core/dispatch/request.rb +560 -0
  37. data/lib/merb-core/dispatch/router.rb +141 -0
  38. data/lib/merb-core/dispatch/router/behavior.rb +777 -0
  39. data/lib/merb-core/dispatch/router/cached_proc.rb +52 -0
  40. data/lib/merb-core/dispatch/router/route.rb +212 -0
  41. data/lib/merb-core/dispatch/session.rb +28 -0
  42. data/lib/merb-core/dispatch/session/cookie.rb +166 -0
  43. data/lib/merb-core/dispatch/session/memcached.rb +161 -0
  44. data/lib/merb-core/dispatch/session/memory.rb +234 -0
  45. data/lib/merb-core/gem_ext/erubis.rb +19 -0
  46. data/lib/merb-core/logger.rb +230 -0
  47. data/lib/merb-core/plugins.rb +25 -0
  48. data/lib/merb-core/rack.rb +15 -0
  49. data/lib/merb-core/rack/adapter.rb +42 -0
  50. data/lib/merb-core/rack/adapter/ebb.rb +22 -0
  51. data/lib/merb-core/rack/adapter/evented_mongrel.rb +24 -0
  52. data/lib/merb-core/rack/adapter/fcgi.rb +16 -0
  53. data/lib/merb-core/rack/adapter/irb.rb +108 -0
  54. data/lib/merb-core/rack/adapter/mongrel.rb +25 -0
  55. data/lib/merb-core/rack/adapter/runner.rb +27 -0
  56. data/lib/merb-core/rack/adapter/thin.rb +27 -0
  57. data/lib/merb-core/rack/adapter/webrick.rb +35 -0
  58. data/lib/merb-core/rack/application.rb +77 -0
  59. data/lib/merb-core/rack/handler/mongrel.rb +97 -0
  60. data/lib/merb-core/server.rb +184 -0
  61. data/lib/merb-core/test.rb +10 -0
  62. data/lib/merb-core/test/helpers.rb +9 -0
  63. data/lib/merb-core/test/helpers/controller_helper.rb +8 -0
  64. data/lib/merb-core/test/helpers/multipart_request_helper.rb +175 -0
  65. data/lib/merb-core/test/helpers/request_helper.rb +257 -0
  66. data/lib/merb-core/test/helpers/route_helper.rb +33 -0
  67. data/lib/merb-core/test/helpers/view_helper.rb +121 -0
  68. data/lib/merb-core/test/matchers.rb +9 -0
  69. data/lib/merb-core/test/matchers/controller_matchers.rb +269 -0
  70. data/lib/merb-core/test/matchers/route_matchers.rb +136 -0
  71. data/lib/merb-core/test/matchers/view_matchers.rb +293 -0
  72. data/lib/merb-core/test/run_specs.rb +38 -0
  73. data/lib/merb-core/test/tasks/spectasks.rb +39 -0
  74. data/lib/merb-core/test/test_ext/hpricot.rb +32 -0
  75. data/lib/merb-core/test/test_ext/object.rb +14 -0
  76. data/lib/merb-core/vendor/facets.rb +2 -0
  77. data/lib/merb-core/vendor/facets/dictionary.rb +433 -0
  78. data/lib/merb-core/vendor/facets/inflect.rb +211 -0
  79. data/lib/merb-core/version.rb +11 -0
  80. data/spec/private/config/adapter_spec.rb +32 -0
  81. data/spec/private/config/config_spec.rb +139 -0
  82. data/spec/private/config/environment_spec.rb +13 -0
  83. data/spec/private/config/spec_helper.rb +1 -0
  84. data/spec/private/core_ext/hash_spec.rb +506 -0
  85. data/spec/private/core_ext/kernel_spec.rb +46 -0
  86. data/spec/private/core_ext/object_spec.rb +39 -0
  87. data/spec/private/core_ext/set_spec.rb +26 -0
  88. data/spec/private/core_ext/string_spec.rb +9 -0
  89. data/spec/private/dispatch/cookies_spec.rb +107 -0
  90. data/spec/private/dispatch/dispatch_spec.rb +26 -0
  91. data/spec/private/dispatch/fixture/app/controllers/application.rb +4 -0
  92. data/spec/private/dispatch/fixture/app/controllers/exceptions.rb +27 -0
  93. data/spec/private/dispatch/fixture/app/controllers/foo.rb +21 -0
  94. data/spec/private/dispatch/fixture/app/helpers/global_helpers.rb +8 -0
  95. data/spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb +37 -0
  96. data/spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb +216 -0
  97. data/spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb +38 -0
  98. data/spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb +40 -0
  99. data/spec/private/dispatch/fixture/app/views/foo/bar.html.erb +0 -0
  100. data/spec/private/dispatch/fixture/app/views/layout/application.html.erb +11 -0
  101. data/spec/private/dispatch/fixture/config/environments/development.rb +6 -0
  102. data/spec/private/dispatch/fixture/config/environments/production.rb +5 -0
  103. data/spec/private/dispatch/fixture/config/environments/test.rb +6 -0
  104. data/spec/private/dispatch/fixture/config/init.rb +45 -0
  105. data/spec/private/dispatch/fixture/config/rack.rb +1 -0
  106. data/spec/private/dispatch/fixture/config/router.rb +35 -0
  107. data/spec/private/dispatch/fixture/log/development.log +1 -0
  108. data/spec/private/dispatch/fixture/log/merb.4000.pid +1 -0
  109. data/spec/private/dispatch/fixture/log/merb_test.log +2040 -0
  110. data/spec/private/dispatch/fixture/log/production.log +1 -0
  111. data/spec/private/dispatch/fixture/merb.4000.pid +1 -0
  112. data/spec/private/dispatch/fixture/public/images/merb.jpg +0 -0
  113. data/spec/private/dispatch/fixture/public/merb.fcgi +4 -0
  114. data/spec/private/dispatch/fixture/public/stylesheets/master.css +119 -0
  115. data/spec/private/dispatch/route_params_spec.rb +24 -0
  116. data/spec/private/dispatch/spec_helper.rb +1 -0
  117. data/spec/private/plugins/plugin_spec.rb +81 -0
  118. data/spec/private/rack/application_spec.rb +43 -0
  119. data/spec/public/DEFINITIONS +11 -0
  120. data/spec/public/abstract_controller/controllers/alt_views/layout/application.erb +1 -0
  121. data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_string_controller_layout.erb +1 -0
  122. data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_template_controller_layout.erb +1 -0
  123. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/index.erb +1 -0
  124. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/show.erb +1 -0
  125. data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
  126. data/spec/public/abstract_controller/controllers/alt_views/partial/basic_partial_with_multiple_roots/_partial.erb +1 -0
  127. data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_and_custom_location/index.erb +1 -0
  128. data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_inherited/index.erb +1 -0
  129. data/spec/public/abstract_controller/controllers/display.rb +54 -0
  130. data/spec/public/abstract_controller/controllers/filters.rb +167 -0
  131. data/spec/public/abstract_controller/controllers/helpers.rb +31 -0
  132. data/spec/public/abstract_controller/controllers/partial.rb +106 -0
  133. data/spec/public/abstract_controller/controllers/render.rb +86 -0
  134. data/spec/public/abstract_controller/controllers/views/helpers/capture/index.erb +1 -0
  135. data/spec/public/abstract_controller/controllers/views/helpers/concat/index.erb +1 -0
  136. data/spec/public/abstract_controller/controllers/views/layout/alt.erb +1 -0
  137. data/spec/public/abstract_controller/controllers/views/layout/custom.erb +1 -0
  138. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object/index.erb +1 -0
  139. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object_with_action/new.erb +1 -0
  140. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template/index.erb +1 -0
  141. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_app_layout/index.erb +0 -0
  142. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_custom_layout/index.erb +1 -0
  143. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
  144. data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/show.erb +1 -0
  145. data/spec/public/abstract_controller/controllers/views/partial/another_directory/_partial.erb +1 -0
  146. data/spec/public/abstract_controller/controllers/views/partial/basic_partial/_partial.erb +1 -0
  147. data/spec/public/abstract_controller/controllers/views/partial/basic_partial/index.erb +1 -0
  148. data/spec/public/abstract_controller/controllers/views/partial/basic_partial_with_multiple_roots/index.erb +1 -0
  149. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_first.erb +1 -0
  150. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_second.erb +1 -0
  151. data/spec/public/abstract_controller/controllers/views/partial/nested_partial/index.erb +1 -0
  152. data/spec/public/abstract_controller/controllers/views/partial/partial_in_another_directory/index.erb +1 -0
  153. data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/_collection.erb +1 -0
  154. data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/index.erb +1 -0
  155. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/_collection.erb +1 -0
  156. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/index.erb +1 -0
  157. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/_collection.erb +1 -0
  158. data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/index.erb +1 -0
  159. data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/_variables.erb +1 -0
  160. data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/index.erb +1 -0
  161. data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/_both.erb +1 -0
  162. data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/index.erb +1 -0
  163. data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/_with_partial.erb +1 -0
  164. data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/index.erb +1 -0
  165. data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/_with_partial.erb +1 -0
  166. data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/index.erb +1 -0
  167. data/spec/public/abstract_controller/controllers/views/partial/with_partial/_with_partial.erb +1 -0
  168. data/spec/public/abstract_controller/controllers/views/partial/with_partial/index.erb +1 -0
  169. data/spec/public/abstract_controller/controllers/views/test_display/foo.html.erb +1 -0
  170. data/spec/public/abstract_controller/controllers/views/test_render/foo.html.erb +0 -0
  171. data/spec/public/abstract_controller/controllers/views/wonderful/index.erb +1 -0
  172. data/spec/public/abstract_controller/display_spec.rb +33 -0
  173. data/spec/public/abstract_controller/filter_spec.rb +80 -0
  174. data/spec/public/abstract_controller/helper_spec.rb +13 -0
  175. data/spec/public/abstract_controller/partial_spec.rb +53 -0
  176. data/spec/public/abstract_controller/render_spec.rb +70 -0
  177. data/spec/public/abstract_controller/spec_helper.rb +27 -0
  178. data/spec/public/boot_loader/boot_loader_spec.rb +33 -0
  179. data/spec/public/boot_loader/spec_helper.rb +1 -0
  180. data/spec/public/controller/base_spec.rb +31 -0
  181. data/spec/public/controller/controllers/base.rb +41 -0
  182. data/spec/public/controller/controllers/display.rb +40 -0
  183. data/spec/public/controller/controllers/responder.rb +67 -0
  184. data/spec/public/controller/controllers/url.rb +7 -0
  185. data/spec/public/controller/controllers/views/layout/custom.html.erb +1 -0
  186. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb +1 -0
  187. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.xml.erb +1 -0
  188. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/index.html.erb +1 -0
  189. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default/index.html.erb +1 -0
  190. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout/custom.html.erb +1 -0
  191. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.html.erb +1 -0
  192. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.xml.erb +1 -0
  193. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.html.erb +1 -0
  194. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.js.erb +1 -0
  195. data/spec/public/controller/display_spec.rb +34 -0
  196. data/spec/public/controller/log/merb.4000.pid +1 -0
  197. data/spec/public/controller/responder_spec.rb +95 -0
  198. data/spec/public/controller/spec_helper.rb +9 -0
  199. data/spec/public/controller/url_spec.rb +152 -0
  200. data/spec/public/directory_structure/directory/app/controllers/application.rb +3 -0
  201. data/spec/public/directory_structure/directory/app/controllers/base.rb +13 -0
  202. data/spec/public/directory_structure/directory/app/controllers/custom.rb +19 -0
  203. data/spec/public/directory_structure/directory/app/views/base/template.html.erb +1 -0
  204. data/spec/public/directory_structure/directory/app/views/wonderful/template.erb +1 -0
  205. data/spec/public/directory_structure/directory/config/router.rb +3 -0
  206. data/spec/public/directory_structure/directory/log/merb.4000.pid +1 -0
  207. data/spec/public/directory_structure/directory/log/merb_test.log +265 -0
  208. data/spec/public/directory_structure/directory/merb.4000.pid +1 -0
  209. data/spec/public/directory_structure/directory_spec.rb +44 -0
  210. data/spec/public/logger/logger_spec.rb +175 -0
  211. data/spec/public/logger/spec_helper.rb +1 -0
  212. data/spec/public/reloading/directory/app/controllers/application.rb +3 -0
  213. data/spec/public/reloading/directory/app/controllers/reload.rb +6 -0
  214. data/spec/public/reloading/directory/config/init.rb +2 -0
  215. data/spec/public/reloading/directory/log/merb.4000.pid +1 -0
  216. data/spec/public/reloading/directory/log/merb_test.log +59 -0
  217. data/spec/public/reloading/directory/merb.4000.pid +1 -0
  218. data/spec/public/reloading/reload_spec.rb +80 -0
  219. data/spec/public/request/multipart_spec.rb +15 -0
  220. data/spec/public/request/request_spec.rb +207 -0
  221. data/spec/public/router/default_spec.rb +21 -0
  222. data/spec/public/router/deferred_spec.rb +22 -0
  223. data/spec/public/router/namespace_spec.rb +113 -0
  224. data/spec/public/router/nested_resources_spec.rb +34 -0
  225. data/spec/public/router/resource_spec.rb +45 -0
  226. data/spec/public/router/resources_spec.rb +57 -0
  227. data/spec/public/router/spec_helper.rb +72 -0
  228. data/spec/public/router/special_spec.rb +44 -0
  229. data/spec/public/router/string_spec.rb +61 -0
  230. data/spec/public/template/template_spec.rb +92 -0
  231. data/spec/public/template/templates/error.html.erb +2 -0
  232. data/spec/public/template/templates/template.html.erb +1 -0
  233. data/spec/public/template/templates/template.html.myt +1 -0
  234. data/spec/public/test/controller_matchers_spec.rb +378 -0
  235. data/spec/public/test/controllers/controller_assertion_mock.rb +7 -0
  236. data/spec/public/test/controllers/dispatch_controller.rb +11 -0
  237. data/spec/public/test/controllers/spec_helper_controller.rb +30 -0
  238. data/spec/public/test/multipart_request_helper_spec.rb +159 -0
  239. data/spec/public/test/multipart_upload_text_file.txt +1 -0
  240. data/spec/public/test/request_helper_spec.rb +153 -0
  241. data/spec/public/test/route_helper_spec.rb +54 -0
  242. data/spec/public/test/route_matchers_spec.rb +133 -0
  243. data/spec/public/test/view_helper_spec.rb +96 -0
  244. data/spec/public/test/view_matchers_spec.rb +107 -0
  245. data/spec/spec_helper.rb +71 -0
  246. metadata +488 -0
@@ -0,0 +1,96 @@
1
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
2
+
3
+ describe Merb::Test::ViewHelper do
4
+ before(:each) do
5
+ @output = Merb::Test::ViewHelper::DocumentOutput.new(test_response)
6
+ end
7
+
8
+ describe "#tag" do
9
+ it "should return the inner content of the first tag found by the css query" do
10
+ tag(:li).should == "item 1"
11
+ end
12
+ end
13
+
14
+ describe "#tags" do
15
+ it "should return an array of tag contents for all tags found by the css query" do
16
+ tags(:li).should include("item 1", "item 2", "item 3")
17
+ end
18
+ end
19
+
20
+ describe "#element" do
21
+ it "should return a raw Hpricot::Elem object for the first result found by the query" do
22
+ Hpricot::Elem.should === element(:body)
23
+ end
24
+ end
25
+
26
+ describe "#elements" do
27
+ it "should return an array of Hpricot::Elem objects for the results found by the query" do
28
+ elements("li, ul").each{|ele| Hpricot::Elem.should === ele}
29
+ end
30
+ end
31
+
32
+ describe "#have_tag" do
33
+ it "should work without options hash" do
34
+ have_tag(:html)
35
+ end
36
+
37
+ it "should work with options hash" do
38
+ have_tag(:html, {})
39
+ end
40
+ end
41
+
42
+ describe "#get_elements" do
43
+ it "should return an array of Hpricot::Elem objects for the results found by the query containing the filter string" do
44
+ get_elements(:li, "item").size.should == 3
45
+ get_elements(:li, "item 2").size.should == 1
46
+ end
47
+
48
+ it "should return an array of Hpricot::Elem objects for the results found by the query matching the filter regexp" do
49
+ get_elements(:li, /^item \d$/).size.should == 3
50
+ get_elements(:li, /^item (1|2)$/).size.should == 2
51
+ end
52
+ end
53
+
54
+ it "should raise an error if the ouput is not specified and cannot be found" do
55
+ @output, @response_output, @controller = nil
56
+
57
+ lambda { tag("div") }.should raise_error("The response output was not in it's usual places, please provide the output")
58
+ end
59
+
60
+ it "should use @output if no output parameter is supplied" do
61
+ @output.should_receive(:content_for)
62
+
63
+ tag(:div)
64
+ end
65
+
66
+ it "should use @output_response if no output parameter is supplied and @output does not contain output" do
67
+ @output = nil
68
+ @response_output = test_response
69
+
70
+ tag(:div)
71
+ end
72
+
73
+ it "should use @controller.body if no output parameter is supplied and both @output and @response_output do not contain output" do
74
+ @output, @response_output = nil
75
+ @controller = mock(:controller)
76
+ @controller.should_receive(:nil?).and_return false
77
+ @controller.should_receive(:body).any_number_of_times.and_return test_response
78
+
79
+ tag(:div)
80
+ end
81
+
82
+ def test_response
83
+ <<-EOR
84
+ <html>
85
+ <body>
86
+ <div>Hello, World!</div>
87
+ <ul>
88
+ <li>item 1</li>
89
+ <li>item 2</li>
90
+ <li>item 3</li>
91
+ </ul
92
+ </body>
93
+ </html>
94
+ EOR
95
+ end
96
+ end
@@ -0,0 +1,107 @@
1
+ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
2
+
3
+ Merb.start :environment => 'test', :log_level => :fatal
4
+
5
+ module Merb::Test::Rspec::ViewMatchers
6
+ describe HasTag do
7
+ describe "#matches?" do
8
+ before(:each) do
9
+ @document = stub(:document)
10
+ Hpricot.should_receive(:parse).and_return @document
11
+ end
12
+
13
+ it "should should pass all found elements to the block" do
14
+ @block_called = false
15
+
16
+ @document.should_receive(:search).and_return [""]
17
+ HasTag.new("tag").matches?("") {|e| @block_called = true}
18
+
19
+ @block_called.should be_true
20
+ end
21
+
22
+ it "should not fail if the result if the block raises an error" do
23
+ @document.should_receive(:search).and_return [""]
24
+ HasTag.new("tag").matches?("") {|e| true.should be_false }
25
+ end
26
+
27
+ it "should not treat ExpectationNotMetError raised in the block as false" do
28
+ @document.should_receive(:search).and_return [1, 2, 3]
29
+ HasTag.new("tag").matches?("") {|e| e.should == 4 }.should be_false
30
+ end
31
+ end
32
+
33
+ describe "#with_tag" do
34
+ it "should set @inner_tag" do
35
+ outer = HasTag.new("outer")
36
+ inner = outer.with_tag("inner")
37
+
38
+ outer.selector.should include(inner.selector)
39
+ end
40
+ end
41
+
42
+ describe "#selector" do
43
+ it "should always start with \/\/" do
44
+ HasTag.new("tag").selector.should =~ /^\/\//
45
+ end
46
+
47
+ it "should use @tag for the element" do
48
+ HasTag.new("tag").selector.should include("tag")
49
+ end
50
+
51
+ it "should use dot notation for the class" do
52
+ HasTag.new("tag", :class => "class").selector.should include("tag.class")
53
+ end
54
+
55
+ it "should use pound(#) notation for the id" do
56
+ HasTag.new("tag", :id => "id").selector.should include("tag#id")
57
+ end
58
+
59
+ it "should include any custom attributes" do
60
+ HasTag.new("tag", :random => :attribute).selector.should include("[@random=\"attribute\"]")
61
+ end
62
+
63
+ it "should not include the class as a custom attribute" do
64
+ HasTag.new("tag", :class => :my_class, :rand => :attr).selector.should_not include("[@class=\"my_class\"]")
65
+ end
66
+
67
+ it "should not include the id as a custom attribute" do
68
+ HasTag.new("tag", :id => :my_id, :rand => :attr).selector.should_not include("[@id=\"my_id\"]")
69
+ end
70
+ end
71
+
72
+ describe "#failure_message" do
73
+ it "should include the tag name" do
74
+ HasTag.new("anytag").failure_message.should include("<anytag")
75
+ end
76
+
77
+ it "should include the tag's id" do
78
+ HasTag.new("div", :id => :spacer).failure_message.should include("<div id=\"spacer\"")
79
+ end
80
+
81
+ it "should include the tag's class" do
82
+ HasTag.new("div", :class => :header).failure_message.should include("<div class=\"header\"")
83
+ end
84
+
85
+ it "should include the tag's custom attributes" do
86
+ HasTag.new("h1", :attr => :val, :foo => :bar).failure_message.should include("attr=\"val\"")
87
+ HasTag.new("h1", :attr => :val, :foo => :bar).failure_message.should include("foo=\"bar\"")
88
+ end
89
+ end
90
+
91
+ describe "id, class, and attributes for error messages" do
92
+ it "should start with a space for a class, id, or custom attribute" do
93
+ HasTag.new("tag", :id => "identifier").id_for_error.should =~ /^ /
94
+ HasTag.new("tag", :class => "classifier").class_for_error.should =~ /^ /
95
+ HasTag.new("tag", :rand => "attr").attributes_for_error.should =~ /^ /
96
+ end
97
+
98
+ it "should have 'class=\"classifier\"' in class_for_error" do
99
+ HasTag.new("tag", :class => "classifier").class_for_error.should include("class=\"classifier\"")
100
+ end
101
+
102
+ it "should have 'id=\"identifier\" in id_for_error" do
103
+ HasTag.new("tag", :id => "identifier").id_for_error.should include("id=\"identifier\"")
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,71 @@
1
+ $TESTING=true
2
+ require "rubygems"
3
+ require "spec"
4
+ require File.join(File.dirname(__FILE__), "..", "lib", "merb-core")
5
+
6
+ # -- Global custom matchers --
7
+
8
+ # A better +be_kind_of+ with more informative error messages.
9
+ #
10
+ # The default +be_kind_of+ just says
11
+ #
12
+ # "expected to return true but got false"
13
+ #
14
+ # This one says
15
+ #
16
+ # "expected File but got Tempfile"
17
+
18
+ module Merb
19
+
20
+ module Test
21
+
22
+ module RspecMatchers
23
+
24
+ class BeKindOf
25
+
26
+ def initialize(expected) # + args
27
+ @expected = expected
28
+ end
29
+
30
+ def matches?(target)
31
+ @target = target
32
+ @target.kind_of?(@expected)
33
+ end
34
+
35
+ def failure_message
36
+ "expected #{@expected} but got #{@target.class}"
37
+ end
38
+
39
+ def negative_failure_message
40
+ "expected #{@expected} to not be #{@target.class}"
41
+ end
42
+
43
+ def description
44
+ "be_kind_of #{@target}"
45
+ end
46
+
47
+ end
48
+
49
+ def be_kind_of(expected) # + args
50
+ BeKindOf.new(expected)
51
+ end
52
+ end
53
+
54
+ module Helper
55
+
56
+ def running(&blk) blk; end
57
+
58
+ def executing(&blk) blk; end
59
+
60
+ def doing(&blk) blk; end
61
+
62
+ def calling(&blk) blk; end
63
+ end
64
+ end
65
+ end
66
+
67
+ Spec::Runner.configure do |config|
68
+ config.include Merb::Test::Helper
69
+ config.include Merb::Test::RspecMatchers
70
+ config.include Merb::Test::RequestHelper
71
+ end
metadata ADDED
@@ -0,0 +1,488 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: merb-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.2
5
+ platform: ruby
6
+ authors:
7
+ - Ezra Zygmuntowicz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-03-24 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: erubis
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rake
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: json_pure
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ - !ruby/object:Gem::Dependency
52
+ name: rack
53
+ version_requirement:
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ version:
60
+ - !ruby/object:Gem::Dependency
61
+ name: hpricot
62
+ version_requirement:
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ version:
69
+ - !ruby/object:Gem::Dependency
70
+ name: mime-types
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ description: Merb. Pocket rocket web framework.
79
+ email: ez@engineyard.com
80
+ executables:
81
+ - merb
82
+ extensions: []
83
+
84
+ extra_rdoc_files:
85
+ - README
86
+ - LICENSE
87
+ - TODO
88
+ files:
89
+ - LICENSE
90
+ - README
91
+ - Rakefile
92
+ - TODO
93
+ - docs/bootloading.dox
94
+ - docs/documentation_standards
95
+ - docs/new_render_api
96
+ - bin/merb
97
+ - bin/merb-specs
98
+ - spec/private
99
+ - spec/private/config
100
+ - spec/private/config/adapter_spec.rb
101
+ - spec/private/config/config_spec.rb
102
+ - spec/private/config/environment_spec.rb
103
+ - spec/private/config/spec_helper.rb
104
+ - spec/private/core_ext
105
+ - spec/private/core_ext/hash_spec.rb
106
+ - spec/private/core_ext/kernel_spec.rb
107
+ - spec/private/core_ext/object_spec.rb
108
+ - spec/private/core_ext/set_spec.rb
109
+ - spec/private/core_ext/string_spec.rb
110
+ - spec/private/dispatch
111
+ - spec/private/dispatch/cookies_spec.rb
112
+ - spec/private/dispatch/dispatch_spec.rb
113
+ - spec/private/dispatch/fixture
114
+ - spec/private/dispatch/fixture/app
115
+ - spec/private/dispatch/fixture/app/controllers
116
+ - spec/private/dispatch/fixture/app/controllers/application.rb
117
+ - spec/private/dispatch/fixture/app/controllers/exceptions.rb
118
+ - spec/private/dispatch/fixture/app/controllers/foo.rb
119
+ - spec/private/dispatch/fixture/app/helpers
120
+ - spec/private/dispatch/fixture/app/helpers/global_helpers.rb
121
+ - spec/private/dispatch/fixture/app/views
122
+ - spec/private/dispatch/fixture/app/views/exeptions
123
+ - spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb
124
+ - spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb
125
+ - spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb
126
+ - spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb
127
+ - spec/private/dispatch/fixture/app/views/foo
128
+ - spec/private/dispatch/fixture/app/views/foo/bar.html.erb
129
+ - spec/private/dispatch/fixture/app/views/layout
130
+ - spec/private/dispatch/fixture/app/views/layout/application.html.erb
131
+ - spec/private/dispatch/fixture/config
132
+ - spec/private/dispatch/fixture/config/environments
133
+ - spec/private/dispatch/fixture/config/environments/development.rb
134
+ - spec/private/dispatch/fixture/config/environments/production.rb
135
+ - spec/private/dispatch/fixture/config/environments/test.rb
136
+ - spec/private/dispatch/fixture/config/init.rb
137
+ - spec/private/dispatch/fixture/config/rack.rb
138
+ - spec/private/dispatch/fixture/config/router.rb
139
+ - spec/private/dispatch/fixture/log
140
+ - spec/private/dispatch/fixture/log/development.log
141
+ - spec/private/dispatch/fixture/log/merb.4000.pid
142
+ - spec/private/dispatch/fixture/log/merb_test.log
143
+ - spec/private/dispatch/fixture/log/production.log
144
+ - spec/private/dispatch/fixture/merb.4000.pid
145
+ - spec/private/dispatch/fixture/public
146
+ - spec/private/dispatch/fixture/public/images
147
+ - spec/private/dispatch/fixture/public/images/merb.jpg
148
+ - spec/private/dispatch/fixture/public/merb.fcgi
149
+ - spec/private/dispatch/fixture/public/stylesheets
150
+ - spec/private/dispatch/fixture/public/stylesheets/master.css
151
+ - spec/private/dispatch/route_params_spec.rb
152
+ - spec/private/dispatch/spec_helper.rb
153
+ - spec/private/plugins
154
+ - spec/private/plugins/plugin_spec.rb
155
+ - spec/private/rack
156
+ - spec/private/rack/application_spec.rb
157
+ - spec/public
158
+ - spec/public/abstract_controller
159
+ - spec/public/abstract_controller/controllers
160
+ - spec/public/abstract_controller/controllers/alt_views
161
+ - spec/public/abstract_controller/controllers/alt_views/layout
162
+ - spec/public/abstract_controller/controllers/alt_views/layout/application.erb
163
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb
164
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb/test
165
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures
166
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract
167
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_string_controller_layout.erb
168
+ - spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_template_controller_layout.erb
169
+ - spec/public/abstract_controller/controllers/alt_views/merb
170
+ - spec/public/abstract_controller/controllers/alt_views/merb/test
171
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures
172
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract
173
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots
174
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/index.erb
175
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/show.erb
176
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/render_template_multiple_roots
177
+ - spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb
178
+ - spec/public/abstract_controller/controllers/alt_views/partial
179
+ - spec/public/abstract_controller/controllers/alt_views/partial/basic_partial_with_multiple_roots
180
+ - spec/public/abstract_controller/controllers/alt_views/partial/basic_partial_with_multiple_roots/_partial.erb
181
+ - spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_and_custom_location
182
+ - spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_and_custom_location/index.erb
183
+ - spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_inherited
184
+ - spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_inherited/index.erb
185
+ - spec/public/abstract_controller/controllers/display.rb
186
+ - spec/public/abstract_controller/controllers/filters.rb
187
+ - spec/public/abstract_controller/controllers/helpers.rb
188
+ - spec/public/abstract_controller/controllers/partial.rb
189
+ - spec/public/abstract_controller/controllers/render.rb
190
+ - spec/public/abstract_controller/controllers/views
191
+ - spec/public/abstract_controller/controllers/views/helpers
192
+ - spec/public/abstract_controller/controllers/views/helpers/capture
193
+ - spec/public/abstract_controller/controllers/views/helpers/capture/index.erb
194
+ - spec/public/abstract_controller/controllers/views/helpers/concat
195
+ - spec/public/abstract_controller/controllers/views/helpers/concat/index.erb
196
+ - spec/public/abstract_controller/controllers/views/layout
197
+ - spec/public/abstract_controller/controllers/views/layout/alt.erb
198
+ - spec/public/abstract_controller/controllers/views/layout/custom.erb
199
+ - spec/public/abstract_controller/controllers/views/merb
200
+ - spec/public/abstract_controller/controllers/views/merb/test
201
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures
202
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract
203
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object
204
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object/index.erb
205
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object_with_action
206
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object_with_action/new.erb
207
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template
208
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template/index.erb
209
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_app_layout
210
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_app_layout/index.erb
211
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_custom_layout
212
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_custom_layout/index.erb
213
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots
214
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb
215
+ - spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/show.erb
216
+ - spec/public/abstract_controller/controllers/views/partial
217
+ - spec/public/abstract_controller/controllers/views/partial/another_directory
218
+ - spec/public/abstract_controller/controllers/views/partial/another_directory/_partial.erb
219
+ - spec/public/abstract_controller/controllers/views/partial/basic_partial
220
+ - spec/public/abstract_controller/controllers/views/partial/basic_partial/_partial.erb
221
+ - spec/public/abstract_controller/controllers/views/partial/basic_partial/index.erb
222
+ - spec/public/abstract_controller/controllers/views/partial/basic_partial_with_multiple_roots
223
+ - spec/public/abstract_controller/controllers/views/partial/basic_partial_with_multiple_roots/index.erb
224
+ - spec/public/abstract_controller/controllers/views/partial/nested_partial
225
+ - spec/public/abstract_controller/controllers/views/partial/nested_partial/_first.erb
226
+ - spec/public/abstract_controller/controllers/views/partial/nested_partial/_second.erb
227
+ - spec/public/abstract_controller/controllers/views/partial/nested_partial/index.erb
228
+ - spec/public/abstract_controller/controllers/views/partial/partial_in_another_directory
229
+ - spec/public/abstract_controller/controllers/views/partial/partial_in_another_directory/index.erb
230
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_both
231
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_both/_collection.erb
232
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_both/index.erb
233
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections
234
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections/_collection.erb
235
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections/index.erb
236
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as
237
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/_collection.erb
238
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/index.erb
239
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_locals
240
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_locals/_variables.erb
241
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_locals/index.erb
242
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals
243
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/_both.erb
244
+ - spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/index.erb
245
+ - spec/public/abstract_controller/controllers/views/partial/with_as_partial
246
+ - spec/public/abstract_controller/controllers/views/partial/with_as_partial/_with_partial.erb
247
+ - spec/public/abstract_controller/controllers/views/partial/with_as_partial/index.erb
248
+ - spec/public/abstract_controller/controllers/views/partial/with_nil_partial
249
+ - spec/public/abstract_controller/controllers/views/partial/with_nil_partial/_with_partial.erb
250
+ - spec/public/abstract_controller/controllers/views/partial/with_nil_partial/index.erb
251
+ - spec/public/abstract_controller/controllers/views/partial/with_partial
252
+ - spec/public/abstract_controller/controllers/views/partial/with_partial/_with_partial.erb
253
+ - spec/public/abstract_controller/controllers/views/partial/with_partial/index.erb
254
+ - spec/public/abstract_controller/controllers/views/test_display
255
+ - spec/public/abstract_controller/controllers/views/test_display/foo.html.erb
256
+ - spec/public/abstract_controller/controllers/views/test_render
257
+ - spec/public/abstract_controller/controllers/views/test_render/foo.html.erb
258
+ - spec/public/abstract_controller/controllers/views/wonderful
259
+ - spec/public/abstract_controller/controllers/views/wonderful/index.erb
260
+ - spec/public/abstract_controller/display_spec.rb
261
+ - spec/public/abstract_controller/filter_spec.rb
262
+ - spec/public/abstract_controller/helper_spec.rb
263
+ - spec/public/abstract_controller/partial_spec.rb
264
+ - spec/public/abstract_controller/render_spec.rb
265
+ - spec/public/abstract_controller/spec_helper.rb
266
+ - spec/public/boot_loader
267
+ - spec/public/boot_loader/boot_loader_spec.rb
268
+ - spec/public/boot_loader/spec_helper.rb
269
+ - spec/public/controller
270
+ - spec/public/controller/base_spec.rb
271
+ - spec/public/controller/controllers
272
+ - spec/public/controller/controllers/base.rb
273
+ - spec/public/controller/controllers/display.rb
274
+ - spec/public/controller/controllers/responder.rb
275
+ - spec/public/controller/controllers/url.rb
276
+ - spec/public/controller/controllers/views
277
+ - spec/public/controller/controllers/views/layout
278
+ - spec/public/controller/controllers/views/layout/custom.html.erb
279
+ - spec/public/controller/controllers/views/merb
280
+ - spec/public/controller/controllers/views/merb/test
281
+ - spec/public/controller/controllers/views/merb/test/fixtures
282
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers
283
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides
284
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb
285
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.xml.erb
286
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template
287
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/index.html.erb
288
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default
289
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default/index.html.erb
290
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout
291
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout/custom.html.erb
292
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides
293
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.html.erb
294
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.xml.erb
295
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides
296
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.html.erb
297
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.js.erb
298
+ - spec/public/controller/display_spec.rb
299
+ - spec/public/controller/log
300
+ - spec/public/controller/log/merb.4000.pid
301
+ - spec/public/controller/responder_spec.rb
302
+ - spec/public/controller/spec_helper.rb
303
+ - spec/public/controller/url_spec.rb
304
+ - spec/public/DEFINITIONS
305
+ - spec/public/directory_structure
306
+ - spec/public/directory_structure/directory
307
+ - spec/public/directory_structure/directory/app
308
+ - spec/public/directory_structure/directory/app/controllers
309
+ - spec/public/directory_structure/directory/app/controllers/application.rb
310
+ - spec/public/directory_structure/directory/app/controllers/base.rb
311
+ - spec/public/directory_structure/directory/app/controllers/custom.rb
312
+ - spec/public/directory_structure/directory/app/views
313
+ - spec/public/directory_structure/directory/app/views/base
314
+ - spec/public/directory_structure/directory/app/views/base/template.html.erb
315
+ - spec/public/directory_structure/directory/app/views/wonderful
316
+ - spec/public/directory_structure/directory/app/views/wonderful/template.erb
317
+ - spec/public/directory_structure/directory/config
318
+ - spec/public/directory_structure/directory/config/router.rb
319
+ - spec/public/directory_structure/directory/log
320
+ - spec/public/directory_structure/directory/log/merb.4000.pid
321
+ - spec/public/directory_structure/directory/log/merb_test.log
322
+ - spec/public/directory_structure/directory/merb.4000.pid
323
+ - spec/public/directory_structure/directory_spec.rb
324
+ - spec/public/logger
325
+ - spec/public/logger/logger_spec.rb
326
+ - spec/public/logger/spec_helper.rb
327
+ - spec/public/reloading
328
+ - spec/public/reloading/directory
329
+ - spec/public/reloading/directory/app
330
+ - spec/public/reloading/directory/app/controllers
331
+ - spec/public/reloading/directory/app/controllers/application.rb
332
+ - spec/public/reloading/directory/app/controllers/reload.rb
333
+ - spec/public/reloading/directory/config
334
+ - spec/public/reloading/directory/config/init.rb
335
+ - spec/public/reloading/directory/log
336
+ - spec/public/reloading/directory/log/merb.4000.pid
337
+ - spec/public/reloading/directory/log/merb_test.log
338
+ - spec/public/reloading/directory/merb.4000.pid
339
+ - spec/public/reloading/reload_spec.rb
340
+ - spec/public/request
341
+ - spec/public/request/multipart_spec.rb
342
+ - spec/public/request/request_spec.rb
343
+ - spec/public/router
344
+ - spec/public/router/default_spec.rb
345
+ - spec/public/router/deferred_spec.rb
346
+ - spec/public/router/namespace_spec.rb
347
+ - spec/public/router/nested_resources_spec.rb
348
+ - spec/public/router/resource_spec.rb
349
+ - spec/public/router/resources_spec.rb
350
+ - spec/public/router/spec_helper.rb
351
+ - spec/public/router/special_spec.rb
352
+ - spec/public/router/string_spec.rb
353
+ - spec/public/template
354
+ - spec/public/template/template_spec.rb
355
+ - spec/public/template/templates
356
+ - spec/public/template/templates/error.html.erb
357
+ - spec/public/template/templates/template.html.erb
358
+ - spec/public/template/templates/template.html.myt
359
+ - spec/public/test
360
+ - spec/public/test/controller_matchers_spec.rb
361
+ - spec/public/test/controllers
362
+ - spec/public/test/controllers/controller_assertion_mock.rb
363
+ - spec/public/test/controllers/dispatch_controller.rb
364
+ - spec/public/test/controllers/spec_helper_controller.rb
365
+ - spec/public/test/multipart_request_helper_spec.rb
366
+ - spec/public/test/multipart_upload_text_file.txt
367
+ - spec/public/test/request_helper_spec.rb
368
+ - spec/public/test/route_helper_spec.rb
369
+ - spec/public/test/route_matchers_spec.rb
370
+ - spec/public/test/view_helper_spec.rb
371
+ - spec/public/test/view_matchers_spec.rb
372
+ - spec/spec_helper.rb
373
+ - lib/merb-core
374
+ - lib/merb-core/autoload.rb
375
+ - lib/merb-core/bootloader.rb
376
+ - lib/merb-core/config.rb
377
+ - lib/merb-core/constants.rb
378
+ - lib/merb-core/controller
379
+ - lib/merb-core/controller/abstract_controller.rb
380
+ - lib/merb-core/controller/exceptions.rb
381
+ - lib/merb-core/controller/merb_controller.rb
382
+ - lib/merb-core/controller/mime.rb
383
+ - lib/merb-core/controller/mixins
384
+ - lib/merb-core/controller/mixins/controller.rb
385
+ - lib/merb-core/controller/mixins/render.rb
386
+ - lib/merb-core/controller/mixins/responder.rb
387
+ - lib/merb-core/controller/template.rb
388
+ - lib/merb-core/core_ext
389
+ - lib/merb-core/core_ext/class.rb
390
+ - lib/merb-core/core_ext/hash.rb
391
+ - lib/merb-core/core_ext/kernel.rb
392
+ - lib/merb-core/core_ext/mash.rb
393
+ - lib/merb-core/core_ext/object.rb
394
+ - lib/merb-core/core_ext/object_space.rb
395
+ - lib/merb-core/core_ext/rubygems.rb
396
+ - lib/merb-core/core_ext/set.rb
397
+ - lib/merb-core/core_ext/string.rb
398
+ - lib/merb-core/core_ext.rb
399
+ - lib/merb-core/dispatch
400
+ - lib/merb-core/dispatch/cookies.rb
401
+ - lib/merb-core/dispatch/dispatcher.rb
402
+ - lib/merb-core/dispatch/exceptions.html.erb
403
+ - lib/merb-core/dispatch/request.rb
404
+ - lib/merb-core/dispatch/router
405
+ - lib/merb-core/dispatch/router/behavior.rb
406
+ - lib/merb-core/dispatch/router/cached_proc.rb
407
+ - lib/merb-core/dispatch/router/route.rb
408
+ - lib/merb-core/dispatch/router.rb
409
+ - lib/merb-core/dispatch/session
410
+ - lib/merb-core/dispatch/session/cookie.rb
411
+ - lib/merb-core/dispatch/session/memcached.rb
412
+ - lib/merb-core/dispatch/session/memory.rb
413
+ - lib/merb-core/dispatch/session.rb
414
+ - lib/merb-core/gem_ext
415
+ - lib/merb-core/gem_ext/erubis.rb
416
+ - lib/merb-core/logger.rb
417
+ - lib/merb-core/plugins.rb
418
+ - lib/merb-core/rack
419
+ - lib/merb-core/rack/adapter
420
+ - lib/merb-core/rack/adapter/ebb.rb
421
+ - lib/merb-core/rack/adapter/evented_mongrel.rb
422
+ - lib/merb-core/rack/adapter/fcgi.rb
423
+ - lib/merb-core/rack/adapter/irb.rb
424
+ - lib/merb-core/rack/adapter/mongrel.rb
425
+ - lib/merb-core/rack/adapter/runner.rb
426
+ - lib/merb-core/rack/adapter/thin.rb
427
+ - lib/merb-core/rack/adapter/webrick.rb
428
+ - lib/merb-core/rack/adapter.rb
429
+ - lib/merb-core/rack/application.rb
430
+ - lib/merb-core/rack/handler
431
+ - lib/merb-core/rack/handler/mongrel.rb
432
+ - lib/merb-core/rack.rb
433
+ - lib/merb-core/server.rb
434
+ - lib/merb-core/test
435
+ - lib/merb-core/test/helpers
436
+ - lib/merb-core/test/helpers/controller_helper.rb
437
+ - lib/merb-core/test/helpers/multipart_request_helper.rb
438
+ - lib/merb-core/test/helpers/request_helper.rb
439
+ - lib/merb-core/test/helpers/route_helper.rb
440
+ - lib/merb-core/test/helpers/view_helper.rb
441
+ - lib/merb-core/test/helpers.rb
442
+ - lib/merb-core/test/matchers
443
+ - lib/merb-core/test/matchers/controller_matchers.rb
444
+ - lib/merb-core/test/matchers/route_matchers.rb
445
+ - lib/merb-core/test/matchers/view_matchers.rb
446
+ - lib/merb-core/test/matchers.rb
447
+ - lib/merb-core/test/run_specs.rb
448
+ - lib/merb-core/test/tasks
449
+ - lib/merb-core/test/tasks/spectasks.rb
450
+ - lib/merb-core/test/test_ext
451
+ - lib/merb-core/test/test_ext/hpricot.rb
452
+ - lib/merb-core/test/test_ext/object.rb
453
+ - lib/merb-core/test.rb
454
+ - lib/merb-core/vendor
455
+ - lib/merb-core/vendor/facets
456
+ - lib/merb-core/vendor/facets/dictionary.rb
457
+ - lib/merb-core/vendor/facets/inflect.rb
458
+ - lib/merb-core/vendor/facets.rb
459
+ - lib/merb-core/version.rb
460
+ - lib/merb-core.rb
461
+ has_rdoc: true
462
+ homepage: http://merb.devjavu.com
463
+ post_install_message:
464
+ rdoc_options: []
465
+
466
+ require_paths:
467
+ - lib
468
+ required_ruby_version: !ruby/object:Gem::Requirement
469
+ requirements:
470
+ - - ">="
471
+ - !ruby/object:Gem::Version
472
+ version: 1.8.4
473
+ version:
474
+ required_rubygems_version: !ruby/object:Gem::Requirement
475
+ requirements:
476
+ - - ">="
477
+ - !ruby/object:Gem::Version
478
+ version: "0"
479
+ version:
480
+ requirements:
481
+ - install the json gem to get faster json parsing
482
+ rubyforge_project:
483
+ rubygems_version: 1.0.1
484
+ signing_key:
485
+ specification_version: 2
486
+ summary: Merb. Pocket rocket web framework.
487
+ test_files: []
488
+