objectsframework 1.1.1 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/objectsframework.rb +1 -0
- data/lib/objectsframework/hooks.rb +10 -0
- data/lib/objectsframework/object.rb +18 -0
- data/lib/objectsframework/object_handler.rb +8 -5
- data/lib/objectsframework/server.rb +0 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66c4aab9f98eb5bab5e492fdd128af96701b5fd1
|
4
|
+
data.tar.gz: 8703ff842c0f3029f241b54dc6bfabbbc905f6f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ecfb074f8755e8804f987e00dabc3df1bff641ac92622156a6d9c04a80dcd47381390579762a673469584a1ce158eb04aff8ee1869d08d64d5ac7d1ff0c4cf1
|
7
|
+
data.tar.gz: 84a2a4ce630ee03a788e317936a7cdaaeff87eccf5a8f28f45c8cd198783fc2bac312acc82f8e161a68788fde60cb93baa5b7a109599a91d9db15ba0ab4e51d0
|
data/lib/objectsframework.rb
CHANGED
@@ -12,5 +12,23 @@ module ObjectsFramework
|
|
12
12
|
def response
|
13
13
|
@response
|
14
14
|
end
|
15
|
+
|
16
|
+
# Object hooks:
|
17
|
+
# Usage: add_hook :filter => "afilter", :method => "yourmethod"
|
18
|
+
# Available hooks/filters (some are not implement yet, but planned):
|
19
|
+
# * object.before_execute: fired before your request handling method is called
|
20
|
+
# * request.finished: fired when the request is finished and the response is about to get served [planned]
|
21
|
+
# * server.ready: fired when the server is ready accepting connections [planned]
|
22
|
+
# * server.error: fired when an internal error happens (for example method not found) [planned]
|
23
|
+
# All hooks are blocking, so they could eventually block the request [Future testing required]
|
24
|
+
@@hooks = []
|
25
|
+
|
26
|
+
def self.get_hooks
|
27
|
+
@@hooks
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.add_hook(hook)
|
31
|
+
@@hooks << hook
|
32
|
+
end
|
15
33
|
end
|
16
34
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module ObjectsFramework
|
2
2
|
class ObjectHandler
|
3
|
+
# DEPRACTED: do not override the ObjectHandler class anymore use object hooks
|
4
|
+
# This event will never be used again
|
3
5
|
def self.finished(klass,request,response,context)
|
4
6
|
# Nothing
|
5
7
|
end
|
@@ -9,8 +11,8 @@ module ObjectsFramework
|
|
9
11
|
parts = path.split("/")
|
10
12
|
if(path == "/" && !context.config[:root].nil?)
|
11
13
|
klass = Object.const_get(context.config[:root]).new
|
12
|
-
|
13
|
-
|
14
|
+
|
15
|
+
Hooks.fire("object.before_execute", klass)
|
14
16
|
|
15
17
|
klass.set_instance_variables(request,response).send(request.request_method.downcase!+"_"+context.config[:index_method])
|
16
18
|
return
|
@@ -18,8 +20,8 @@ module ObjectsFramework
|
|
18
20
|
|
19
21
|
begin
|
20
22
|
klass = Object.const_get(parts[1].capitalize).new.set_instance_variables(request,response)
|
21
|
-
|
22
|
-
|
23
|
+
|
24
|
+
Hooks.fire("object.before_execute", klass)
|
23
25
|
|
24
26
|
if(parts[3].nil?)
|
25
27
|
if(path[path.length-1] == "/" || parts.length == 2)
|
@@ -28,11 +30,12 @@ module ObjectsFramework
|
|
28
30
|
klass.send(request.request_method.downcase!+"_"+parts[2])
|
29
31
|
end
|
30
32
|
else
|
31
|
-
klass.send(request.request_method.downcase!+"_"+parts[2]
|
33
|
+
klass.send(request.request_method.downcase!+"_"+parts[2],*parts[3..parts.length])
|
32
34
|
end
|
33
35
|
rescue Exception => e
|
34
36
|
begin
|
35
37
|
obj = Object.const_get(context.config[:root]).new.set_instance_variables(request,response)
|
38
|
+
Hooks.fire("object.before_execute", obj)
|
36
39
|
obj.send(request.request_method.downcase!+"_"+parts[1])
|
37
40
|
return
|
38
41
|
rescue
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: objectsframework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bram Vandenbogaerde
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -46,6 +46,7 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- lib/objectsframework.rb
|
49
|
+
- lib/objectsframework/hooks.rb
|
49
50
|
- lib/objectsframework/object.rb
|
50
51
|
- lib/objectsframework/object_handler.rb
|
51
52
|
- lib/objectsframework/overrides.rb
|