Sha256: 59b1f20e08f5bbc44d212814aada870a83f06450ffbd96a426c539831a8b273f

Contents?: true

Size: 1.44 KB

Versions: 10

Compression:

Stored size: 1.44 KB

Contents

module CloudCrowd
  
  # Adds named scopes and query methods for every CloudCrowd status to
  # both Jobs and WorkUnits.
  module ModelStatus
    
    def self.included(klass)
      
      klass.class_eval do
        # Note that COMPLETE and INCOMPLETE are unions of other states.
        scope 'processing', -> { where( :status => PROCESSING )}
        scope 'succeeded',  -> { where( :status => SUCCEEDED  )}
        scope 'failed',     -> { where( :status => FAILED     )}
        scope 'splitting',  -> { where( :status => SPLITTING  )}
        scope 'merging',    -> { where( :status => MERGING    )}
        scope 'complete',   -> { where( :status => COMPLETE   )}
        scope 'incomplete', -> { where( :status => INCOMPLETE )}
      end
      
    end
    
    def processing?;  self.status == PROCESSING;          end
    def succeeded?;   self.status == SUCCEEDED;           end
    def failed?;      self.status == FAILED;              end
    def splitting?;   self.status == SPLITTING;           end
    def merging?;     self.status == MERGING;             end
    def complete?;    COMPLETE.include?(self.status);     end
    def incomplete?;  INCOMPLETE.include?(self.status);   end
    
    # Get the displayable status name of the model's status code.
    def display_status
      CloudCrowd.display_status(self.status)
    end
    
  end
end

require 'cloud_crowd/models/job'
require 'cloud_crowd/models/node_record'
require 'cloud_crowd/models/work_unit'

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
cloud-crowd-0.7.5 lib/cloud_crowd/models.rb
cloud-crowd-0.7.3 lib/cloud_crowd/models.rb
cloud-crowd-0.7.2 lib/cloud_crowd/models.rb
cloud-crowd-0.7.2.beta lib/cloud_crowd/models.rb
cloud-crowd-0.7.2.pre3 lib/cloud_crowd/models.rb
cloud-crowd-0.7.2.pre2 lib/cloud_crowd/models.rb
cloud-crowd-0.7.2.pre lib/cloud_crowd/models.rb
cloud-crowd-0.7.1 lib/cloud_crowd/models.rb
cloud-crowd-0.7.0 lib/cloud_crowd/models.rb
cloud-crowd-0.7.0.pre lib/cloud_crowd/models.rb