Class: ObjectsFramework::ObjectHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/objectsframework/object_handler.rb

Class Method Summary collapse

Class Method Details

.captured?(klass) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
74
75
76
77
78
79
80
# File 'lib/objectsframework/object_handler.rb', line 71

def self.captured?(klass)
  if(Hooks.hook_exists?("request.capture",klass))
      result = Hooks.fire("request.capture",klass)
      if(result != 0)
        return result
      end
      return 0
  end
  return 0
end

.finished(klass, request, response, context) ⇒ Object

DEPRACTED: do not override the ObjectHandler class anymore use object hooks This event will never be used again



5
6
7
# File 'lib/objectsframework/object_handler.rb', line 5

def self.finished(klass,request,response,context)
  # Nothing
end

.notfound_response(response, e) ⇒ Object



67
68
69
# File 'lib/objectsframework/object_handler.rb', line 67

def self.notfound_response(response,e)
  response.write "<h1>404 Not Found</h1><hr/><i>Ruby Rack Server powered by ObjectsFramework <br/><pre>#{e.to_s}</pre></i>"
end

.run_methods(request, response, context) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/objectsframework/object_handler.rb', line 9

def self.run_methods(request,response,context)
  path = request.path
  parts = path.split("/")
  if(path == "/" && !context.config[:root].nil?)
    klass = Object.const_get(context.config[:root]).new
    klass.set_instance_variables(request,response,context.env)

    captured_result = captured?(klass)
    if(captured_result != 0)
      return captured_result
    end

    Hooks.fire("object.before_execute", klass)

    klass.send(request.request_method.downcase!+"_"+context.config[:index_method])
    return true
  end

  begin
    klass = Object.const_get(parts[1].capitalize).new.set_instance_variables(request,response,context.env)

    captured_result = captured?(klass)
    if(captured_result != 0)
      return captured_result
    end

    Hooks.fire("object.before_execute", klass)

    if(parts[3].nil?)
      if(path[path.length-1] == "/" || parts.length == 2)
        klass.send(request.request_method.downcase!+"_index");
      else
        klass.send(request.request_method.downcase!+"_"+parts[2])
      end
    else
      klass.send(request.request_method.downcase!+"_"+parts[2],*parts[3..parts.length])
    end
  rescue Exception => e
    begin
      obj = Object.const_get(context.config[:root]).new.set_instance_variables(request,response,context.env)

      captured_result = captured?(obj)
      if(captured_result != 0)
        return captured_result
      end

      Hooks.fire("object.before_execute", obj)
      obj.send(request.request_method.downcase!+"_"+parts[1])
      return true
    rescue

    end
    response.status =  404
    notfound_response(response,e)
  end
  return true
end