merb-core 1.1.0.pre → 1.1.0.rc1

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.
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)