Sha256: 3cf4f138e5084a00ea3563e0742183c95f1217a448f51a25e05d695f305eed1f

Contents?: true

Size: 1.03 KB

Versions: 6

Compression:

Stored size: 1.03 KB

Contents

module RailsWorkflow
  class Process < ActiveRecord::Base
    include Status
    include Processes::DependencyResolver
    include Processes::DefaultRunner

    belongs_to :template, class_name: "RailsWorkflow::ProcessTemplate"
    has_many :operations, class_name: "RailsWorkflow::Operation"
    has_one :parent_operation, class_name: "RailsWorkflow::Operation", foreign_key: :child_process_id
    has_one :context, class_name: "RailsWorkflow::Context", as: :parent
    has_many :workflow_errors, class_name: "RailsWorkflow::Error", as: :parent

    delegate :data, to: :context
    scope :by_status, -> (status) { where(status: status) }

    def manager
      @manager ||= template.manager_class.new(self)
    end

    def self.count_by_statuses
      query = RailsWorkflow.config.sql_dialect::COUNT_STATUSES

      statuses = connection.select_all(query).rows

      (RailsWorkflow::Process::NOT_STARTED..RailsWorkflow::Process::ROLLBACK).to_a.map{|status|
        statuses.detect{|s| s.first.to_i == status }.try(:last).to_i
      }

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rails_workflow-0.3.7 app/models/rails_workflow/process.rb
rails_workflow-0.3.6 app/models/rails_workflow/process.rb
rails_workflow-0.3.5 app/models/rails_workflow/process.rb
rails_workflow-0.3.4 app/models/rails_workflow/process.rb
rails_workflow-0.3.3 app/models/rails_workflow/process.rb
rails_workflow-0.3.2 app/models/rails_workflow/process.rb