Class: ActiveRecord::Store::IndifferentCoder
- Inherits:
 - 
      Object
      
        
- Object
 - ActiveRecord::Store::IndifferentCoder
 
 
- Defined in:
 - lib/active_record/store.rb
 
Overview
:nodoc:
Class Method Summary collapse
Instance Method Summary collapse
- #dump(obj) ⇒ Object
 - 
  
    
      #initialize(attr_name, coder_or_class_name)  ⇒ IndifferentCoder 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of IndifferentCoder.
 - #load(yaml) ⇒ Object
 
Constructor Details
#initialize(attr_name, coder_or_class_name) ⇒ IndifferentCoder
Returns a new instance of IndifferentCoder.
      261 262 263 264 265 266 267 268  | 
    
      # File 'lib/active_record/store.rb', line 261 def initialize(attr_name, coder_or_class_name) @coder = if coder_or_class_name.respond_to?(:load) && coder_or_class_name.respond_to?(:dump) coder_or_class_name else ActiveRecord::Coders::YAMLColumn.new(attr_name, coder_or_class_name || Object) end end  | 
  
Class Method Details
.as_indifferent_hash(obj) ⇒ Object
      278 279 280 281 282 283 284 285 286 287  | 
    
      # File 'lib/active_record/store.rb', line 278 def self.as_indifferent_hash(obj) case obj when ActiveSupport::HashWithIndifferentAccess obj when Hash obj.with_indifferent_access else ActiveSupport::HashWithIndifferentAccess.new end end  | 
  
Instance Method Details
#dump(obj) ⇒ Object
      270 271 272  | 
    
      # File 'lib/active_record/store.rb', line 270 def dump(obj) @coder.dump self.class.as_indifferent_hash(obj) end  | 
  
#load(yaml) ⇒ Object
      274 275 276  | 
    
      # File 'lib/active_record/store.rb', line 274 def load(yaml) self.class.as_indifferent_hash(@coder.load(yaml || "")) end  |