available_priorities()
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def available_priorities
  methods(false).collect do |name|
    /\Arun_priority_(.+)\?\z/ =~ name.to_s
    $1
  end.compact
end
             
             
            
           
          
          
         
      
        
          
          
          
            have_priority?(name)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def have_priority?(name)
  singleton_class = (class << self; self; end)
  singleton_class.method_defined?(priority_check_method_name(name))
end
             
             
            
           
          
          
         
      
        
          
          
          
            need_to_run?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def need_to_run?(test)
  priority = test[:priority] || Priority.default
  if have_priority?(priority)
    __send__(priority_check_method_name(priority), test)
  else
    true
  end
end
             
             
            
           
          
          
         
      
        
          
          
          
            new(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def initialize(test)
  @test = test
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_high?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_high?(test)
  rand > 0.3
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_important?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_important?(test)
  rand > 0.1
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_low?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_low?(test)
  rand > 0.75
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_must?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_must?(test)
  true
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_never?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_never?(test)
  false
end
             
             
            
           
          
          
         
      
        
          
          
          
            run_priority_normal?(test)
            click to toggle source
          
          
          
  
            
            
            
            
            
               
               
def run_priority_normal?(test)
  rand > 0.5
end