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
String =
ActiveModel::Type::String
Value =
ActiveModel::Type::Value

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.registryObject

: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
52
# File 'activerecord/lib/active_record/type.rb', line 49

def adapter_name_from(model) # :nodoc:
  # TODO: this shouldn't depend on a connection to the database
  model.connection.adapter_name.downcase.to_sym
end

.default_valueObject

: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, **options, &block)
  registry.register(type_name, klass, **options, &block)
end