class SampleSkimmer
Public Class Methods
new(num_sample_rows, &callback)
click to toggle source
# File lib/sample_skimmer.rb, line 2 def initialize(num_sample_rows, &callback) @num_sample_rows = num_sample_rows @callback = callback @samples = [] @callback_called = false end
Public Instance Methods
callbacks()
click to toggle source
# File lib/sample_skimmer.rb, line 9 def callbacks { during_execute: collect_samples, after_execute: submit_data_if_unsubmitted } end
Private Instance Methods
collect_samples()
click to toggle source
# File lib/sample_skimmer.rb, line 15 def collect_samples lambda do |row, row_count| if row_count <= @num_sample_rows @samples << row if row_count == @num_sample_rows @callback.call(@samples) @callback_called = true end end end end
submit_data_if_unsubmitted()
click to toggle source
# File lib/sample_skimmer.rb, line 27 def submit_data_if_unsubmitted ->(row_count) { @callback.call(@samples) unless @callback_called } end