123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::Type

Constant Summary

Class Attribute Summary

Class Method Summary

Instance Attribute Summary

Class Attribute Details

.registry (rw)

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 26

attr_accessor :registry # :nodoc:

Class Method Details

.adapter_name_from(model)

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 49

def adapter_name_from(model) # :nodoc:
  model.connection_db_config.adapter.to_sym
end

.current_adapter_name (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 54

def current_adapter_name
  adapter_name_from(ActiveRecord::Base)
end

.default_value

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 45

def default_value # :nodoc:
  @default_value ||= Value.new
end

.lookup(*args, adapter: current_adapter_name, **kwargs)

This method is for internal use only.
[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 41

def lookup(*args, adapter: current_adapter_name, **kwargs) # :nodoc:
  registry.lookup(*args, adapter: adapter, **kwargs)
end

.register(type_name, klass = nil, **options, &block)

Add a new type to the registry, allowing it to be referenced as a symbol by {ActiveRecord::Base.attribute}. If your type is only meant to be used with a specific database adapter, you can do so by passing adapter: :postgresql. If your type has the same name as a native type for the current adapter, an exception will be raised unless you specify an :override option. override: true will cause your type to be used instead of the native type. override: false will cause the native type to be used over yours if one exists.

[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 37

def register(type_name, klass = nil, **options, &block)
  registry.register(type_name, klass, **options, &block)
end

Instance Attribute Details

#add_modifier (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/type.rb', line 27

delegate :add_modifier, to: :registry