objectsframework 1.1.1 → 1.2
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/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
|