merb-core 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. data/Rakefile +61 -11
  2. data/bin/merb +5 -1
  3. data/lib/merb-core.rb +202 -25
  4. data/lib/merb-core/autoload.rb +19 -17
  5. data/lib/merb-core/bootloader.rb +84 -71
  6. data/lib/merb-core/config.rb +19 -14
  7. data/lib/merb-core/controller/abstract_controller.rb +16 -17
  8. data/lib/merb-core/controller/exceptions.rb +115 -70
  9. data/lib/merb-core/controller/merb_controller.rb +62 -38
  10. data/lib/merb-core/controller/mime.rb +1 -1
  11. data/lib/merb-core/controller/mixins/authentication.rb +87 -0
  12. data/lib/merb-core/controller/mixins/controller.rb +16 -15
  13. data/lib/merb-core/controller/mixins/render.rb +113 -19
  14. data/lib/merb-core/controller/mixins/responder.rb +8 -2
  15. data/lib/merb-core/controller/template.rb +1 -1
  16. data/lib/merb-core/core_ext.rb +1 -0
  17. data/lib/merb-core/core_ext/class.rb +113 -6
  18. data/lib/merb-core/core_ext/hash.rb +43 -39
  19. data/lib/merb-core/core_ext/kernel.rb +75 -38
  20. data/lib/merb-core/core_ext/mash.rb +4 -4
  21. data/lib/merb-core/core_ext/object.rb +18 -7
  22. data/lib/merb-core/core_ext/set.rb +9 -4
  23. data/lib/merb-core/core_ext/string.rb +29 -9
  24. data/lib/merb-core/core_ext/time.rb +13 -0
  25. data/lib/merb-core/dispatch/cookies.rb +1 -2
  26. data/lib/merb-core/dispatch/dispatcher.rb +18 -10
  27. data/lib/merb-core/dispatch/exceptions.html.erb +1 -1
  28. data/lib/merb-core/dispatch/request.rb +3 -0
  29. data/lib/merb-core/dispatch/router.rb +10 -7
  30. data/lib/merb-core/dispatch/router/behavior.rb +36 -27
  31. data/lib/merb-core/dispatch/router/route.rb +7 -2
  32. data/lib/merb-core/dispatch/session/cookie.rb +4 -4
  33. data/lib/merb-core/dispatch/session/memcached.rb +17 -5
  34. data/lib/merb-core/logger.rb +2 -2
  35. data/lib/merb-core/plugins.rb +16 -4
  36. data/lib/merb-core/rack/adapter/ebb.rb +4 -1
  37. data/lib/merb-core/rack/adapter/evented_mongrel.rb +2 -0
  38. data/lib/merb-core/rack/adapter/fcgi.rb +1 -0
  39. data/lib/merb-core/rack/adapter/mongrel.rb +1 -0
  40. data/lib/merb-core/rack/adapter/runner.rb +1 -0
  41. data/lib/merb-core/rack/adapter/thin.rb +3 -1
  42. data/lib/merb-core/rack/adapter/webrick.rb +1 -0
  43. data/lib/merb-core/rack/application.rb +17 -1
  44. data/lib/merb-core/server.rb +78 -28
  45. data/lib/merb-core/test/helpers/multipart_request_helper.rb +3 -3
  46. data/lib/merb-core/test/helpers/request_helper.rb +81 -27
  47. data/lib/merb-core/test/helpers/view_helper.rb +1 -1
  48. data/lib/merb-core/test/matchers/controller_matchers.rb +55 -5
  49. data/lib/merb-core/test/matchers/route_matchers.rb +8 -17
  50. data/lib/merb-core/test/matchers/view_matchers.rb +53 -11
  51. data/lib/merb-core/test/run_specs.rb +22 -14
  52. data/lib/merb-core/test/tasks/spectasks.rb +54 -33
  53. data/lib/merb-core/vendor/facets/inflect.rb +91 -2
  54. data/lib/merb-core/version.rb +2 -2
  55. data/spec/private/config/config_spec.rb +54 -26
  56. data/spec/private/core_ext/class_spec.rb +22 -0
  57. data/spec/private/core_ext/hash_spec.rb +70 -54
  58. data/spec/private/core_ext/kernel_spec.rb +149 -14
  59. data/spec/private/core_ext/object_spec.rb +92 -10
  60. data/spec/private/core_ext/string_spec.rb +162 -4
  61. data/spec/private/core_ext/time_spec.rb +16 -0
  62. data/spec/private/dispatch/bootloader_spec.rb +24 -0
  63. data/spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb +1 -1
  64. data/spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb +1 -1
  65. data/spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb +1 -1
  66. data/spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb +1 -1
  67. data/spec/private/dispatch/fixture/config/black_hole.rb +12 -0
  68. data/spec/private/dispatch/fixture/log/merb_test.log +138 -0
  69. data/spec/private/plugins/plugin_spec.rb +79 -8
  70. data/spec/private/rack/application_spec.rb +1 -1
  71. data/spec/public/abstract_controller/controllers/filters.rb +26 -0
  72. data/spec/public/abstract_controller/controllers/helpers.rb +2 -2
  73. data/spec/public/abstract_controller/controllers/partial.rb +2 -2
  74. data/spec/public/abstract_controller/controllers/render.rb +16 -4
  75. data/spec/public/abstract_controller/filter_spec.rb +8 -0
  76. data/spec/public/abstract_controller/render_spec.rb +12 -0
  77. data/spec/public/controller/authentication_spec.rb +103 -0
  78. data/spec/public/controller/base_spec.rb +4 -3
  79. data/spec/public/controller/controllers/authentication.rb +47 -0
  80. data/spec/public/controller/controllers/base.rb +1 -0
  81. data/spec/public/controller/controllers/display.rb +30 -0
  82. data/spec/public/controller/controllers/views/layout/custom_arg.html.erb +1 -0
  83. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument/index.html.erb +1 -0
  84. data/spec/public/controller/display_spec.rb +17 -0
  85. data/spec/public/controller/spec_helper.rb +1 -0
  86. data/spec/public/controller/url_spec.rb +25 -7
  87. data/spec/public/core/merb_core_spec.rb +34 -0
  88. data/spec/public/directory_structure/directory/app/controllers/custom.rb +2 -2
  89. data/spec/public/directory_structure/directory/log/merb_test.log +48 -0
  90. data/spec/public/logger/logger_spec.rb +10 -4
  91. data/spec/public/reloading/directory/app/controllers/reload.rb +1 -1
  92. data/spec/public/reloading/directory/log/merb_test.log +13 -0
  93. data/spec/public/reloading/reload_spec.rb +23 -22
  94. data/spec/public/request/request_spec.rb +2 -0
  95. data/spec/public/router/nested_resources_spec.rb +7 -0
  96. data/spec/public/router/resources_spec.rb +46 -1
  97. data/spec/public/router/special_spec.rb +5 -1
  98. data/spec/public/test/controller_matchers_spec.rb +25 -1
  99. data/spec/public/test/controllers/spec_helper_controller.rb +8 -0
  100. data/spec/public/test/request_helper_spec.rb +52 -1
  101. data/spec/public/test/route_matchers_spec.rb +27 -25
  102. data/spec/public/test/view_helper_spec.rb +1 -1
  103. data/spec/public/test/view_matchers_spec.rb +148 -72
  104. metadata +23 -3
@@ -54,7 +54,7 @@ describe Merb::Test::ViewHelper do
54
54
  it "should raise an error if the ouput is not specified and cannot be found" do
55
55
  @output, @response_output, @controller = nil
56
56
 
57
- lambda { tag("div") }.should raise_error("The response output was not in it's usual places, please provide the output")
57
+ lambda { tag("div") }.should raise_error("The response output was not in its usual places, please provide the output")
58
58
  end
59
59
 
60
60
  it "should use @output if no output parameter is supplied" do
@@ -1,106 +1,182 @@
1
1
  require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
2
+ require "merb-core/test"
2
3
 
3
4
  Merb.start :environment => 'test', :log_level => :fatal
4
5
 
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
6
+ describe Merb::Test::Rspec::ViewMatchers do
7
+ include Merb::Test::ViewHelper
8
+
9
+ before(:each) do
10
+ @body = <<-EOF
11
+ <div id='main'>
12
+ <div class='inner'>hello, world!</div>
13
+ </div>
14
+ EOF
15
+ end
16
+
17
+ describe "#match_tag" do
18
+ it "should work with a HasContent matcher in the block" do
19
+ @body.should have_tag(:div) {|d| d.should_not contain("merb")}
20
+ end
21
+
22
+ it "should work with a 'with_tag' chain" do
23
+ @body.should have_tag(:div, :id => :main).with_tag(:div, :class => 'inner')
24
+ end
25
+
26
+ it "should work with a block before a with_tag" do
27
+ @body.should have_tag(:div, :id => :main) {|d| d.should_not contain("merb")}.with_tag(:div, :class => 'inner')
28
+ end
29
+ end
30
+
31
+ module Merb::Test::Rspec::ViewMatchers
32
+
33
+ describe HasTag do
34
+ describe "#matches?" do
35
+ before(:each) do
36
+ @document = stub(:document)
37
+ Hpricot.should_receive(:parse).and_return @document
38
+ end
12
39
 
13
- it "should should pass all found elements to the block" do
14
- @block_called = false
40
+ it "should should pass all found elements to the block" do
41
+ @block_called = false
15
42
 
16
- @document.should_receive(:search).and_return [""]
17
- HasTag.new("tag").matches?("") {|e| @block_called = true}
43
+ @document.should_receive(:search).and_return [""]
44
+ HasTag.new("tag").matches?("") {|e| @block_called = true}
18
45
 
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
46
+ @block_called.should be_true
47
+ end
26
48
 
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
49
+ it "should not intercept any errors raised in the block" do
50
+ @document.should_receive(:search).and_return [""]
51
+ lambda {
52
+ HasTag.new("tag").matches?("") {|e| true.should be_false }
53
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
54
+ end
30
55
  end
31
- end
32
56
 
33
- describe "#with_tag" do
34
- it "should set @inner_tag" do
35
- outer = HasTag.new("outer")
36
- inner = outer.with_tag("inner")
57
+ describe "#with_tag" do
58
+ it "should set @inner_tag" do
59
+ outer = HasTag.new("outer")
60
+ inner = outer.with_tag("inner")
37
61
 
38
- outer.selector.should include(inner.selector)
62
+ outer.selector.should include(inner.selector)
63
+ end
39
64
  end
40
- end
41
65
 
42
- describe "#selector" do
43
- it "should always start with \/\/" do
44
- HasTag.new("tag").selector.should =~ /^\/\//
45
- end
66
+ describe "#selector" do
67
+ it "should always start with \/\/" do
68
+ HasTag.new("tag").selector.should =~ /^\/\//
69
+ end
46
70
 
47
- it "should use @tag for the element" do
48
- HasTag.new("tag").selector.should include("tag")
49
- end
71
+ it "should use @tag for the element" do
72
+ HasTag.new("tag").selector.should include("tag")
73
+ end
50
74
 
51
- it "should use dot notation for the class" do
52
- HasTag.new("tag", :class => "class").selector.should include("tag.class")
53
- end
75
+ it "should use dot notation for the class" do
76
+ HasTag.new("tag", :class => "class").selector.should include("tag.class")
77
+ end
54
78
 
55
- it "should use pound(#) notation for the id" do
56
- HasTag.new("tag", :id => "id").selector.should include("tag#id")
57
- end
79
+ it "should use pound(#) notation for the id" do
80
+ HasTag.new("tag", :id => "id").selector.should include("tag#id")
81
+ end
58
82
 
59
- it "should include any custom attributes" do
60
- HasTag.new("tag", :random => :attribute).selector.should include("[@random=\"attribute\"]")
61
- end
83
+ it "should include any custom attributes" do
84
+ HasTag.new("tag", :random => :attribute).selector.should include("[@random=\"attribute\"]")
85
+ end
62
86
 
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
87
+ it "should not include the class as a custom attribute" do
88
+ HasTag.new("tag", :class => :my_class, :rand => :attr).selector.should_not include("[@class=\"my_class\"]")
89
+ end
66
90
 
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\"]")
91
+ it "should not include the id as a custom attribute" do
92
+ HasTag.new("tag", :id => :my_id, :rand => :attr).selector.should_not include("[@id=\"my_id\"]")
93
+ end
69
94
  end
70
- end
71
95
 
72
- describe "#failure_message" do
73
- it "should include the tag name" do
74
- HasTag.new("anytag").failure_message.should include("<anytag")
75
- end
96
+ describe "#failure_message" do
97
+ it "should include the tag name" do
98
+ HasTag.new("anytag").failure_message.should include("<anytag")
99
+ end
76
100
 
77
- it "should include the tag's id" do
78
- HasTag.new("div", :id => :spacer).failure_message.should include("<div id=\"spacer\"")
79
- end
101
+ it "should include the tag's id" do
102
+ HasTag.new("div", :id => :spacer).failure_message.should include("<div id=\"spacer\"")
103
+ end
80
104
 
81
- it "should include the tag's class" do
82
- HasTag.new("div", :class => :header).failure_message.should include("<div class=\"header\"")
105
+ it "should include the tag's class" do
106
+ HasTag.new("div", :class => :header).failure_message.should include("<div class=\"header\"")
107
+ end
108
+
109
+ it "should include the tag's custom attributes" do
110
+ HasTag.new("h1", :attr => :val, :foo => :bar).failure_message.should include("attr=\"val\"")
111
+ HasTag.new("h1", :attr => :val, :foo => :bar).failure_message.should include("foo=\"bar\"")
112
+ end
83
113
  end
114
+
115
+ describe "id, class, and attributes for error messages" do
116
+ it "should start with a space for a class, id, or custom attribute" do
117
+ HasTag.new("tag", :id => "identifier").id_for_error.should =~ /^ /
118
+ HasTag.new("tag", :class => "classifier").class_for_error.should =~ /^ /
119
+ HasTag.new("tag", :rand => "attr").attributes_for_error.should =~ /^ /
120
+ end
84
121
 
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\"")
122
+ it "should have 'class=\"classifier\"' in class_for_error" do
123
+ HasTag.new("tag", :class => "classifier").class_for_error.should include("class=\"classifier\"")
124
+ end
125
+
126
+ it "should have 'id=\"identifier\" in id_for_error" do
127
+ HasTag.new("tag", :id => "identifier").id_for_error.should include("id=\"identifier\"")
128
+ end
88
129
  end
89
130
  end
90
131
 
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 =~ /^ /
132
+ describe HasContent do
133
+ before(:each) do
134
+ @element = stub(:element)
135
+ @element.stub!(:inner_content).and_return <<-EOF
136
+ <div id='main'>
137
+ <div class='inner'>hello, world!</div>
138
+ </div>
139
+ EOF
140
+
141
+ @element.stub!(:contains?)
142
+ @element.stub!(:matches?)
96
143
  end
97
144
 
98
- it "should have 'class=\"classifier\"' in class_for_error" do
99
- HasTag.new("tag", :class => "classifier").class_for_error.should include("class=\"classifier\"")
145
+ describe "#matches?" do
146
+ it "should call element#contains? when the argument is a string" do
147
+ @element.should_receive(:contains?)
148
+
149
+ HasContent.new("hello, world!").matches?(@element)
150
+ end
151
+
152
+ it "should call element#matches? when the argument is a regular expression" do
153
+ @element.should_receive(:matches?)
154
+
155
+ HasContent.new(/hello, world/).matches?(@element)
156
+ end
100
157
  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\"")
158
+
159
+ describe "#failure_message" do
160
+ it "should include the content string" do
161
+ hc = HasContent.new("hello, world!")
162
+ hc.matches?(@element)
163
+
164
+ hc.failure_message.should include("\"hello, world!\"")
165
+ end
166
+
167
+ it "should include the content regular expresson" do
168
+ hc = HasContent.new(/hello,\sworld!/)
169
+ hc.matches?(@element)
170
+
171
+ hc.failure_message.should include("/hello,\\sworld!/")
172
+ end
173
+
174
+ it "should include the element's inner content" do
175
+ hc = HasContent.new(/hello,\sworld!/)
176
+ hc.matches?(@element)
177
+
178
+ hc.failure_message.should include(@element.inner_content)
179
+ end
104
180
  end
105
181
  end
106
182
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Zygmuntowicz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-24 00:00:00 -05:00
12
+ date: 2008-05-04 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -102,12 +102,15 @@ files:
102
102
  - spec/private/config/environment_spec.rb
103
103
  - spec/private/config/spec_helper.rb
104
104
  - spec/private/core_ext
105
+ - spec/private/core_ext/class_spec.rb
105
106
  - spec/private/core_ext/hash_spec.rb
106
107
  - spec/private/core_ext/kernel_spec.rb
107
108
  - spec/private/core_ext/object_spec.rb
108
109
  - spec/private/core_ext/set_spec.rb
109
110
  - spec/private/core_ext/string_spec.rb
111
+ - spec/private/core_ext/time_spec.rb
110
112
  - spec/private/dispatch
113
+ - spec/private/dispatch/bootloader_spec.rb
111
114
  - spec/private/dispatch/cookies_spec.rb
112
115
  - spec/private/dispatch/dispatch_spec.rb
113
116
  - spec/private/dispatch/fixture
@@ -129,6 +132,7 @@ files:
129
132
  - spec/private/dispatch/fixture/app/views/layout
130
133
  - spec/private/dispatch/fixture/app/views/layout/application.html.erb
131
134
  - spec/private/dispatch/fixture/config
135
+ - spec/private/dispatch/fixture/config/black_hole.rb
132
136
  - spec/private/dispatch/fixture/config/environments
133
137
  - spec/private/dispatch/fixture/config/environments/development.rb
134
138
  - spec/private/dispatch/fixture/config/environments/production.rb
@@ -267,8 +271,10 @@ files:
267
271
  - spec/public/boot_loader/boot_loader_spec.rb
268
272
  - spec/public/boot_loader/spec_helper.rb
269
273
  - spec/public/controller
274
+ - spec/public/controller/authentication_spec.rb
270
275
  - spec/public/controller/base_spec.rb
271
276
  - spec/public/controller/controllers
277
+ - spec/public/controller/controllers/authentication.rb
272
278
  - spec/public/controller/controllers/base.rb
273
279
  - spec/public/controller/controllers/display.rb
274
280
  - spec/public/controller/controllers/responder.rb
@@ -276,6 +282,7 @@ files:
276
282
  - spec/public/controller/controllers/views
277
283
  - spec/public/controller/controllers/views/layout
278
284
  - spec/public/controller/controllers/views/layout/custom.html.erb
285
+ - spec/public/controller/controllers/views/layout/custom_arg.html.erb
279
286
  - spec/public/controller/controllers/views/merb
280
287
  - spec/public/controller/controllers/views/merb/test
281
288
  - spec/public/controller/controllers/views/merb/test/fixtures
@@ -285,6 +292,8 @@ files:
285
292
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.xml.erb
286
293
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template
287
294
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/index.html.erb
295
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument
296
+ - spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument/index.html.erb
288
297
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default
289
298
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default/index.html.erb
290
299
  - spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout
@@ -301,6 +310,8 @@ files:
301
310
  - spec/public/controller/responder_spec.rb
302
311
  - spec/public/controller/spec_helper.rb
303
312
  - spec/public/controller/url_spec.rb
313
+ - spec/public/core
314
+ - spec/public/core/merb_core_spec.rb
304
315
  - spec/public/DEFINITIONS
305
316
  - spec/public/directory_structure
306
317
  - spec/public/directory_structure/directory
@@ -362,6 +373,12 @@ files:
362
373
  - spec/public/test/controllers/controller_assertion_mock.rb
363
374
  - spec/public/test/controllers/dispatch_controller.rb
364
375
  - spec/public/test/controllers/spec_helper_controller.rb
376
+ - spec/public/test/example_groups
377
+ - spec/public/test/example_groups/views
378
+ - spec/public/test/example_groups/views/test
379
+ - spec/public/test/helpers
380
+ - spec/public/test/helpers/controllers
381
+ - spec/public/test/matchers
365
382
  - spec/public/test/multipart_request_helper_spec.rb
366
383
  - spec/public/test/multipart_upload_text_file.txt
367
384
  - spec/public/test/request_helper_spec.rb
@@ -381,6 +398,7 @@ files:
381
398
  - lib/merb-core/controller/merb_controller.rb
382
399
  - lib/merb-core/controller/mime.rb
383
400
  - lib/merb-core/controller/mixins
401
+ - lib/merb-core/controller/mixins/authentication.rb
384
402
  - lib/merb-core/controller/mixins/controller.rb
385
403
  - lib/merb-core/controller/mixins/render.rb
386
404
  - lib/merb-core/controller/mixins/responder.rb
@@ -395,6 +413,7 @@ files:
395
413
  - lib/merb-core/core_ext/rubygems.rb
396
414
  - lib/merb-core/core_ext/set.rb
397
415
  - lib/merb-core/core_ext/string.rb
416
+ - lib/merb-core/core_ext/time.rb
398
417
  - lib/merb-core/core_ext.rb
399
418
  - lib/merb-core/dispatch
400
419
  - lib/merb-core/dispatch/cookies.rb
@@ -432,6 +451,7 @@ files:
432
451
  - lib/merb-core/rack.rb
433
452
  - lib/merb-core/server.rb
434
453
  - lib/merb-core/test
454
+ - lib/merb-core/test/example_groups
435
455
  - lib/merb-core/test/helpers
436
456
  - lib/merb-core/test/helpers/controller_helper.rb
437
457
  - lib/merb-core/test/helpers/multipart_request_helper.rb
@@ -459,7 +479,7 @@ files:
459
479
  - lib/merb-core/version.rb
460
480
  - lib/merb-core.rb
461
481
  has_rdoc: true
462
- homepage: http://merb.devjavu.com
482
+ homepage: http://merbivore.com
463
483
  post_install_message:
464
484
  rdoc_options: []
465
485