cuba 3.0.0.rc2 → 3.0.0.rc3
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/cuba.gemspec +1 -1
- data/lib/cuba.rb +48 -1
- data/test/accept.rb +5 -5
- data/test/captures.rb +8 -8
- data/test/composition.rb +2 -2
- data/test/cookie.rb +34 -0
- data/test/extension.rb +1 -1
- data/test/helper.rb +2 -2
- data/test/host.rb +2 -2
- data/test/integration.rb +1 -6
- data/test/match.rb +5 -5
- data/test/middleware.rb +4 -1
- data/test/number.rb +2 -2
- data/test/on.rb +7 -7
- data/test/param.rb +3 -3
- data/test/path.rb +7 -7
- data/test/render.rb +1 -1
- data/test/root.rb +3 -3
- data/test/run.rb +5 -5
- data/test/segment.rb +5 -5
- metadata +9 -8
data/cuba.gemspec
CHANGED
data/lib/cuba.rb
CHANGED
|
@@ -1,8 +1,55 @@
|
|
|
1
1
|
require "rack"
|
|
2
|
+
require "time"
|
|
2
3
|
|
|
3
4
|
class Cuba
|
|
4
5
|
class RedefinitionError < StandardError; end
|
|
5
6
|
|
|
7
|
+
class Response
|
|
8
|
+
attr_accessor :status
|
|
9
|
+
|
|
10
|
+
attr :headers
|
|
11
|
+
|
|
12
|
+
def initialize(status = 200, headers = { "Content-Type" => "text/html" })
|
|
13
|
+
@status = status
|
|
14
|
+
@headers = headers
|
|
15
|
+
@body = []
|
|
16
|
+
@length = 0
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def [](key)
|
|
20
|
+
@headers[key]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def []=(key, value)
|
|
24
|
+
@headers[key] = value
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def write(str)
|
|
28
|
+
s = str.to_s
|
|
29
|
+
|
|
30
|
+
@length += s.bytesize
|
|
31
|
+
@headers["Content-Length"] = @length.to_s
|
|
32
|
+
@body << s
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def redirect(path, status = 302)
|
|
36
|
+
@headers = { "Location" => path }
|
|
37
|
+
@status = status
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def finish
|
|
41
|
+
[@status, @headers, @body]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def set_cookie(key, value)
|
|
45
|
+
Rack::Utils.set_cookie_header!(@headers, key, value)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def delete_cookie(key, value = {})
|
|
49
|
+
Rack::Utils.delete_cookie_header!(@headers, key, value)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
6
53
|
@@methods = []
|
|
7
54
|
|
|
8
55
|
class << self
|
|
@@ -74,7 +121,7 @@ class Cuba
|
|
|
74
121
|
def call!(env)
|
|
75
122
|
@env = env
|
|
76
123
|
@req = Rack::Request.new(env)
|
|
77
|
-
@res =
|
|
124
|
+
@res = Cuba::Response.new
|
|
78
125
|
|
|
79
126
|
# This `catch` statement will either receive a
|
|
80
127
|
# rack response tuple via a `halt`, or will
|
data/test/accept.rb
CHANGED
|
@@ -7,12 +7,12 @@ test "accept mimetypes" do
|
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
env = { "HTTP_ACCEPT" => "application/xml",
|
|
10
|
+
env = { "HTTP_ACCEPT" => "application/xml",
|
|
11
11
|
"SCRIPT_NAME" => "/", "PATH_INFO" => "/post" }
|
|
12
12
|
|
|
13
|
-
_, _,
|
|
13
|
+
_, _, body = Cuba.call(env)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
assert_response body, ["application/xml"]
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
test "tests don't fail when you don't specify an accept type" do
|
|
@@ -26,7 +26,7 @@ test "tests don't fail when you don't specify an accept type" do
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
_, _,
|
|
29
|
+
_, _, body = Cuba.call({})
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
assert_response body, ["Default action"]
|
|
32
32
|
end
|
data/test/captures.rb
CHANGED
|
@@ -11,7 +11,7 @@ test "doesn't yield HOST" do
|
|
|
11
11
|
|
|
12
12
|
_, _, resp = Cuba.call(env)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
assert_response resp, ["0"]
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
test "doesn't yield the verb" do
|
|
@@ -25,7 +25,7 @@ test "doesn't yield the verb" do
|
|
|
25
25
|
|
|
26
26
|
_, _, resp = Cuba.call(env)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
assert_response resp, ["0"]
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
test "doesn't yield the path" do
|
|
@@ -40,7 +40,7 @@ test "doesn't yield the path" do
|
|
|
40
40
|
|
|
41
41
|
_, _, resp = Cuba.call(env)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
assert_response resp, ["0"]
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
test "yields the segment" do
|
|
@@ -55,7 +55,7 @@ test "yields the segment" do
|
|
|
55
55
|
|
|
56
56
|
_, _, resp = Cuba.call(env)
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
assert_response resp, ["johndoe"]
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
test "yields a number" do
|
|
@@ -70,7 +70,7 @@ test "yields a number" do
|
|
|
70
70
|
|
|
71
71
|
_, _, resp = Cuba.call(env)
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
assert_response resp, ["101"]
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
test "yield a file name with a matching extension" do
|
|
@@ -85,7 +85,7 @@ test "yield a file name with a matching extension" do
|
|
|
85
85
|
|
|
86
86
|
_, _, resp = Cuba.call(env)
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
assert_response resp, ["app"]
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
test "yields a segment per nested block" do
|
|
@@ -106,7 +106,7 @@ test "yields a segment per nested block" do
|
|
|
106
106
|
|
|
107
107
|
_, _, resp = Cuba.call(env)
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
assert_response resp, ["one", "two", "three"]
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
test "consumes a slash if needed" do
|
|
@@ -121,5 +121,5 @@ test "consumes a slash if needed" do
|
|
|
121
121
|
|
|
122
122
|
_, _, resp = Cuba.call(env)
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
assert_response resp, ["foo/bar.css"]
|
|
125
125
|
end
|
data/test/composition.rb
CHANGED
data/test/cookie.rb
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.expand_path("helper", File.dirname(__FILE__))
|
|
2
|
+
|
|
3
|
+
test "set cookie" do
|
|
4
|
+
Cuba.define do
|
|
5
|
+
on default do
|
|
6
|
+
res.set_cookie("foo", "bar")
|
|
7
|
+
res.set_cookie("bar", "baz")
|
|
8
|
+
res.write "Hello"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
env = { "SCRIPT_NAME" => "/", "PATH_INFO" => "/" }
|
|
13
|
+
|
|
14
|
+
_, headers, body = Cuba.call(env)
|
|
15
|
+
|
|
16
|
+
assert_equal "foo=bar\nbar=baz", headers["Set-Cookie"]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
test "delete cookie" do
|
|
20
|
+
Cuba.define do
|
|
21
|
+
on default do
|
|
22
|
+
res.set_cookie("foo", "bar")
|
|
23
|
+
res.delete_cookie("foo")
|
|
24
|
+
res.write "Hello"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
env = { "SCRIPT_NAME" => "/", "PATH_INFO" => "/" }
|
|
29
|
+
|
|
30
|
+
_, headers, body = Cuba.call(env)
|
|
31
|
+
|
|
32
|
+
assert_equal "foo=; expires=Thu, 01-Jan-1970 00:00:00 GMT",
|
|
33
|
+
headers["Set-Cookie"]
|
|
34
|
+
end
|
data/test/extension.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/host.rb
CHANGED
|
@@ -11,7 +11,7 @@ test "matches a host" do
|
|
|
11
11
|
|
|
12
12
|
_, _, resp = Cuba.call(env)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
assert_response resp, ["worked"]
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
test "matches a host with a regexp" do
|
|
@@ -25,5 +25,5 @@ test "matches a host with a regexp" do
|
|
|
25
25
|
|
|
26
26
|
_, _, resp = Cuba.call(env)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
assert_response resp, ["worked"]
|
|
29
29
|
end
|
data/test/integration.rb
CHANGED
|
@@ -79,14 +79,9 @@ test "reset and use" do
|
|
|
79
79
|
|
|
80
80
|
assert 200 == status
|
|
81
81
|
assert "text/html" == headers["Content-Type"]
|
|
82
|
-
|
|
82
|
+
assert_response resp, ["2nd Default"]
|
|
83
83
|
|
|
84
84
|
assert "1" == env["m.first"]
|
|
85
85
|
assert "2" == env["m.second"]
|
|
86
86
|
assert "3" == env["m.block"]
|
|
87
87
|
end
|
|
88
|
-
|
|
89
|
-
test "examples" do
|
|
90
|
-
`cd example && rake -I../lib`
|
|
91
|
-
assert $?.exitstatus == 0
|
|
92
|
-
end
|
data/test/match.rb
CHANGED
|
@@ -13,7 +13,7 @@ test "text-book example" do |env|
|
|
|
13
13
|
|
|
14
14
|
_, _, resp = Cuba.call(env)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
assert_response resp, ["123"]
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
test "multi-param" do |env|
|
|
@@ -28,7 +28,7 @@ test "multi-param" do |env|
|
|
|
28
28
|
|
|
29
29
|
_, _, resp = Cuba.call(env)
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
assert_response resp, ["jdoe", "123"]
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
test "regex nesting" do |env|
|
|
@@ -46,7 +46,7 @@ test "regex nesting" do |env|
|
|
|
46
46
|
|
|
47
47
|
_, _, resp = Cuba.call(env)
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
assert_response resp, ["jdoe", "123"]
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
test "regex nesting colon param style" do |env|
|
|
@@ -64,7 +64,7 @@ test "regex nesting colon param style" do |env|
|
|
|
64
64
|
|
|
65
65
|
_, _, resp = Cuba.call(env)
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
assert_response resp, ["jdoe", "123"]
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
test "symbol matching" do |env|
|
|
@@ -82,5 +82,5 @@ test "symbol matching" do |env|
|
|
|
82
82
|
|
|
83
83
|
_, _, resp = Cuba.call(env)
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
assert_response resp, ["jdoe", "123"]
|
|
86
86
|
end
|
data/test/middleware.rb
CHANGED
data/test/number.rb
CHANGED
|
@@ -16,7 +16,7 @@ test "paths and numbers" do |env|
|
|
|
16
16
|
|
|
17
17
|
_, _, resp = Cuba.call(env)
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
assert_response resp, ["1", "2"]
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
test "paths and decimals" do |env|
|
|
@@ -32,5 +32,5 @@ test "paths and decimals" do |env|
|
|
|
32
32
|
|
|
33
33
|
_, _, resp = Cuba.call(env)
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
assert_response resp, []
|
|
36
36
|
end
|
data/test/on.rb
CHANGED
|
@@ -9,7 +9,7 @@ test "executes on true" do
|
|
|
9
9
|
|
|
10
10
|
_, _, resp = Cuba.call({})
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
assert_response resp, ["+1"]
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
test "executes on non-false" do
|
|
@@ -21,7 +21,7 @@ test "executes on non-false" do
|
|
|
21
21
|
|
|
22
22
|
_, _, resp = Cuba.call({ "PATH_INFO" => "/123", "SCRIPT_NAME" => "/" })
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
assert_response resp, ["+1"]
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
test "ensures SCRIPT_NAME and PATH_INFO are reverted" do
|
|
@@ -37,7 +37,7 @@ test "ensures SCRIPT_NAME and PATH_INFO are reverted" do
|
|
|
37
37
|
|
|
38
38
|
assert_equal "/", env["SCRIPT_NAME"]
|
|
39
39
|
assert_equal "/hello", env["PATH_INFO"]
|
|
40
|
-
|
|
40
|
+
assert_response resp, []
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
test "skips consecutive matches" do
|
|
@@ -60,7 +60,7 @@ test "skips consecutive matches" do
|
|
|
60
60
|
_, _, resp = Cuba.call(env)
|
|
61
61
|
|
|
62
62
|
assert_equal "foo", env["foo"]
|
|
63
|
-
|
|
63
|
+
assert_response resp, ["foo"]
|
|
64
64
|
|
|
65
65
|
assert ! env["bar"]
|
|
66
66
|
end
|
|
@@ -78,7 +78,7 @@ test "finds first match available" do
|
|
|
78
78
|
|
|
79
79
|
_, _, resp = Cuba.call({})
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
assert_response resp, ["bar"]
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
test "reverts a half-met matcher" do
|
|
@@ -91,7 +91,7 @@ test "reverts a half-met matcher" do
|
|
|
91
91
|
env = { "PATH_INFO" => "/post", "SCRIPT_NAME" => "/" }
|
|
92
92
|
_, _, resp = Cuba.call(env)
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
assert_response resp, []
|
|
95
95
|
assert_equal "/post", env["PATH_INFO"]
|
|
96
96
|
assert_equal "/", env["SCRIPT_NAME"]
|
|
97
|
-
end
|
|
97
|
+
end
|
data/test/param.rb
CHANGED
|
@@ -20,7 +20,7 @@ test "yields a param" do
|
|
|
20
20
|
|
|
21
21
|
_, _, resp = Cuba.call(env)
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
assert_response resp, ["john@doe.com"]
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
test "doesn't yield a missing param" do
|
|
@@ -30,7 +30,7 @@ test "doesn't yield a missing param" do
|
|
|
30
30
|
|
|
31
31
|
_, _, resp = Cuba.call(env)
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
assert_response resp, ["No email"]
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
test "doesn't yield an empty param" do
|
|
@@ -40,5 +40,5 @@ test "doesn't yield an empty param" do
|
|
|
40
40
|
|
|
41
41
|
_, _, resp = Cuba.call(env)
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
assert_response resp, ["No email"]
|
|
44
44
|
end
|
data/test/path.rb
CHANGED
|
@@ -13,7 +13,7 @@ test "one level path" do |env|
|
|
|
13
13
|
|
|
14
14
|
_, _, resp = Cuba.call(env)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
assert_response resp, ["About"]
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
test "two level nested paths" do |env|
|
|
@@ -33,13 +33,13 @@ test "two level nested paths" do |env|
|
|
|
33
33
|
|
|
34
34
|
_, _, resp = Cuba.call(env)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
assert_response resp, ["+1"]
|
|
37
37
|
|
|
38
38
|
env["PATH_INFO"] = "/about/2"
|
|
39
39
|
|
|
40
40
|
_, _, resp = Cuba.call(env)
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
assert_response resp, ["+2"]
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
test "two level inlined paths" do |env|
|
|
@@ -54,7 +54,7 @@ test "two level inlined paths" do |env|
|
|
|
54
54
|
|
|
55
55
|
_, _, resp = Cuba.call(env)
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
assert_response resp, ["a", "b"]
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
test "a path with some regex captures" do |env|
|
|
@@ -68,7 +68,7 @@ test "a path with some regex captures" do |env|
|
|
|
68
68
|
|
|
69
69
|
_, _, resp = Cuba.call(env)
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
assert_response resp, ["123"]
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
test "matching the root" do |env|
|
|
@@ -82,5 +82,5 @@ test "matching the root" do |env|
|
|
|
82
82
|
|
|
83
83
|
_, _, resp = Cuba.call(env)
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
end
|
|
85
|
+
assert_response resp, ["Home"]
|
|
86
|
+
end
|
data/test/render.rb
CHANGED
data/test/root.rb
CHANGED
|
@@ -14,7 +14,7 @@ test "matching an empty segment" do
|
|
|
14
14
|
|
|
15
15
|
_, _, resp = Cuba.call(env)
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
assert_response resp, ["/"]
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
test "nested empty segments" do
|
|
@@ -36,5 +36,5 @@ test "nested empty segments" do
|
|
|
36
36
|
|
|
37
37
|
_, _, resp = Cuba.call(env)
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
end
|
|
39
|
+
assert_response resp, ["IT WORKS!", "///1"]
|
|
40
|
+
end
|
data/test/run.rb
CHANGED
|
@@ -15,9 +15,9 @@ test "redirect canonical example" do
|
|
|
15
15
|
|
|
16
16
|
env = { "SCRIPT_NAME" => "/", "PATH_INFO" => "/account" }
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
status, headers, resp = Cuba.call(env)
|
|
19
19
|
|
|
20
|
-
assert_equal "/login",
|
|
21
|
-
assert_equal 307,
|
|
22
|
-
|
|
23
|
-
end
|
|
20
|
+
assert_equal "/login", headers["Location"]
|
|
21
|
+
assert_equal 307, status
|
|
22
|
+
assert_response resp, []
|
|
23
|
+
end
|
data/test/segment.rb
CHANGED
|
@@ -17,7 +17,7 @@ test "matches numeric ids" do |env|
|
|
|
17
17
|
|
|
18
18
|
_, _, resp = Cuba.call(env)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
assert_response resp, ["1"]
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
test "matches decimal numbers" do |env|
|
|
@@ -25,7 +25,7 @@ test "matches decimal numbers" do |env|
|
|
|
25
25
|
|
|
26
26
|
_, _, resp = Cuba.call(env)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
assert_response resp, ["1.1"]
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
test "matches slugs" do |env|
|
|
@@ -33,7 +33,7 @@ test "matches slugs" do |env|
|
|
|
33
33
|
|
|
34
34
|
_, _, resp = Cuba.call(env)
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
assert_response resp, ["my-blog-post-about-cuba"]
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
test "matches only the first segment available" do |env|
|
|
@@ -41,5 +41,5 @@ test "matches only the first segment available" do |env|
|
|
|
41
41
|
|
|
42
42
|
_, _, resp = Cuba.call(env)
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
end
|
|
44
|
+
assert_response resp, ["one"]
|
|
45
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cuba
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.0.
|
|
4
|
+
version: 3.0.0.rc3
|
|
5
5
|
prerelease: 6
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-02
|
|
12
|
+
date: 2012-03-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rack
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2151932460 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2151932460
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: cutest
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2151931380 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2151931380
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: capybara
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2151929200 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,7 +43,7 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2151929200
|
|
47
47
|
description: Cuba is a microframework for web applications.
|
|
48
48
|
email:
|
|
49
49
|
- michel@soveran.com
|
|
@@ -62,6 +62,7 @@ files:
|
|
|
62
62
|
- test/accept.rb
|
|
63
63
|
- test/captures.rb
|
|
64
64
|
- test/composition.rb
|
|
65
|
+
- test/cookie.rb
|
|
65
66
|
- test/extension.rb
|
|
66
67
|
- test/helper.rb
|
|
67
68
|
- test/host.rb
|