chespirito 0.0.3 → 0.0.4
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 +4 -4
- data/README.md +10 -8
- data/chespirito.gemspec +1 -1
- data/lib/chespirito/app.rb +8 -8
- data/lib/chespirito/request.rb +16 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c26d5cfd95f22fdb7fa89e0f16c36cc551f757c4009c42dbd36c95798f27c252
|
4
|
+
data.tar.gz: '09c340a8e1776bf4d33e578ba6475110d84703d2c5a0fc79b3bfff6f45859a75'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75895b71b94768410da2bae31f1969dc7fde2b374c6d45ca9128049b97d7b3571163fe56ebb3f54a36f0f6c0b38cd178d9157dbba71abe403a30e8eeeb9c24d7
|
7
|
+
data.tar.gz: 21684e74e4478c61fe5f56b85c4a31d72e95489fb5a3ebb68a19cada1e46dca52b89e1aac2502632d15b85494cb66e6cc57b769196fe1b01f5649bfb2ea98617
|
data/README.md
CHANGED
@@ -8,12 +8,13 @@
|
|
8
8
|
[](https://github.com/rubocop/rubocop)
|
9
9
|
[](https://rubystyle.guide)
|
10
10
|
```
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
|
15
|
-
|
16
|
-
|
11
|
+
( ) _ _ ( )_
|
12
|
+
___ | |__ __ ___ _ _ (_) _ __ (_)| ,_) _
|
13
|
+
/'___)| _ `\ /'__`\/',__)( '_`\ | |( '__)| || | /'_`\
|
14
|
+
( (___ | | | |( ___/\__, \| (_) )| || | | || |_ ( (_) )
|
15
|
+
`\____)(_) (_)`\____)(____/| ,__/'(_)(_) (_)`\__)`\___/'
|
16
|
+
| |
|
17
|
+
(_)
|
17
18
|
```
|
18
19
|
|
19
20
|
[chespirito](https://rubygems.org/gems/chespirito) is a dead simple, yet Rack-compatible, web framework written in Ruby.
|
@@ -54,6 +55,7 @@ Usage: make <target>
|
|
54
55
|
## Boostrapping an application using Chespirito and Adelnor
|
55
56
|
|
56
57
|
1. Install the gems:
|
58
|
+
|
57
59
|
```bash
|
58
60
|
$ gem install chespirito adelnor
|
59
61
|
```
|
@@ -89,7 +91,7 @@ class HelloController < Chespirito::Controller
|
|
89
91
|
end
|
90
92
|
```
|
91
93
|
|
92
|
-
4. Run the app using Adelnor (or you can choose
|
94
|
+
4. Run the app using Adelnor (or you can choose another web server like Puma, Unicorn, etc):
|
93
95
|
|
94
96
|
```ruby
|
95
97
|
Adelnor::Server.run MyApp.application, 3000
|
@@ -99,4 +101,4 @@ Adelnor::Server.run MyApp.application, 3000
|
|
99
101
|
|
100
102
|
----
|
101
103
|
|
102
|
-
[ASCII art generator](http://
|
104
|
+
[ASCII art generator](http://www.network-science.de/ascii/)
|
data/chespirito.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'chespirito'
|
5
|
-
spec.version = '0.0.
|
5
|
+
spec.version = '0.0.4'
|
6
6
|
spec.summary = 'Chespirito Ruby web framework'
|
7
7
|
spec.description = 'A dead simple, yet Rack-compatible, web framework written in Ruby'
|
8
8
|
spec.authors = ['Leandro Proença']
|
data/lib/chespirito/app.rb
CHANGED
@@ -26,14 +26,14 @@ module Chespirito
|
|
26
26
|
def dispatch(request) = @router.dispatch(request)
|
27
27
|
|
28
28
|
def call(env)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
request = ::Chespirito::Request.build(env)
|
30
|
+
response = dispatch(request)
|
31
|
+
|
32
|
+
[
|
33
|
+
response.status,
|
34
|
+
response.headers,
|
35
|
+
[response.body]
|
36
|
+
]
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
data/lib/chespirito/request.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rack'
|
4
4
|
require 'json'
|
5
|
+
require 'cgi'
|
5
6
|
|
6
7
|
module Chespirito
|
7
8
|
class Request
|
@@ -19,7 +20,9 @@ module Chespirito
|
|
19
20
|
def self.build(env)
|
20
21
|
rack_request = Rack::Request.new(env)
|
21
22
|
|
22
|
-
body_params = rack_request.post? ? (
|
23
|
+
body_params = rack_request.post? ? parse_body_params(rack_request.body.read,
|
24
|
+
rack_request.env['Content-Type']) : {}
|
25
|
+
|
23
26
|
params = rack_request.params.merge(body_params)
|
24
27
|
|
25
28
|
new(
|
@@ -31,6 +34,18 @@ module Chespirito
|
|
31
34
|
)
|
32
35
|
end
|
33
36
|
|
37
|
+
def self.parse_body_params(body_data, content_type)
|
38
|
+
case content_type
|
39
|
+
in 'application/json'; JSON.parse(body_data)
|
40
|
+
in 'application/x-www-form-urlencoded'
|
41
|
+
CGI.unescape(body_data).split('&').each_with_object({}) do |param, hash|
|
42
|
+
key, value = param.split('=')
|
43
|
+
hash[key] = value
|
44
|
+
end
|
45
|
+
else {}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
34
49
|
def add_param!(name, value)
|
35
50
|
@params ||= {}
|
36
51
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chespirito
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Proença
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -61,7 +61,7 @@ homepage: https://github.com/leandronsp/chespirito
|
|
61
61
|
licenses:
|
62
62
|
- MIT
|
63
63
|
metadata: {}
|
64
|
-
post_install_message:
|
64
|
+
post_install_message:
|
65
65
|
rdoc_options: []
|
66
66
|
require_paths:
|
67
67
|
- lib
|
@@ -76,8 +76,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
|
-
rubygems_version: 3.
|
80
|
-
signing_key:
|
79
|
+
rubygems_version: 3.4.10
|
80
|
+
signing_key:
|
81
81
|
specification_version: 4
|
82
82
|
summary: Chespirito Ruby web framework
|
83
83
|
test_files: []
|