Module: Card::Director::Phases

Included in:
Card::Director
Defined in:
lib/card/director/phases.rb

Overview

Validation, Storage, and Integration phase handling

Instance Method Summary collapse

Instance Method Details

#integration_phaseObject



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/card/director/phases.rb', line 44

def integration_phase
  # puts "integration phase: #{@card.name}"
  return if @abort

  @card.restore_changes_information
  run_stage :integrate
  run_stage :after_integrate
  run_stage :integrate_with_delay
ensure
  @card.clear_changes_information unless @abort
  @card.expire unless Cardio.delaying? # if delaying, then expired by clear
end

#integration_phase_callback?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/card/director/phases.rb', line 13

def integration_phase_callback?
  !@abort && !@only_storage_phase && main?
end

#prepare_for_phasesObject



17
18
19
20
21
22
# File 'lib/card/director/phases.rb', line 17

def prepare_for_phases
  @card.prepare_for_phases unless running?
  @card.identify_action
  @running = true
  @subdirectors.each(&:prepare_for_phases)
end

#storage_phase(&block) ⇒ Object

Unlike other phases, the storage phase takes a block, because it is called by an “around” callback



34
35
36
37
38
39
40
41
42
# File 'lib/card/director/phases.rb', line 34

def storage_phase &block
  catch_up_to_stage :prepare_to_store # unless @abort
  # puts "before store #{@card.name}: abort:#{@abort}"
  run_stage :store, &block # unless @abort
  run_stage :finalize # unless @abort
  raise ActiveRecord::RecordInvalid, @card if @card.errors.any?
ensure
  @from_trash = nil
end

#validation_phaseObject



24
25
26
27
28
29
30
# File 'lib/card/director/phases.rb', line 24

def validation_phase
  run_stage :initialize
  run_stage :prepare_to_validate
  run_stage :validate
ensure
  @card.errors.empty?
end

#validation_phase_callback?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/card/director/phases.rb', line 9

def validation_phase_callback?
  !@only_storage_phase && head?
end