Sha256: a18a85116c1c4b092eb11d8e5e974357534f6fcd5ddb9f8e3c41c9502554e356

Contents?: true

Size: 922 Bytes

Versions: 4

Compression:

Stored size: 922 Bytes

Contents

# frozen_string_literal: true

class MedPipe::PipelineTask::PlanUpdater
  # @param save [Boolean] trueの場合、Planを保存する。finishにするために更新が走るためここで保存しないことをdefaultにしている
  def initialize(save: false)
    @save = save
  end

  # @param context [Hash]
  # @param input [Enumerable<Array<Object>>]
  # @yieldparam [Enumerable<Array<Object>>] inputをそのまま流す
  def call(context, input)
    update_plan(context)
    block_given? ? yield(input) : input
  end

  private

  def update_plan(context)
    return unless context[:plan]

    plan = context[:plan]
    plan.data_count = context[:data_count] if context[:data_count]
    plan.file_name = context[:file_name] if context[:file_name]
    plan.file_size = context[:file_size] if context[:file_size]
    plan.upload_to = context[:upload_to] if context[:upload_to]
    plan.save if @save
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
med_pipe-0.2.0 lib/med_pipe/pipeline_task/plan_updater.rb
med_pipe-0.1.1 lib/med_pipe/pipeline_task/plan_updater.rb
med_pipe-0.1.0.5 lib/med_pipe/pipeline_task/plan_updater.rb
med_pipe-0.1.0.4 lib/med_pipe/pipeline_task/plan_updater.rb