Class: Async::Background::Web::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/async/background/web/serializer.rb

Constant Summary collapse

EMPTY_OPTIONS =
{}.freeze
EMPTY_ARGS =
[].freeze

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Serializer

Returns a new instance of Serializer.



13
14
15
# File 'lib/async/background/web/serializer.rb', line 13

def initialize(config)
  @config = config
end

Instance Method Details

#claimed(rows) ⇒ Object



32
33
34
# File 'lib/async/background/web/serializer.rb', line 32

def claimed(rows)
  rows.map { |row| claimed_item(row) }
end

#done(rows) ⇒ Object



36
37
38
# File 'lib/async/background/web/serializer.rb', line 36

def done(rows)
  page(rows.map { |row| done_item(row) }) { |item| Cursor.encode_finished(item[:finished_at], item[:id]) }
end

#executing(rows) ⇒ Object



28
29
30
# File 'lib/async/background/web/serializer.rb', line 28

def executing(rows)
  rows.map { |row| executing_item(row) }
end

#failed(rows) ⇒ Object



40
41
42
# File 'lib/async/background/web/serializer.rb', line 40

def failed(rows)
  page(rows.map { |row| failed_item(row) }) { |item| Cursor.encode_finished(item[:finished_at], item[:id]) }
end

#overview(snapshot_data, metrics_data = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/async/background/web/serializer.rb', line 17

def overview(snapshot_data, metrics_data = nil)
  payload = {
    counts: snapshot_data.fetch(:counts),
    next_pending_run_at: snapshot_data[:next_pending_run_at],
    data_version: snapshot_data.fetch(:data_version),
    generated_at: snapshot_data.fetch(:generated_at)
  }
  payload[:metrics] = metrics_data if metrics_data
  payload
end

#pending(rows) ⇒ Object



44
45
46
# File 'lib/async/background/web/serializer.rb', line 44

def pending(rows)
  page(rows.map { |row| pending_item(row) }) { |item| Cursor.encode_pending(item[:run_at], item[:id]) }
end