Class: Yoda::Server::Providers::ReportableProgress::ProgressReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/server/providers/reportable_progress.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(work_done_token:, partial_result_token:, notifier:) ⇒ ProgressReporter

Returns a new instance of ProgressReporter.

Parameters:

  • work_done_token (String, Integer, nil)
  • partial_result_token (String, Integer, nil)
  • notifier (Notifier)


39
40
41
42
43
44
# File 'lib/yoda/server/providers/reportable_progress.rb', line 39

def initialize(work_done_token:, partial_result_token:, notifier:)
  @work_done_token = work_done_token
  @partial_result_token = partial_result_token
  @notifier = notifier
  @results = []
end

Instance Attribute Details

#notifierObject (readonly)

Parameters:



31
32
33
# File 'lib/yoda/server/providers/reportable_progress.rb', line 31

def notifier
  @notifier
end

#partial_result_tokenObject (readonly)

Parameters:

  • (String, Integer, nil)


28
29
30
# File 'lib/yoda/server/providers/reportable_progress.rb', line 28

def partial_result_token
  @partial_result_token
end

#resultsObject (readonly)

Parameters:

  • (Array)


34
35
36
# File 'lib/yoda/server/providers/reportable_progress.rb', line 34

def results
  @results
end

#work_done_tokenObject (readonly)

Parameters:

  • (String, Integer, nil)


25
26
27
# File 'lib/yoda/server/providers/reportable_progress.rb', line 25

def work_done_token
  @work_done_token
end

Instance Method Details

#report(**kwargs) ⇒ Object



58
59
60
61
62
# File 'lib/yoda/server/providers/reportable_progress.rb', line 58

def report(**kwargs)
  if work_done_token
    notifier.work_done_progress_report(token: work_done_token, **kwargs)
  end
end

#send_begin(**kwargs) ⇒ Object



46
47
48
49
50
# File 'lib/yoda/server/providers/reportable_progress.rb', line 46

def send_begin(**kwargs)
  if work_done_token
    notifier.work_done_progress_begin(token: work_done_token, **kwargs)
  end
end

#send_end(**kwargs) ⇒ Object



52
53
54
55
56
# File 'lib/yoda/server/providers/reportable_progress.rb', line 52

def send_end(**kwargs)
  if work_done_token
    notifier.work_done_progress_end(token: work_done_token, **kwargs)
  end
end

#send_result(value) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/yoda/server/providers/reportable_progress.rb', line 64

def send_result(value)
  if partial_result_token
    notifier.partial_result(token: partial_result_token, value: value)
  else
    results.push(value)
  end
end