Class: Motion::HTTP::Logger

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(enabled = true) ⇒ Logger

Returns a new instance of Logger.



6
7
8
# File 'lib/common/http/logger.rb', line 6

def initialize(enabled = true)
  @enabled = enabled
end

Instance Attribute Details

#enabledObject (readonly)

Returns the value of attribute enabled.



4
5
6
# File 'lib/common/http/logger.rb', line 4

def enabled
  @enabled
end

Instance Method Details

#colorize(color, string) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/common/http/logger.rb', line 50

def colorize(color, string)
  return string unless simulator? # Only colorize in the simulator

  code = {
    red: 31,
    dark_gray: 90,
  }[color]

  if code
    "\e[#{code}m#{string}\e[0m"
  else
    string
  end
end

#disable!Object



14
15
16
# File 'lib/common/http/logger.rb', line 14

def disable!
  @enabled = false
end

#enable!Object



10
11
12
# File 'lib/common/http/logger.rb', line 10

def enable!
  @enabled = true
end

#error(message) ⇒ Object



22
23
24
# File 'lib/common/http/logger.rb', line 22

def error(message)
  puts colorize(:red, message)
end

#log(message, color = :white) ⇒ Object



18
19
20
# File 'lib/common/http/logger.rb', line 18

def log(message, color = :white)
  puts colorize(color, message) if enabled
end

#log_request(request) ⇒ Object



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

def log_request(request)
  log "\nRequest:\n#{request.http_method.to_s.upcase} #{request.url}", :dark_gray

  if request.headers
    request.headers.each do |k,v|
      log "#{k}: #{v}", :dark_gray
    end
  end

  log(request.body, :dark_gray) if request.body
end

#log_response(response) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/common/http/logger.rb', line 38

def log_response(response)
  log "\nResponse:", :dark_gray
  if response.original_request
    log "URL: #{response.original_request.url}", :dark_gray
  end
  log "Status: #{response.status_code}", :dark_gray
  response.headers.each do |k,v|
    log "#{k}: #{v}", :dark_gray
  end
  log "\n#{response.body}", :dark_gray
end

#simulator?Boolean

Returns:

  • (Boolean)


66
67
68
69
70
71
72
73
74
# File 'lib/common/http/logger.rb', line 66

def simulator?
  @simulator_state ||= begin
    if defined?(NSObject) # iOS
      !NSBundle.mainBundle.bundlePath.start_with?('/var/')
    else # android
      false
    end
  end
end