123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::Type::DecorationRegistration

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Registration
Instance Chain:
self, Registration
Inherits: ActiveRecord::Type::Registration
Defined in: activerecord/lib/active_record/type/adapter_specific_registry.rb

Class Method Summary

Instance Attribute Summary

Registration - Inherited

Instance Method Summary

Constructor Details

.new(options, klass, adapter: nil) ⇒ DecorationRegistration

[ GitHub ]

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

def initialize(options, klass, adapter: nil)
  @options = options
  @klass = klass
  @adapter = adapter
end

Instance Attribute Details

#klass (readonly, private)

[ GitHub ]

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

attr_reader :options, :klass

#options (readonly, private)

[ GitHub ]

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

attr_reader :options, :klass

Instance Method Details

#call(registry, *args, **kwargs)

[ GitHub ]

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

def call(registry, *args, **kwargs)
  subtype = registry.lookup(*args, **kwargs.except(*options.keys))
  klass.new(subtype)
end

#matches?(*args, **kwargs) ⇒ Boolean

[ GitHub ]

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

def matches?(*args, **kwargs)
  matches_adapter?(**kwargs) && matches_options?(**kwargs)
end

#matches_options?(**kwargs) ⇒ Boolean (private)

[ GitHub ]

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

def matches_options?(**kwargs)
  options.all? do |key, value|
    kwargs[key] == value
  end
end

#priority

[ GitHub ]

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

def priority
  super | 4
end