Sha256: 317d83a56dd13a5b32b9378e691580d13a04ca8a68937010aa51625596fd00d3

Contents?: true

Size: 1.13 KB

Versions: 6

Compression:

Stored size: 1.13 KB

Contents

class Card
  class Director
    module CardMethods
      attr_writer :director
      delegate :validation_phase, :storage_phase, :integration_phase,
               :validation_phase_callback?, :integration_phase_callback?, to: :director

      def director
        @director ||= Director.fetch self
      end

      def prepare_for_phases
        reset_patterns
        identify_action
        include_set_modules
      end

      def identify_action
        @action =
          if trash && trash_changed?
            :delete
          elsif new_card?
            :create
          else
            :update
          end
      end

      def restore_changes_information
        # restores changes for integration phase
        # (rails cleared them in an after_create/after_update hook which is
        #  executed before the integration phase)
        return unless saved_changes.present?

        @mutations_from_database = mutations_before_last_save
      end

      def clear_action_specific_attributes
        self.class.action_specific_attributes.each do |attr|
          instance_variable_set "@#{attr}", nil
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.101.4 lib/card/director/card_methods.rb
card-1.101.3 lib/card/director/card_methods.rb
card-1.101.2 lib/card/director/card_methods.rb
card-1.101.1 lib/card/director/card_methods.rb
card-1.101.0 lib/card/director/card_methods.rb
card-1.100.0 lib/card/director/card_methods.rb