Class RequestLogEntry
In: app/models/request_log_entry.rb
Parent: ActiveRecord::Base

Methods

Attributes

logged_pchecks  [RW] 

Public Class methods

[Source]

    # File app/models/request_log_entry.rb, line 28
28:   def self.logging( controller, request, response )
29: 
30:     begin
31: 
32:       unless self.current.nil?
33:         raise RuntimeError, "Can't nest RequestLogEntry.logging"
34:       end
35: 
36:       self.current = self.new
37:       yield
38: 
39:     ensure
40: 
41:       entry = self.current
42:       self.current = nil
43: 
44:       unless User.current.nil?
45:         entry.acting_user_id   = User.current.id
46:         entry.acting_user_name = User.current.name
47:       end
48: 
49:       unless User.of_record.nil?
50:         entry.user_of_record_id   = User.of_record.id
51:         entry.user_of_record_name = User.of_record.name
52:       end
53: 
54:       entry.controller = controller.class.name
55:       entry.action     = controller.action_name
56: 
57:       entry.remote_ip   = request.remote_ip || 'UNKNOWN'
58:       entry.http_method = request.method.to_s
59:       entry.status      = response.headers["Status"] || 'UNKNOWN'
60: 
61:       if controller.respond_to?( :resource ) && !controller.resource.nil?
62:       
63:         model_object = controller.resource
64: 
65:         entry.model_class = model_object.class.name
66:         entry.model_id    = model_object.id
67: 
68:       end
69: 
70:       entry.save!
71:       entry.save_logged_pchecks!
72: 
73:     end
74: 
75:   end

[Source]

    # File app/models/request_log_entry.rb, line 79
79:   def self.new( attrs = {} )
80:     super attrs.merge( :logged_pchecks => [] )
81:   end

[Source]

    # File app/models/request_log_entry.rb, line 83
83:   def self.note_pcheck( pcheck_hash )
84:     unless self.current.nil?
85:       self.current.logged_pchecks << pcheck_hash
86:     end
87:   end

Public Instance methods

[Source]

    # File app/models/request_log_entry.rb, line 89
89:   def save_logged_pchecks!
90: 
91:     # Could do some kind of fast bulk create here, to avoid AR overhead...
92: 
93:     logged_pchecks.each do |attrs|
94:       self.pcheck_log_entries.create! attrs
95:     end
96: 
97:   end

[Validate]