dandy 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dandy/generators/templates/actions/common/handle_errors.rb +8 -1
- data/lib/dandy/request.rb +12 -4
- data/lib/dandy/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa54fc46b2be97cb013b2d22afad52bbf4e84f72
|
4
|
+
data.tar.gz: 3bb80acca3196d720b3279a5d002d2c5af0ee706
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28b1940d80ed6f1326e5d378f4498ddd54d28bcb150abdeaa33b1b1399516a05407c2d53e16c405856211dc1a827b1f6d92219fadf7077e89405e0bd069d7647
|
7
|
+
data.tar.gz: 3f343cd6c228a69d0b6d2710a0519e0236d251c85a569ca16a1122f5cd1e35ddda8d7d5bfb142e3d267b9fc03c76c9fbbe5483130c6b137f304040db753040cc
|
@@ -1,5 +1,12 @@
|
|
1
1
|
class HandleErrors < Dandy::HandleErrors
|
2
2
|
def call
|
3
|
-
|
3
|
+
# implement your own error handling logic here.
|
4
|
+
# by default let's print the error to standard output
|
5
|
+
puts @dandy_error.message
|
6
|
+
puts @dandy_error.backtrace
|
7
|
+
|
8
|
+
# use preferred HTTP status code for different cases
|
9
|
+
# i.e. set_http_status(403) for authorization issue
|
10
|
+
set_http_status(500)
|
4
11
|
end
|
5
12
|
end
|
data/lib/dandy/request.rb
CHANGED
@@ -20,10 +20,17 @@ module Dandy
|
|
20
20
|
path = rack_env['PATH_INFO']
|
21
21
|
request_method = rack_env['REQUEST_METHOD']
|
22
22
|
match = @route_matcher.match(path, request_method)
|
23
|
-
|
23
|
+
|
24
|
+
headers = Hash[
|
25
|
+
*rack_env.select {|k, v| k.start_with? 'HTTP_'}
|
26
|
+
.collect {|k, v| [k.sub(/^HTTP_/, ''), v]}
|
27
|
+
.collect {|k, v| [k.split('_').collect(&:capitalize).join('-'), v]}
|
28
|
+
.flatten
|
29
|
+
]
|
30
|
+
register_params(headers, :dandy_headers)
|
24
31
|
|
25
32
|
if match.nil?
|
26
|
-
result = [404, {
|
33
|
+
result = [404, {'Content-Type' => headers['Accept']}, []]
|
27
34
|
else
|
28
35
|
query = Rack::Utils.parse_nested_query(rack_env['QUERY_STRING']).symbolize_keys
|
29
36
|
register_params(query, :dandy_query)
|
@@ -35,13 +42,13 @@ module Dandy
|
|
35
42
|
chain_result = chain.execute
|
36
43
|
|
37
44
|
if match.route.view
|
38
|
-
body =
|
45
|
+
body = @view_factory.create(match.route.view, headers['Accept'])
|
39
46
|
else
|
40
47
|
body = chain_result.is_a?(String) ? chain_result : JSON.generate(chain_result)
|
41
48
|
end
|
42
49
|
|
43
50
|
status = @container.resolve(:dandy_status)
|
44
|
-
result = [status, {
|
51
|
+
result = [status, {'Content-Type' => headers['Accept']}, [body]]
|
45
52
|
end
|
46
53
|
|
47
54
|
release
|
@@ -50,6 +57,7 @@ module Dandy
|
|
50
57
|
end
|
51
58
|
|
52
59
|
private
|
60
|
+
|
53
61
|
def create_scope
|
54
62
|
@container
|
55
63
|
.register_instance(self, :dandy_request)
|
data/lib/dandy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dandy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Kalinkin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hypo
|