merb-core 1.1.0.pre → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ begin
20
20
 
21
21
  Jeweler::Tasks.new do |gemspec|
22
22
 
23
- gemspec.version = Merb::VERSION
23
+ gemspec.version = Merb::VERSION.dup
24
24
 
25
25
  gemspec.name = "merb-core"
26
26
  gemspec.description = "Merb. Pocket rocket web framework."
@@ -86,7 +86,7 @@ module Merb
86
86
  kookie << 'HttpOnly; ' if http_only
87
87
  cookies << kookie.rstrip
88
88
  end
89
- cookies.empty? ? {} : { 'Set-Cookie' => cookies }
89
+ cookies.empty? ? {} : { 'Set-Cookie' => cookies.join(Merb::Const::NEWLINE) }
90
90
  end
91
91
 
92
92
  end
@@ -124,6 +124,8 @@ module Merb
124
124
  end
125
125
 
126
126
  params = extract_options_from_args!(args) || { }
127
+ # Duplicating to avoid mutating arguments
128
+ params = params ? params.dup : {}
127
129
 
128
130
  params.each do |k, v|
129
131
  params[k] = identify(v, k)
@@ -16,6 +16,8 @@ module Merb
16
16
  @body.each_line(&callback)
17
17
  elsif @body.nil?
18
18
  @body.to_s.each_line(&callback)
19
+ elsif @body.is_a?(Integer)
20
+ @body.to_s.each_line(&callback)
19
21
  else
20
22
  @body.each(&callback)
21
23
  end
@@ -1,3 +1,3 @@
1
1
  module Merb
2
- VERSION = '1.1.0.pre'.freeze
2
+ VERSION = '1.1.0.rc1'.freeze
3
3
  end
@@ -24,42 +24,43 @@ describe Merb::Controller, "._default_cookie_domain" do
24
24
  end
25
25
 
26
26
  describe Merb::Controller, "#cookies creating" do
27
+ include Merb::Test::CookiesHelper
27
28
 
28
29
  it "should set all the cookies for a request" do
29
30
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
30
- controller.headers['Set-Cookie'].length.should == 5
31
+ extract_cookies(controller.headers).length.should == 5
31
32
  end
32
33
 
33
34
  it "should set a simple cookie" do
34
35
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
35
- cookie = controller.headers['Set-Cookie'].sort[1]
36
+ cookie = extract_cookies(controller.headers).sort[1]
36
37
  cookie.should match(/foo=bar;/)
37
38
  cookie.should match(/domain=specs.merbivore.com;/)
38
39
  end
39
40
 
40
41
  it "should set the cookie domain correctly when it is specified" do
41
42
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
42
- cookie = controller.headers['Set-Cookie'].sort[0]
43
+ cookie = extract_cookies(controller.headers).sort[0]
43
44
  cookie.should match(/awesome=super-cookie;/)
44
45
  cookie.should match(/domain=blog.merbivore.com;/)
45
46
  end
46
47
 
47
48
  it "should format the expires time to the correct format" do
48
49
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
49
- cookie = controller.headers['Set-Cookie'].sort[2]
50
+ cookie = extract_cookies(controller.headers).sort[2]
50
51
  cookie.should include("oldcookie=this+is+really+old;")
51
52
  cookie.should include("expires=Wed, 01-Jan-2020 00:00:00 GMT;")
52
53
  end
53
54
 
54
55
  it "should append secure to the end of the cookie header when marked as such" do
55
56
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
56
- cookie = controller.headers['Set-Cookie'].sort[3]
57
+ cookie = extract_cookies(controller.headers).sort[3]
57
58
  cookie.should match(/secure;$/)
58
59
  end
59
60
 
60
61
  it "should append HttpOnly to the end of the cookie header when marked as such" do
61
62
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :store_cookies)
62
- cookie = controller.headers['Set-Cookie'].sort[4]
63
+ cookie = extract_cookies(controller.headers).sort[4]
63
64
  cookie.should match(/HttpOnly;$/)
64
65
  end
65
66
 
@@ -67,7 +68,7 @@ describe Merb::Controller, "#cookies creating" do
67
68
  controller_klass = Merb::Test::Fixtures::Controllers::EmptyDefaultCookieDomain
68
69
  with_cookies(controller_klass) do |cookie_jar|
69
70
  controller = dispatch_to(controller_klass, :store_cookies)
70
- cookies = controller.headers['Set-Cookie'].sort
71
+ cookies = extract_cookies(controller.headers).sort
71
72
  cookies[1].should == "foo=bar; path=/;"
72
73
  end
73
74
  end
@@ -86,15 +87,16 @@ describe Merb::Controller, "#cookies creating" do
86
87
  end
87
88
 
88
89
  describe Merb::Controller, "#cookies destroying" do
90
+ include Merb::Test::CookiesHelper
89
91
 
90
92
  it "should send a cookie when deleting a cookie" do
91
93
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :destroy_cookies)
92
- controller.headers['Set-Cookie'].length.should == 1
94
+ extract_cookies(controller.headers).length.should == 1
93
95
  end
94
96
 
95
97
  it "should set the expiration time of the cookie being destroyed to the past" do
96
98
  controller = dispatch_to(Merb::Test::Fixtures::Controllers::CookiesController, :destroy_cookies)
97
- cookie = controller.headers['Set-Cookie'].sort[0]
99
+ cookie = extract_cookies(controller.headers).sort[0]
98
100
  cookie.should include("expires=Thu, 01-Jan-1970 00:00:00 GMT;")
99
101
  end
100
102
 
@@ -243,55 +243,65 @@ describe Merb::Controller, "#url(:this, *args)" do
243
243
  end
244
244
 
245
245
  it "should use the current route" do
246
- request("/simple").body.to_s.should == "/simple"
246
+ visit("/simple").body.to_s.should == "/simple"
247
247
  end
248
248
 
249
249
  it "should be able to generate a route with optional segments" do
250
- request("/no_optionals").body.to_s.should == "/no_optionals"
250
+ visit("/no_optionals").body.to_s.should == "/no_optionals"
251
251
  end
252
252
 
253
253
  it "should drop the optional request params if they are not specified when generating the route" do
254
- request("/no_optionals/one/two").body.to_s.should == "/no_optionals"
254
+ visit("/no_optionals/one/two").body.to_s.should == "/no_optionals"
255
255
  end
256
256
 
257
257
  it "should generate the optional segments as specified" do
258
- request("/one_optionals/one/two").body.to_s.should == "/one_optionals/one"
259
- request("/two_optionals/one/two").body.to_s.should == "/two_optionals/one/two"
258
+ visit("/one_optionals/one/two").body.to_s.should == "/one_optionals/one"
259
+ visit("/two_optionals/one/two").body.to_s.should == "/two_optionals/one/two"
260
260
  end
261
261
 
262
262
  it "should generate the route even if it is not a GET request" do
263
- request("/postage", :method => "post").body.to_s.should == "/postage"
263
+ visit("/postage", :post).body.to_s.should == "/postage"
264
264
  end
265
265
 
266
266
  it "should be able to tag on extra query string paramters" do
267
- request('/action/this_route_with_page').body.to_s.should == "/action/this_route_with_page?page=2"
267
+ visit('/action/this_route_with_page').body.to_s.should == "/action/this_route_with_page?page=2"
268
268
  end
269
269
 
270
270
  it "should work with deferred block routes" do
271
- request("/defer").body.to_s.should == "/defer"
271
+ visit("/defer").body.to_s.should == "/defer"
272
272
  end
273
273
 
274
274
  it "should not work with routes that do not have a path" do
275
- request("/foo/bar").should have_xpath("//h1[contains(.,'Generation Error')]")
275
+ begin
276
+ visit("/foo/bar")
277
+ fail "Should raise Webrat::PageLoadError"
278
+ rescue Webrat::PageLoadError => e
279
+ e.message.should have_xpath("//h1[contains(.,'Generation Error')]")
280
+ end
276
281
  end
277
282
 
278
283
  it "should raise an error when trying to generate a regexp route" do
279
- request("/regex").should have_xpath("//h1[contains(.,'Generation Error')]")
284
+ begin
285
+ visit("/regex")
286
+ fail "Should raise Webrat::PageLoadError"
287
+ rescue Webrat::PageLoadError => e
288
+ e.message.should have_xpath("//h1[contains(.,'Generation Error')]")
289
+ end
280
290
  end
281
291
 
282
292
  it "should work with resource routes" do
283
- request("/users").body.to_s.should == "/users"
284
- request("/users/10").body.to_s.should == "/users/10"
285
- request("/users/new").body.to_s.should == "/users/new"
286
- request("/users/10/edit").body.to_s.should == "/users/10/edit"
287
- request("/profile").body.to_s.should == "/profile"
293
+ visit("/users").body.to_s.should == "/users"
294
+ visit("/users/10").body.to_s.should == "/users/10"
295
+ visit("/users/new").body.to_s.should == "/users/new"
296
+ visit("/users/10/edit").body.to_s.should == "/users/10/edit"
297
+ visit("/profile").body.to_s.should == "/profile"
288
298
  end
289
299
 
290
300
  it "should work with nested resource routes" do
291
- request("/users/10/comments").body.to_s.should == "/users/10/comments"
292
- request("/users/10/comments/9").body.to_s.should == "/users/10/comments/9"
293
- request("/users/10/comments/new").body.to_s.should == "/users/10/comments/new"
294
- request("/users/10/comments/9/edit").body.to_s.should == "/users/10/comments/9/edit"
301
+ visit("/users/10/comments").body.to_s.should == "/users/10/comments"
302
+ visit("/users/10/comments/9").body.to_s.should == "/users/10/comments/9"
303
+ visit("/users/10/comments/new").body.to_s.should == "/users/10/comments/new"
304
+ visit("/users/10/comments/9/edit").body.to_s.should == "/users/10/comments/9/edit"
295
305
  end
296
306
  end
297
307
 
@@ -1,8 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_helper"))
2
2
  startup_merb
3
3
 
4
- require "mongrel"
5
-
6
4
  describe Merb::Request do
7
5
  it "should handle file upload for multipart/form-data posts" do
8
6
  file = Struct.new(:read, :filename, :path).
@@ -20,6 +20,7 @@ describe Merb::CookieSession do
20
20
  end
21
21
 
22
22
  describe Merb::CookieSession, "mixed into Merb::Controller" do
23
+ include Merb::Test::CookiesHelper
23
24
 
24
25
  before(:all) { @controller_klass = Merb::Test::Fixtures::Controllers::SessionsController }
25
26
 
@@ -72,7 +73,7 @@ describe Merb::CookieSession, "mixed into Merb::Controller" do
72
73
 
73
74
  it "should set cookie domain to default_cookie_domain if set" do
74
75
  controller = dispatch_to(@controller_klass, :index, :foo => "cookie")
75
- cookie = controller.headers['Set-Cookie'].sort[0]
76
+ cookie = extract_cookies(controller.headers).sort[0]
76
77
  cookie.should match(/_session_id=/)
77
78
  cookie.should match(/domain=.localhost.com/)
78
79
  end
@@ -33,6 +33,7 @@ describe "All session-store backends", :shared => true do
33
33
  end
34
34
 
35
35
  describe "All session-stores mixed into Merb::Controller", :shared => true do
36
+ include Merb::Test::CookiesHelper
36
37
 
37
38
  before(:all) { @controller_klass = Merb::Test::Fixtures::Controllers::SessionsController }
38
39
 
@@ -48,7 +49,7 @@ describe "All session-stores mixed into Merb::Controller", :shared => true do
48
49
  with_cookies(@controller_klass) do
49
50
  controller = dispatch_to(@controller_klass, :index, :foo => session_store_type)
50
51
  controller.request.session[:foo].should == session_store_type
51
- cookie_header = controller.headers["Set-Cookie"].first
52
+ cookie_header = extract_cookies(controller.headers).first
52
53
  cookie_header.should_not match(/expires/) # sessions expire when browser quits
53
54
  end
54
55
  end
@@ -81,7 +82,7 @@ describe "All session-stores mixed into Merb::Controller", :shared => true do
81
82
 
82
83
  controller = dispatch_to(@controller_klass, :destroy)
83
84
  controller.request.session.should be_empty
84
- cookie_header = controller.headers["Set-Cookie"].first
85
+ cookie_header = extract_cookies(controller.headers).first
85
86
  cookie_header.should match(/_session_id=;/)
86
87
  cookie_header.should match(/01-Jan-1970/)
87
88
  end
@@ -105,4 +106,4 @@ describe "All session-stores mixed into Merb::Controller", :shared => true do
105
106
  end
106
107
  end
107
108
 
108
- end
109
+ end
@@ -1,3 +1,4 @@
1
+ require 'json'
1
2
  class SpecHelperController < Merb::Controller
2
3
 
3
4
  def index
@@ -38,4 +39,4 @@ module Namespaced
38
39
  end
39
40
  end
40
41
  end
41
-
42
+
@@ -18,7 +18,7 @@ describe Merb::Test::RequestHelper do
18
18
  include WithPathPrefixHelper
19
19
 
20
20
  before(:each) do
21
- Merb::Controller._default_cookie_domain = "example.org"
21
+ Merb::Controller._default_cookie_domain = "example.com"
22
22
 
23
23
  Merb::Router.prepare do
24
24
  with(:controller => "merb/test/request_controller") do
@@ -30,123 +30,123 @@ describe Merb::Test::RequestHelper do
30
30
 
31
31
  it "should remove the path_prefix configuration option" do
32
32
  with_path_prefix '/foo' do
33
- request("/foo/path").should have_body('1')
33
+ visit("/foo/path").should have_body('1')
34
34
  end
35
35
  end
36
36
 
37
37
  it "should dispatch a request using GET by defalt" do
38
- request("/request_method").should have_body("Method - GET")
38
+ visit("/request_method").should have_body("Method - GET")
39
39
  end
40
40
 
41
41
  it "should work with have_selector" do
42
- request("/document").should have_selector("div div")
42
+ visit("/document").should have_selector("div div")
43
43
  end
44
44
 
45
45
  it "should work with have_xpath" do
46
- request("/document").should have_xpath("//div/div")
46
+ visit("/document").should have_xpath("//div/div")
47
47
  end
48
48
 
49
49
  it "should work with have_content" do
50
- request("/request_method").should contain("Method")
50
+ visit("/request_method").should contain("Method")
51
51
  end
52
52
 
53
53
  it "should persist cookies across sequential cookie setting requests" do
54
- request("/counter").should have_body("1")
55
- request("/counter").should have_body("2")
54
+ visit("/counter").should have_body("1")
55
+ visit("/counter").should have_body("2")
56
56
  end
57
57
 
58
58
  it "should persist cookies across requests that don't return any cookie headers" do
59
- request("/counter").should have_body("1")
60
- request("/void").should have_body("Void")
61
- request('/counter').should have_body("2")
59
+ visit("/counter").should have_body("1")
60
+ visit("/void").should have_body("Void")
61
+ visit('/counter').should have_body("2")
62
62
  end
63
63
 
64
64
  it "should delete cookies from the jar" do
65
- request("/counter").should have_body("1")
66
- request("/delete").should have_body("Delete")
67
- request("/counter").should have_body("1")
65
+ visit("/counter").should have_body("1")
66
+ visit("/delete").should have_body("Delete")
67
+ visit("/counter").should have_body("1")
68
68
  end
69
69
 
70
70
  it "should be able to disable the cookie jar" do
71
- request("/counter", :jar => nil).should have_body("1")
72
- request("/counter", :jar => nil).should have_body("1")
73
- request("/counter").should have_body("1")
74
- request("/counter").should have_body("2")
71
+ visit("/counter", :get, :jar => nil).should have_body("1")
72
+ visit("/counter", :get, :jar => nil).should have_body("1")
73
+ visit("/counter").should have_body("1")
74
+ visit("/counter").should have_body("2")
75
75
  end
76
76
 
77
77
  it "should be able to specify separate jars" do
78
- request("/counter", :jar => :one).should have_body("1")
79
- request("/counter", :jar => :two).should have_body("1")
80
- request("/counter", :jar => :one).should have_body("2")
81
- request("/counter", :jar => :two).should have_body("2")
78
+ visit("/counter", :get, :jar => :one).should have_body("1")
79
+ visit("/counter", :get, :jar => :two).should have_body("1")
80
+ visit("/counter", :get, :jar => :one).should have_body("2")
81
+ visit("/counter", :get, :jar => :two).should have_body("2")
82
82
  end
83
83
 
84
84
  it 'should allow a cookie to be set' do
85
- cookie = request("/counter").headers['Set-Cookie']
86
- request("/delete")
87
- request("/counter", :cookie => cookie).should have_body("2")
85
+ cookie = visit("/counter").headers['Set-Cookie']
86
+ visit("/delete")
87
+ visit("/counter", :get, :cookie => cookie).should have_body("2")
88
88
  end
89
89
 
90
90
  it "should respect cookie domains when no domain is explicitly set" do
91
- request("http://example.org/counter").should have_body("1")
92
- request("http://www.example.org/counter").should have_body("2")
93
- request("http://example.org/counter").should have_body("3")
94
- request("http://www.example.org/counter").should have_body("4")
91
+ visit("http://example.com/counter").should have_body("1")
92
+ visit("http://www.example.com/counter").should have_body("2")
93
+ visit("http://example.com/counter").should have_body("3")
94
+ visit("http://www.example.com/counter").should have_body("4")
95
95
  end
96
96
 
97
97
  it "should respect the domain set in the cookie" do
98
- request("http://example.org/domain").should have_body("1")
99
- request("http://foo.example.org/domain").should have_body("1")
100
- request("http://example.org/domain").should have_body("1")
101
- request("http://foo.example.org/domain").should have_body("2")
98
+ visit("http://example.org/domain").should have_body("1")
99
+ visit("http://foo.example.org/domain").should have_body("1")
100
+ visit("http://example.org/domain").should have_body("1")
101
+ visit("http://foo.example.org/domain").should have_body("2")
102
102
  end
103
103
 
104
104
  it "should respect the path set in the cookie" do
105
- request("/path").should have_body("1")
106
- request("/path/zomg").should have_body("1")
107
- request("/path").should have_body("1")
108
- request("/path/zomg").should have_body("2")
105
+ visit("/path").should have_body("1")
106
+ visit("/path/zomg").should have_body("1")
107
+ visit("/path").should have_body("1")
108
+ visit("/path/zomg").should have_body("2")
109
109
  end
110
110
 
111
111
  it "should use the most specific path cookie" do
112
- request("/set/short")
113
- request("/set/short/long")
114
- request("/set/short/long/read").should have_body("/set/short/long")
112
+ visit("/set/short")
113
+ visit("/set/short/long")
114
+ visit("/set/short/long/read").should have_body("/set/short/long")
115
115
  end
116
116
 
117
117
  it "should use the most specific path cookie even if it was defined first" do
118
- request("/set/short/long")
119
- request("/set/short")
120
- request("/set/short/long/read").should have_body("/set/short/long")
118
+ visit("/set/short/long")
119
+ visit("/set/short")
120
+ visit("/set/short/long/read").should have_body("/set/short/long")
121
121
  end
122
122
 
123
123
  it "should leave the least specific cookie intact when specifying a more specific path" do
124
- request("/set/short")
125
- request("/set/short/long/zomg/what/hi")
126
- request("/set/short/long/read").should have_body("/set/short")
124
+ visit("/set/short")
125
+ visit("/set/short/long/zomg/what/hi")
126
+ visit("/set/short/long/read").should have_body("/set/short")
127
127
  end
128
128
 
129
129
  it "should use the most specific domain cookie" do
130
- request("http://test.com/domain_set")
131
- request("http://one.test.com/domain_set")
132
- request("http://one.test.com/domain_get").should have_body("one.test.com")
130
+ visit("http://test.com/domain_set")
131
+ visit("http://one.test.com/domain_set")
132
+ visit("http://one.test.com/domain_get").should have_body("one.test.com")
133
133
  end
134
134
 
135
135
  it "should keep the less specific domain cookie" do
136
- request("http://test.com/domain_set").should be_successful
137
- request("http://one.test.com/domain_set").should be_successful
138
- request("http://test.com/domain_get").should have_body("test.com")
136
+ visit("http://test.com/domain_set").should be_successful
137
+ visit("http://one.test.com/domain_set").should be_successful
138
+ visit("http://test.com/domain_get").should have_body("test.com")
139
139
  end
140
140
 
141
141
  it "should be able to handle multiple cookies" do
142
- request("/multiple").should have_body("1 - 1")
143
- request("/multiple").should have_body("2 - 2")
142
+ visit("/multiple").should have_body("1 - 1")
143
+ visit("/multiple").should have_body("2 - 2")
144
144
  end
145
145
 
146
146
  it "should respect the expiration" do
147
- request("/expires").should have_body("1")
147
+ visit("/expires").should have_body("1")
148
148
  sleep(1)
149
- request("/expires").should have_body("1")
149
+ visit("/expires").should have_body("1")
150
150
  end
151
151
 
152
152
  end
@@ -97,6 +97,15 @@ module Merb
97
97
  end
98
98
  end
99
99
 
100
+ # Helper to extract cookies from headers
101
+ #
102
+ # This is needed in some specs for sessions and cookies
103
+ module Merb::Test::CookiesHelper
104
+ def extract_cookies(header)
105
+ header['Set-Cookie'] ? header['Set-Cookie'].split(Merb::Const::NEWLINE) : []
106
+ end
107
+ end
108
+
100
109
  Spec::Runner.configure do |config|
101
110
  config.include Merb::Test::Helper
102
111
  config.include Merb::Test::RspecMatchers
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.pre
4
+ prerelease: true
5
+ segments:
6
+ - 1
7
+ - 1
8
+ - 0
9
+ - rc1
10
+ version: 1.1.0.rc1
5
11
  platform: ruby
6
12
  authors:
7
13
  - Ezra Zygmuntowicz
@@ -9,99 +15,128 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-02-20 00:00:00 +00:00
18
+ date: 2010-03-14 00:00:00 +00:00
13
19
  default_executable: merb
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: bundler
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 9
31
+ - 3
23
32
  version: 0.9.3
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  - !ruby/object:Gem::Dependency
26
36
  name: extlib
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
30
39
  requirements:
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 9
45
+ - 13
33
46
  version: 0.9.13
34
- version:
47
+ type: :runtime
48
+ version_requirements: *id002
35
49
  - !ruby/object:Gem::Dependency
36
50
  name: erubis
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
40
53
  requirements:
41
54
  - - ">="
42
55
  - !ruby/object:Gem::Version
56
+ segments:
57
+ - 2
58
+ - 6
59
+ - 2
43
60
  version: 2.6.2
44
- version:
61
+ type: :runtime
62
+ version_requirements: *id003
45
63
  - !ruby/object:Gem::Dependency
46
64
  name: rake
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
50
67
  requirements:
51
68
  - - ">="
52
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
53
72
  version: "0"
54
- version:
73
+ type: :runtime
74
+ version_requirements: *id004
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: rspec
57
- type: :runtime
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
77
+ prerelease: false
78
+ requirement: &id005 !ruby/object:Gem::Requirement
60
79
  requirements:
61
80
  - - ">="
62
81
  - !ruby/object:Gem::Version
82
+ segments:
83
+ - 0
63
84
  version: "0"
64
- version:
85
+ type: :runtime
86
+ version_requirements: *id005
65
87
  - !ruby/object:Gem::Dependency
66
88
  name: rack
67
- type: :runtime
68
- version_requirement:
69
- version_requirements: !ruby/object:Gem::Requirement
89
+ prerelease: false
90
+ requirement: &id006 !ruby/object:Gem::Requirement
70
91
  requirements:
71
92
  - - ">="
72
93
  - !ruby/object:Gem::Version
94
+ segments:
95
+ - 0
73
96
  version: "0"
74
- version:
97
+ type: :runtime
98
+ version_requirements: *id006
75
99
  - !ruby/object:Gem::Dependency
76
100
  name: mime-types
77
- type: :runtime
78
- version_requirement:
79
- version_requirements: !ruby/object:Gem::Requirement
101
+ prerelease: false
102
+ requirement: &id007 !ruby/object:Gem::Requirement
80
103
  requirements:
81
104
  - - ">="
82
105
  - !ruby/object:Gem::Version
106
+ segments:
107
+ - 1
108
+ - 16
83
109
  version: "1.16"
84
- version:
110
+ type: :runtime
111
+ version_requirements: *id007
85
112
  - !ruby/object:Gem::Dependency
86
113
  name: rspec
87
- type: :development
88
- version_requirement:
89
- version_requirements: !ruby/object:Gem::Requirement
114
+ prerelease: false
115
+ requirement: &id008 !ruby/object:Gem::Requirement
90
116
  requirements:
91
117
  - - ">="
92
118
  - !ruby/object:Gem::Version
119
+ segments:
120
+ - 1
121
+ - 2
122
+ - 9
93
123
  version: 1.2.9
94
- version:
124
+ type: :development
125
+ version_requirements: *id008
95
126
  - !ruby/object:Gem::Dependency
96
127
  name: webrat
97
- type: :development
98
- version_requirement:
99
- version_requirements: !ruby/object:Gem::Requirement
128
+ prerelease: false
129
+ requirement: &id009 !ruby/object:Gem::Requirement
100
130
  requirements:
101
131
  - - ">="
102
132
  - !ruby/object:Gem::Version
133
+ segments:
134
+ - 0
135
+ - 3
136
+ - 1
103
137
  version: 0.3.1
104
- version:
138
+ type: :development
139
+ version_requirements: *id009
105
140
  description: Merb. Pocket rocket web framework.
106
141
  email: ez@engineyard.com
107
142
  executables:
@@ -2360,18 +2395,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
2360
2395
  requirements:
2361
2396
  - - ">="
2362
2397
  - !ruby/object:Gem::Version
2398
+ segments:
2399
+ - 0
2363
2400
  version: "0"
2364
- version:
2365
2401
  required_rubygems_version: !ruby/object:Gem::Requirement
2366
2402
  requirements:
2367
2403
  - - ">"
2368
2404
  - !ruby/object:Gem::Version
2405
+ segments:
2406
+ - 1
2407
+ - 3
2408
+ - 1
2369
2409
  version: 1.3.1
2370
- version:
2371
2410
  requirements: []
2372
2411
 
2373
2412
  rubyforge_project:
2374
- rubygems_version: 1.3.5
2413
+ rubygems_version: 1.3.6
2375
2414
  signing_key:
2376
2415
  specification_version: 3
2377
2416
  summary: Merb plugin that provides caching (page, action, fragment, object)