Class: Dynflow::Flows::Registry
  
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
          - Object
 
          
            - Dynflow::Flows::Registry
 
          
        
        show all
      
     
  
  
  
  
  
  
  
  
  
  
    - Defined in:
 
    - lib/dynflow/flows/registry.rb
 
  
  
 
Defined Under Namespace
  
    
  
    
      Classes: IdentifierTaken, UnknownIdentifier
    
  
  
    
      Class Method Summary
      collapse
    
    
  
  
    Class Method Details
    
      
  
  
    .decode(identifier)  ⇒ Object 
  
  
  
  
    
      
23
24
25 
     | 
    
      # File 'lib/dynflow/flows/registry.rb', line 23
def decode(identifier)
  serialization_map[identifier] || raise(UnknownIdentifier, "Could not find mapping for #{identifier}")
end
     | 
  
 
    
      
  
  
    .encode(klass)  ⇒ Object 
  
  
  
  
    
      
18
19
20
21 
     | 
    
      # File 'lib/dynflow/flows/registry.rb', line 18
def encode(klass)
  klass = klass.class unless klass.is_a?(Class)
  serialization_map.invert[klass] || raise(UnknownIdentifier, "Could not find mapping for #{klass}")
end
     | 
  
 
    
      
  
  
    .register!(klass, identifier)  ⇒ Object 
  
  
  
  
    
      
10
11
12
13
14
15
16 
     | 
    
      # File 'lib/dynflow/flows/registry.rb', line 10
def register!(klass, identifier)
  if (found = serialization_map[identifier])
    raise IdentifierTaken, "Error setting up mapping #{identifier} to #{klass}, it already maps to #{found}"
  else
    serialization_map.update(identifier => klass)
  end
end
     | 
  
 
    
      
  
  
    .serialization_map  ⇒ Object 
  
  
  
  
    
      
27
28
29 
     | 
    
      # File 'lib/dynflow/flows/registry.rb', line 27
def serialization_map
  @serialization_map ||= {}
end
     |