merb-core 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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