Module: ActiveRecord::Type
Constant Summary
-
BigInteger =
# File 'activerecord/lib/active_record/type.rb', line 59ActiveModel::Type::BigInteger
-
Binary =
# File 'activerecord/lib/active_record/type.rb', line 60ActiveModel::Type::Binary
-
Boolean =
# File 'activerecord/lib/active_record/type.rb', line 61ActiveModel::Type::Boolean
-
Decimal =
# File 'activerecord/lib/active_record/type.rb', line 62ActiveModel::Type::Decimal
-
Float =
# File 'activerecord/lib/active_record/type.rb', line 63ActiveModel::Type::Float
-
ImmutableString =
# File 'activerecord/lib/active_record/type.rb', line 65ActiveModel::Type::ImmutableString
-
Integer =
# File 'activerecord/lib/active_record/type.rb', line 64ActiveModel::Type::Integer
-
String =
# File 'activerecord/lib/active_record/type.rb', line 66ActiveModel::Type::String
-
Value =
# File 'activerecord/lib/active_record/type.rb', line 67ActiveModel::Type::Value
Class Attribute Summary
- .registry rw Internal use only
Class Method Summary
-
.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}.
- .current_adapter_name private
- .adapter_name_from(model) Internal use only
- .default_value Internal use only
- .lookup(*args, adapter: current_adapter_name, **kwargs) Internal use only
Instance Attribute Summary
- #add_modifier readonly
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.
# File 'activerecord/lib/active_record/type.rb', line 37
def register(type_name, klass = nil, **, &block) registry.register(type_name, klass, **, &block) end
Instance Attribute Details
#add_modifier (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/type.rb', line 27
delegate :add_modifier, to: :registry