Class: AlacrityRails::Client

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

Class Method Summary collapse

Class Method Details

.cleanupObject



36
37
38
# File 'lib/alacrity-rails/client.rb', line 36

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

.close_transaction!(response) ⇒ Object



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

def self.close_transaction!(response)
  if transaction
    transaction.status = response.first
    transaction.finalize!
    transmit(transaction)
  end
ensure
  cleanup
end

.log_server_startupObject



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

def self.log_server_startup
  transmit(AlacrityRails::Transaction::ServerStartup.new)
end

.open_transaction(env) ⇒ Object



6
7
8
# File 'lib/alacrity-rails/client.rb', line 6

def self.open_transaction(env)
  new_transaction!(env)
end

.store_request(data) ⇒ Object



10
11
12
# File 'lib/alacrity-rails/client.rb', line 10

def self.store_request(data)
  transaction&.store_request(data)
end

.store_timeline_event(data) ⇒ Object



14
15
16
# File 'lib/alacrity-rails/client.rb', line 14

def self.store_timeline_event(data)
  transaction&.store_timeline_event(data)
end

.transactionObject



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

def self.transaction
  Thread.current[:alacrity_transaction]
end

.transmit(transactable) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/alacrity-rails/client.rb', line 40

def self.transmit(transactable)
  Thread.new do
    Net::HTTP.start(*transactable.net_http_start_arguments) do |http|
      http.request(transactable.post_request)
    end
  end
end