cuba 3.9.2 → 3.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.
- checksums.yaml +5 -5
- data/.gems +4 -4
- data/README.md +1 -1
- data/cuba.gemspec +1 -1
- data/lib/cuba.rb +25 -0
- data/test/accept.rb +45 -0
- data/test/cookie.rb +5 -5
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0dd5ceaab614b795ad92e63b73c2d1d3359455a7970c703a366c781fc2b983ea
|
4
|
+
data.tar.gz: aa14c451bcfff884a710dd41105f1fc1ec24d03ab2dfb3ec25b264f3a136f2c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 970cab90c32a0c39862e79087f5740debd0d5d264b6bca0c6d94d60fee73645dc34e9c634459d9c952316f6000328f23f137d2f908a4e6e08a7040fecf1f667d
|
7
|
+
data.tar.gz: cbc70d253a2951d31d6f82c0fb8bb25e687817d687a0508d8ddd960bec9f43d062b680bd9221503a58f60fb3d594b51ff51668f594e4022b04c416148169d5c1
|
data/.gems
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
rack -v 2.2.3
|
2
|
+
rack-test -v 1.1.0
|
3
|
+
cutest -v 1.2.3
|
4
|
+
tilt -v 2.0.10
|
data/README.md
CHANGED
@@ -761,7 +761,7 @@ Contributing
|
|
761
761
|
------------
|
762
762
|
|
763
763
|
A good first step is to meet us on IRC and discuss ideas. If that's
|
764
|
-
not possible, you can create an issue
|
764
|
+
not possible, you can create an issue explaining the proposed change
|
765
765
|
and a use case. We pay a lot of attention to use cases, because our
|
766
766
|
goal is to keep the code base simple. In many cases, the result of
|
767
767
|
a conversation will be the creation of another tool, instead of the
|
data/cuba.gemspec
CHANGED
data/lib/cuba.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "delegate"
|
1
2
|
require "rack"
|
2
3
|
|
3
4
|
class Cuba
|
@@ -10,6 +11,12 @@ class Cuba
|
|
10
11
|
class Response
|
11
12
|
LOCATION = "Location".freeze
|
12
13
|
|
14
|
+
module ContentType
|
15
|
+
HTML = "text/html".freeze # :nodoc:
|
16
|
+
TEXT = "text/plain".freeze # :nodoc:
|
17
|
+
JSON = "application/json".freeze # :nodoc:
|
18
|
+
end
|
19
|
+
|
13
20
|
attr_accessor :status
|
14
21
|
|
15
22
|
attr :body
|
@@ -38,6 +45,24 @@ class Cuba
|
|
38
45
|
@body << s
|
39
46
|
end
|
40
47
|
|
48
|
+
# Write response body as text/plain
|
49
|
+
def text(str)
|
50
|
+
@headers[Rack::CONTENT_TYPE] = ContentType::TEXT
|
51
|
+
write(str)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Write response body as text/html
|
55
|
+
def html(str)
|
56
|
+
@headers[Rack::CONTENT_TYPE] = ContentType::HTML
|
57
|
+
write(str)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Write response body as application/json
|
61
|
+
def json(str)
|
62
|
+
@headers[Rack::CONTENT_TYPE] = ContentType::JSON
|
63
|
+
write(str)
|
64
|
+
end
|
65
|
+
|
41
66
|
def redirect(path, status = 302)
|
42
67
|
@headers[LOCATION] = path
|
43
68
|
@status = status
|
data/test/accept.rb
CHANGED
@@ -30,3 +30,48 @@ test "tests don't fail when you don't specify an accept type" do
|
|
30
30
|
|
31
31
|
assert_response body, ["Default action"]
|
32
32
|
end
|
33
|
+
|
34
|
+
test "accept HTML mimetype" do
|
35
|
+
Cuba.define do
|
36
|
+
on accept("text/html") do
|
37
|
+
res.write Cuba::Response::ContentType::HTML
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
env = { "HTTP_ACCEPT" => "text/html",
|
42
|
+
"SCRIPT_NAME" => "/", "PATH_INFO" => "/post" }
|
43
|
+
|
44
|
+
_, _, body = Cuba.call(env)
|
45
|
+
|
46
|
+
assert_response body, ["text/html"]
|
47
|
+
end
|
48
|
+
|
49
|
+
test "accept TEXT mimetype" do
|
50
|
+
Cuba.define do
|
51
|
+
on accept("text/plain") do
|
52
|
+
res.write Cuba::Response::ContentType::TEXT
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
env = { "HTTP_ACCEPT" => "text/plain",
|
57
|
+
"SCRIPT_NAME" => "/", "PATH_INFO" => "/post" }
|
58
|
+
|
59
|
+
_, _, body = Cuba.call(env)
|
60
|
+
|
61
|
+
assert_response body, ["text/plain"]
|
62
|
+
end
|
63
|
+
|
64
|
+
test "accept JSON mimetype" do
|
65
|
+
Cuba.define do
|
66
|
+
on accept("application/json") do
|
67
|
+
res.write Cuba::Response::ContentType::JSON
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
env = { "HTTP_ACCEPT" => "application/json",
|
72
|
+
"SCRIPT_NAME" => "/", "PATH_INFO" => "/get" }
|
73
|
+
|
74
|
+
_, _, body = Cuba.call(env)
|
75
|
+
|
76
|
+
assert_response body, ["application/json"]
|
77
|
+
end
|
data/test/cookie.rb
CHANGED
@@ -11,9 +11,9 @@ test "set cookie" do
|
|
11
11
|
|
12
12
|
env = { "SCRIPT_NAME" => "/", "PATH_INFO" => "/" }
|
13
13
|
|
14
|
-
|
14
|
+
_, headers, body = Cuba.call(env)
|
15
15
|
|
16
|
-
|
16
|
+
assert_equal "foo=bar\nbar=baz", headers["Set-Cookie"]
|
17
17
|
end
|
18
18
|
|
19
19
|
test "delete cookie" do
|
@@ -27,8 +27,8 @@ test "delete cookie" do
|
|
27
27
|
|
28
28
|
env = { "SCRIPT_NAME" => "/", "PATH_INFO" => "/" }
|
29
29
|
|
30
|
-
|
30
|
+
_, headers, body = Cuba.call(env)
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
assert_equal "foo=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT",
|
33
|
+
headers["Set-Cookie"]
|
34
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.9.
|
4
|
+
version: 3.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Martens
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -137,7 +137,7 @@ homepage: https://github.com/soveran/cuba
|
|
137
137
|
licenses:
|
138
138
|
- MIT
|
139
139
|
metadata: {}
|
140
|
-
post_install_message:
|
140
|
+
post_install_message:
|
141
141
|
rdoc_options: []
|
142
142
|
require_paths:
|
143
143
|
- lib
|
@@ -152,9 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
requirements: []
|
155
|
-
|
156
|
-
|
157
|
-
signing_key:
|
155
|
+
rubygems_version: 3.1.2
|
156
|
+
signing_key:
|
158
157
|
specification_version: 4
|
159
158
|
summary: Microframework for web applications.
|
160
159
|
test_files: []
|