Module: ChaoticJob::Journal

Extended by:
Journal
Included in:
Journal
Defined in:
lib/chaotic_job/journal.rb

Constant Summary collapse

DEFAULT =
Object.new.freeze

Instance Method Summary collapse

Instance Method Details

#entries(scope: :default) ⇒ Object



44
45
46
# File 'lib/chaotic_job/journal.rb', line 44

def entries(scope: :default)
  @logs[scope]&.to_a
end

#log(item = DEFAULT, scope: :default) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/chaotic_job/journal.rb', line 19

def log(item = DEFAULT, scope: :default)
  @logs ||= {}
  @logs[scope] ||= Set.new
  set = @logs[scope].to_set
  if item != DEFAULT
    set << item
  else
    max = set.to_a.max || 0
    set << max + 1
  end
  item
end

#push(item = true, scope: :default) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/chaotic_job/journal.rb', line 32

def push(item = true, scope: :default)
  @logs ||= {}
  @logs[scope] ||= []
  array = @logs[scope].to_a
  array << item
  item
end

#reset!Object



15
16
17
# File 'lib/chaotic_job/journal.rb', line 15

def reset!
  @logs = {}
end

#size(scope: :default) ⇒ Object



40
41
42
# File 'lib/chaotic_job/journal.rb', line 40

def size(scope: :default)
  @logs[scope]&.size || 0
end

#top(scope: :default) ⇒ Object



48
49
50
# File 'lib/chaotic_job/journal.rb', line 48

def top(scope: :default)
  entries(scope: scope)&.first
end