Sha256: b5245a7ab12e056737d67d0bae601c35b1a4aa040143b6185568e64d1e64585e

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module PowerStencil
  module SystemEntityDefinitions

    class SimpleExec < PowerStencil::SystemEntityDefinitions::ProjectEntity

      include PowerStencil::SystemEntityDefinitions::HasAssociatedFiles

      DOC = 'Describes a simple process to be called after source files have been rendered'.freeze

      entity_type :simple_exec

      buildable

      has_one :process_descriptor, name: :post_process
      not_null :post_process

      def valid?(raise_error: false)
        unless super(raise_error: false)
          if self.post_process.nil?
            self.post_process = PowerStencil.project.engine.new_entity universe, :process_descriptor, fields: {
                name: "simple_exec_#{name}.process",
                process: './main.sh'
            }
          end
        end
        super(raise_error: raise_error)
      end

      def save(uri = source_uri, raise_error: true, force_save: false, force_files_generation: false )
        valid? raise_error: raise_error
        self.post_process.save
        super
      end

      def delete(force_files_deletion: false)
        super
        if self.post_process.name == "simple_exec_#{name}.process"
          self.post_process.delete
        end
        self
      end


    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
power_stencil-0.6.3 lib/power_stencil/system_entity_definitions/simple_exec.rb
power_stencil-0.6.2 lib/power_stencil/system_entity_definitions/simple_exec.rb