Class: ActiveGraph::Shared::TypeConverters::EnumConverter
- Inherits:
 - 
      Object
      
        
- Object
 - ActiveGraph::Shared::TypeConverters::EnumConverter
 
 
- Defined in:
 - lib/active_graph/shared/type_converters.rb
 
Instance Method Summary collapse
- #convert_type ⇒ Object
 - #converted?(value) ⇒ Boolean
 - #db_type ⇒ Object
 - 
  
    
      #initialize(enum_keys, options)  ⇒ EnumConverter 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of EnumConverter.
 - #supports_array? ⇒ Boolean
 - #to_db(value) ⇒ Object
 - #to_ruby(value) ⇒ Object (also: #call)
 
Constructor Details
#initialize(enum_keys, options) ⇒ EnumConverter
Returns a new instance of EnumConverter.
      269 270 271 272 273 274 275 276  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 269 def initialize(enum_keys, ) @enum_keys = enum_keys @options = return unless @options[:case_sensitive].nil? @options[:case_sensitive] = ActiveGraph::Config.enums_case_sensitive end  | 
  
Instance Method Details
#convert_type ⇒ Object
      290 291 292  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 290 def convert_type Symbol end  | 
  
#converted?(value) ⇒ Boolean
      278 279 280  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 278 def converted?(value) value.is_a?(db_type) end  | 
  
#db_type ⇒ Object
      286 287 288  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 286 def db_type Integer end  | 
  
#supports_array? ⇒ Boolean
      282 283 284  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 282 def supports_array? true end  | 
  
#to_db(value) ⇒ Object
      300 301 302 303 304 305 306 307 308 309 310  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 300 def to_db(value) if value.is_a?(Array) value.map(&method(:to_db)) elsif @options[:case_sensitive] @enum_keys[value.to_s.to_sym] || fail(ActiveGraph::Shared::Enum::InvalidEnumValueError, 'Value passed to an enum property must match one of the enum keys') else @enum_keys[value.to_s.downcase.to_sym] || fail(ActiveGraph::Shared::Enum::InvalidEnumValueError, 'Case-insensitive (downcased) value passed to an enum property must match one of the enum keys') end end  | 
  
#to_ruby(value) ⇒ Object Also known as: call
      294 295 296  | 
    
      # File 'lib/active_graph/shared/type_converters.rb', line 294 def to_ruby(value) @enum_keys.key(value) unless value.nil? end  |