Class: Spring::ProcessTitleUpdater
- Inherits:
 - 
      Object
      
        
- Object
 - Spring::ProcessTitleUpdater
 
 
- Defined in:
 - lib/spring/process_title_updater.rb
 
Overview
Yes, I know this reimplements a bunch of stuff in Active Support, but I don’t want the Spring client to depend on AS, in order to keep its load time down.
Constant Summary collapse
- SECOND =
 1- MINUTE =
 60- HOUR =
 60*60
Instance Attribute Summary collapse
- 
  
    
      #block  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute block.
 
Class Method Summary collapse
Instance Method Summary collapse
- #distance_in_words(now = Time.now) ⇒ Object
 - 
  
    
      #initialize(start = Time.now, &block)  ⇒ ProcessTitleUpdater 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of ProcessTitleUpdater.
 - #interval ⇒ Object
 - #next ⇒ Object
 - #value ⇒ Object
 
Constructor Details
#initialize(start = Time.now, &block) ⇒ ProcessTitleUpdater
Returns a new instance of ProcessTitleUpdater.
      21 22 23 24  | 
    
      # File 'lib/spring/process_title_updater.rb', line 21 def initialize(start = Time.now, &block) @start = start @block = block end  | 
  
Instance Attribute Details
#block ⇒ Object (readonly)
Returns the value of attribute block.
      19 20 21  | 
    
      # File 'lib/spring/process_title_updater.rb', line 19 def block @block end  | 
  
Class Method Details
.run(&block) ⇒ Object
      10 11 12 13 14 15 16 17  | 
    
      # File 'lib/spring/process_title_updater.rb', line 10 def self.run(&block) updater = new(&block) Spring.failsafe_thread { $0 = updater.value loop { $0 = updater.next } } end  | 
  
Instance Method Details
#distance_in_words(now = Time.now) ⇒ Object
      47 48 49 50 51 52 53 54 55 56 57  | 
    
      # File 'lib/spring/process_title_updater.rb', line 47 def distance_in_words(now = Time.now) distance = now - @start if distance < MINUTE pluralize(distance, "sec") elsif distance < HOUR pluralize(distance / MINUTE, "min") else pluralize(distance / HOUR, "hour") end end  | 
  
#interval ⇒ Object
      26 27 28 29 30 31 32 33 34 35 36  | 
    
      # File 'lib/spring/process_title_updater.rb', line 26 def interval distance = Time.now - @start if distance < MINUTE SECOND elsif distance < HOUR MINUTE else HOUR end end  | 
  
#next ⇒ Object
      38 39 40 41  | 
    
      # File 'lib/spring/process_title_updater.rb', line 38 def next sleep interval value end  | 
  
#value ⇒ Object
      43 44 45  | 
    
      # File 'lib/spring/process_title_updater.rb', line 43 def value block.call(distance_in_words) end  |