Module: Schema::Associations::DynamicTypes::ClassMethods

Defined in:
lib/schema/associations/dynamic_types.rb

Overview

no-doc

Instance Method Summary collapse

Instance Method Details

#add_type(type, options = {}, &block) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/schema/associations/dynamic_types.rb', line 13

def add_type(type, options = {}, &block)
  class_name = options[:class_name] || schema_dynamic_type_class_name(type)
  kls = Class.new(self)
  kls = base_schema_class.const_set(class_name, kls)
  schema_add_dynamic_type(type, class_name)
  kls.class_eval(&block) if block
  kls
end

#default_type(options = {}, &block) ⇒ Object



22
23
24
# File 'lib/schema/associations/dynamic_types.rb', line 22

def default_type(options = {}, &block)
  add_type(:default, options, &block)
end

#dynamic_type_namesObject



30
31
32
# File 'lib/schema/associations/dynamic_types.rb', line 30

def dynamic_type_names
  dynamic_types.keys - [:default]
end

#dynamic_typesObject



26
27
28
# File 'lib/schema/associations/dynamic_types.rb', line 26

def dynamic_types
  schema_options[:types]
end