Class: Digup::Logger

Inherits:
Object show all
Defined in:
lib/digup/logger.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(responder) ⇒ Logger

Returns a new instance of Logger.



9
10
11
# File 'lib/digup/logger.rb', line 9

def initialize(responder)
  @responder = responder
end

Class Method Details

.file_pathObject



5
6
7
# File 'lib/digup/logger.rb', line 5

def self.file_path
  Rails.root.join('log', 'digup.log').to_s
end

Instance Method Details

#log_allObject

log to every available option



58
59
60
61
62
63
64
65
# File 'lib/digup/logger.rb', line 58

def log_all
  if Digup.message_store.present?
    log_to_html_body if Setting.log_to_html_body?
    log_to_console if Setting.log_to_console?
    log_to_db if Setting.log_to_db?
    log_to_file if Setting.log_to_file?
  end
end

#log_to_consoleObject

appends log as web console



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/digup/logger.rb', line 27

def log_to_console
  template = case
    when @responder.html_response?
      Template.console_template_for_html_response
    when @responder.javascript_response?
      Template.console_template_for_javascript_response
    else
      new_json_template
  end
  @responder.append_template_to_response(template)
end

#log_to_dbObject

Add log to database. ActiveRecord required



40
41
42
43
44
45
46
47
48
# File 'lib/digup/logger.rb', line 40

def log_to_db
  RequestResponseInfo.create(
    :request_method => @responder.request.request_method,
    :request_accepts => @responder.request.accepts,
    :response_type => @responder.response.content_type,
    :response_status => @responder.status,
    :params => @responder.request.filtered_parameters
  ).digup_logs.create(Digup.message_store)
end

#log_to_fileObject

add log to file inside log/digup.log



51
52
53
54
55
# File 'lib/digup/logger.rb', line 51

def log_to_file
  File.open(Logger.file_path, 'a') do |f|
    f.write(Template.file_template(@responder))
  end
end

#log_to_html_bodyObject

appends log as html footer



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/digup/logger.rb', line 14

def log_to_html_body
  template = case
    when @responder.html_response?
      Template.html_template
    when @responder.javascript_response?
      Template.javascript_template
    else
      new_json_template
  end
  @responder.append_template_to_response(template)
end

#new_json_templateObject

creates json template depending on the last character of response(} or ])



72
73
74
# File 'lib/digup/logger.rb', line 72

def new_json_template
  Template.json_template(response_body[response_body.length - 1])
end

#response_bodyObject



67
68
69
# File 'lib/digup/logger.rb', line 67

def response_body
  @responder.response_body
end