blix-rest 0.8.2 → 0.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 +4 -4
- data/README.md +6 -1
- data/lib/blix/rest/controller.rb +12 -1
- data/lib/blix/rest/request_mapper.rb +3 -5
- data/lib/blix/rest/server.rb +1 -1
- data/lib/blix/rest/version.rb +1 -1
- data/lib/blix/rest.rb +6 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d876a893d297d43960e1d6a279a98268c81018c0a180633825e4457a04044041
|
4
|
+
data.tar.gz: '0482c6068226397b4ae4fe755268e28a33efbc2eba1cc0cae92750e9a72d8f2f'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2ea75d56a49de0989d60d2ee6e8708d847b840fb5fdb847c236075f7027d8607ff0c6e757b756b364b140022b8f146b0333720b40fb9d2f8f2331ab22202006
|
7
|
+
data.tar.gz: 6a713192c12649ab609ce1eb2ea0ea428b4fbef93e9f517827a9ac2d6cecb7251a2033a56f47945cba4a2a90b73afab47b06b9dcb6ed8a6f35cd03d669176c6c
|
data/README.md
CHANGED
@@ -236,12 +236,14 @@ have access to a number of methods
|
|
236
236
|
path_params : a hash of parameters constructed from variable parts of the path
|
237
237
|
post_params : a hash of parameters passed in the body of the request
|
238
238
|
params : all the params combined
|
239
|
+
allow_methods : allow the non standard http verbs in the controller. eg `:propfind `
|
239
240
|
user : the user making this request ( or nil if
|
240
241
|
format : the format the response should be in :json or :html
|
241
242
|
before : before hook ( opts ) - remember to add 'super' as first line !!!
|
242
243
|
after : after hook (opts,response)- remember to add 'super' as first line !!!
|
243
244
|
proxy : forward the call to another service (service,path, opts={}) , :include_query=>true/false
|
244
245
|
session : req.session
|
246
|
+
set_status : set the http response status ( 200 )
|
245
247
|
redirect : (path, status=302) redirect to another url.
|
246
248
|
request_ip : the ip of the request
|
247
249
|
render_erb : (template_name [,:layout=>name])
|
@@ -300,7 +302,7 @@ example:
|
|
300
302
|
|
301
303
|
before_route do |route|
|
302
304
|
route.default_option(:level,:visitor)
|
303
|
-
route.
|
305
|
+
route.path_prefix('/app')
|
304
306
|
end
|
305
307
|
...
|
306
308
|
end
|
@@ -334,6 +336,9 @@ options can include:
|
|
334
336
|
|
335
337
|
For more complete session management:
|
336
338
|
|
339
|
+
require 'blix/utils/redis_store'
|
340
|
+
require 'blix/rest/session'
|
341
|
+
|
337
342
|
class MyController < Blix::Rest::Controller
|
338
343
|
include Blix::Rest::Session
|
339
344
|
|
data/lib/blix/rest/controller.rb
CHANGED
@@ -82,7 +82,7 @@ module Blix::Rest
|
|
82
82
|
|
83
83
|
# ovverride the path method to return the internal path.
|
84
84
|
def path
|
85
|
-
p = req.path
|
85
|
+
p = CGI.unescape(req.path)
|
86
86
|
p = '/' + p if p[0, 1] != '/' # ensure a leading slash on path
|
87
87
|
idx = RequestMapper.path_root_length
|
88
88
|
if idx > 0
|
@@ -671,6 +671,17 @@ module Blix::Rest
|
|
671
671
|
end
|
672
672
|
end
|
673
673
|
|
674
|
+
def allow_methods(*methods)
|
675
|
+
out = String.new
|
676
|
+
methods.each do |method|
|
677
|
+
method = method.to_s.upcase
|
678
|
+
next if (HTTP_VERBS + ['ALL']).include?(method)
|
679
|
+
out << "def #{method.downcase}(*a, &b);route '#{method}', *a, &b;end\n"
|
680
|
+
end
|
681
|
+
puts out if $DEBUG || $VERBOSE
|
682
|
+
eval out unless out.empty?
|
683
|
+
end
|
684
|
+
|
674
685
|
end
|
675
686
|
|
676
687
|
end
|
@@ -317,11 +317,9 @@ module Blix::Rest
|
|
317
317
|
list.sort! { |a, b| a[0] <=> b[0] }
|
318
318
|
str = String.new
|
319
319
|
list.each do |route|
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
str << verb << "\t" << route[0] << route[1][verb] << "\n"
|
324
|
-
end
|
320
|
+
pairs = route[1].to_a.sort{|a,b| a[0]<=>b[0]}
|
321
|
+
pairs.each do |pair|
|
322
|
+
str << pair[0] << "\t" << route[0] << "\t" << pair[1] << "\n"
|
325
323
|
end
|
326
324
|
str << "\n"
|
327
325
|
end
|
data/lib/blix/rest/server.rb
CHANGED
@@ -160,7 +160,7 @@ module Blix::Rest
|
|
160
160
|
|
161
161
|
verb = env['REQUEST_METHOD']
|
162
162
|
path = req.path
|
163
|
-
path = CGI.unescape(path)
|
163
|
+
path = CGI.unescape(path) unless _options[:unescape] == false
|
164
164
|
|
165
165
|
blk, path_params, options, is_wild = RequestMapper.match(verb, path)
|
166
166
|
|
data/lib/blix/rest/version.rb
CHANGED
data/lib/blix/rest.rb
CHANGED
@@ -96,9 +96,14 @@ module Blix
|
|
96
96
|
|
97
97
|
def initialize(message, status = nil, headers = nil)
|
98
98
|
super(message || "")
|
99
|
-
@status = status || 406
|
99
|
+
@status = (status || 406).to_i
|
100
100
|
@headers = headers
|
101
101
|
end
|
102
|
+
|
103
|
+
def to_i
|
104
|
+
@status
|
105
|
+
end
|
106
|
+
|
102
107
|
end
|
103
108
|
|
104
109
|
class RawResponse < StandardError
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blix-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clive Andrews
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|