Class: InformantRails::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/informant-rails/client.rb

Class Method Summary collapse

Class Method Details

.cleanupObject



32
33
34
# File 'lib/informant-rails/client.rb', line 32

def self.cleanup
  Thread.current[:informant_request] = nil
end

.processObject



19
20
21
22
23
24
25
26
# File 'lib/informant-rails/client.rb', line 19

def self.process
  if request && request.models.any?
    this_request = request
    Thread.new { transmit(this_request) }
  end
ensure
  cleanup
end

.record(env) ⇒ Object



4
5
6
# File 'lib/informant-rails/client.rb', line 4

def self.record(env)
  new_request.request_url = env['HTTP_REFERER'] unless env['REQUEST_METHOD'] == 'GET'
end

.record_action(controller_name, action) ⇒ Object



8
9
10
11
12
13
# File 'lib/informant-rails/client.rb', line 8

def self.record_action(controller_name, action)
  if request
    request.filename = controller_name
    request.action = action
  end
end

.record_validated_model(model) ⇒ Object



15
16
17
# File 'lib/informant-rails/client.rb', line 15

def self.record_validated_model(model)
  request.process_model(model) if request && include_model?(model)
end

.requestObject



28
29
30
# File 'lib/informant-rails/client.rb', line 28

def self.request
  Thread.current[:informant_request]
end

.transmit(completed_request) ⇒ Object



36
37
38
39
40
# File 'lib/informant-rails/client.rb', line 36

def self.transmit(completed_request)
  Net::HTTP.start(api_endpoint.host, api_endpoint.port, use_ssl: api_endpoint.scheme == 'https') do |http|
    http.request(net_http_post_request(completed_request))
  end
end