Module: ActiveRecord::Type
- Defined in:
- activerecord/lib/active_record/type/adapter_specific_registry.rb,
activerecord/lib/active_record/type.rb,
activerecord/lib/active_record/type/date.rb,
activerecord/lib/active_record/type/json.rb,
activerecord/lib/active_record/type/text.rb,
activerecord/lib/active_record/type/time.rb,
activerecord/lib/active_record/type/type_map.rb,
activerecord/lib/active_record/type/date_time.rb,
activerecord/lib/active_record/type/serialized.rb,
activerecord/lib/active_record/type/unsigned_integer.rb,
activerecord/lib/active_record/type/internal/timezone.rb,
activerecord/lib/active_record/type/hash_lookup_type_map.rb,
activerecord/lib/active_record/type/decimal_without_scale.rb
Overview
:stopdoc:
Defined Under Namespace
Modules: Internal Classes: AdapterSpecificRegistry, Date, DateTime, DecimalWithoutScale, DecorationRegistration, HashLookupTypeMap, Json, Registration, Serialized, Text, Time, TypeMap, UnsignedInteger
Constant Summary collapse
- BigInteger =
ActiveModel::Type::BigInteger
- Binary =
ActiveModel::Type::Binary
- Boolean =
ActiveModel::Type::Boolean
- Decimal =
ActiveModel::Type::Decimal
- Float =
ActiveModel::Type::Float
- Integer =
ActiveModel::Type::Integer
- ImmutableString =
ActiveModel::Type::ImmutableString
- String =
ActiveModel::Type::String
- Value =
ActiveModel::Type::Value
Class Attribute Summary collapse
-
.registry ⇒ Object
:nodoc:.
Class Method Summary collapse
-
.adapter_name_from(model) ⇒ Object
:nodoc:.
-
.default_value ⇒ Object
:nodoc:.
-
.lookup(*args, adapter: current_adapter_name, **kwargs) ⇒ Object
:nodoc:.
-
.register(type_name, klass = nil, **options, &block) ⇒ Object
Add a new type to the registry, allowing it to be referenced as a symbol by ActiveRecord::Base.attribute.
Class Attribute Details
.registry ⇒ Object
:nodoc:
26 27 28 |
# File 'activerecord/lib/active_record/type.rb', line 26 def registry @registry end |
Class Method Details
.adapter_name_from(model) ⇒ Object
:nodoc:
49 50 51 |
# File 'activerecord/lib/active_record/type.rb', line 49 def adapter_name_from(model) # :nodoc: model.connection_db_config.adapter.to_sym end |
.default_value ⇒ Object
:nodoc:
45 46 47 |
# 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) ⇒ Object
:nodoc:
41 42 43 |
# 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) ⇒ Object
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.
37 38 39 |
# File 'activerecord/lib/active_record/type.rb', line 37 def register(type_name, klass = nil, **, &block) registry.register(type_name, klass, **, &block) end |