Class: Refocus::Samples::Collector

Inherits:
Object
  • Object
show all
Includes:
JsonHelper
Defined in:
lib/refocus/samples/collector.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from JsonHelper

#json

Constructor Details

#initialize(http:) ⇒ Collector

Returns a new instance of Collector.



10
11
12
13
# File 'lib/refocus/samples/collector.rb', line 10

def initialize(http:)
  @http = http
  @samples = []
end

Instance Attribute Details

#httpObject (readonly)

Returns the value of attribute http.



8
9
10
# File 'lib/refocus/samples/collector.rb', line 8

def http
  @http
end

#samplesObject (readonly)

Returns the value of attribute samples.



8
9
10
# File 'lib/refocus/samples/collector.rb', line 8

def samples
  @samples
end

Class Method Details

.format_sample(name:, aspect:, value: nil, message_body: nil, message_code: nil, related_links: nil) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/refocus/samples/collector.rb', line 27

def self.format_sample(name:, aspect:, value:nil, message_body:nil, message_code:nil, related_links:nil)
  sample = {name: "#{name}|#{aspect}"}
  sample[:value] = value.to_s if value
  sample[:messageBody] = message_body.to_s if message_body
  sample[:messageCode] = message_code.to_s if message_code
  sample[:relatedLinks] = related_links if related_links
  sample
end

Instance Method Details

#add(name:, aspect:, value: nil, message_body: nil, message_code: nil, related_links: nil) ⇒ Object



15
16
17
18
# File 'lib/refocus/samples/collector.rb', line 15

def add(name:, aspect:, value:nil, message_body:nil, message_code:nil, related_links:nil)
  samples << self.class.format_sample(name:name, aspect: aspect, value: value, message_body: message_body,
                           message_code: message_code, related_links: related_links)
end

#upsert_bulkObject Also known as: submit



20
21
22
23
24
# File 'lib/refocus/samples/collector.rb', line 20

def upsert_bulk
  result = json(http.post("upsert/bulk", body: samples, expects: 200))
  samples.clear
  result
end