|event| case event.event_type when 'WorkflowExecuGonStarted’ decision_task.schedule_acGvity_task domain.acGvity_types['hello', 1.0] when 'AcGvityTaskCompleted’ case completed_acGvity_type(task).name # 完了したAcGvityTypeを取得 when 'hello’ decision_task.schedule_acGvity_task domain.acGvity_types['world', 1.0] when ‘world’ # … else task.complete_workflow_execuGon end end end end WorkflowExecuGonStarted DecisionTaskScheduled DecisionTaskStarted DecisionTaskCompleted AcGvityTaskScheduled AcGvityTaskStarted AcGvityTaskCompleted DecsionTaskScheduled History 1回目 2回目
と case が合わさってネストが深くなりがち。 domain.decision_tasks.poll(’decision-‐task-‐list-‐1') do |decision_task| decision_task.new_events.each do |event| case event.event_type when 'WorkflowExecuGonStarted’ decision_task.schedule_acGvity_task domain.acGvity_types['hello', 1.0] when 'AcGvityTaskCompleted’ case completed_acGvity_type(task).name when 'hello’ decision_task.schedule_acGvity_task domain.acGvity_types['world', 1.0] when ‘world’ # … (後略)