Module: Schema::Associations::DynamicTypes::ClassMethods
- Defined in:
- lib/schema/associations/dynamic_types.rb
Overview
no-doc
Instance Method Summary collapse
- #add_type(type, options = {}, &block) ⇒ Object
- #default_type(options = {}, &block) ⇒ Object
- #dynamic_type_names ⇒ Object
- #dynamic_types ⇒ Object
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, = {}, &block) class_name = [: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( = {}, &block) add_type(:default, , &block) end |
#dynamic_type_names ⇒ Object
30 31 32 |
# File 'lib/schema/associations/dynamic_types.rb', line 30 def dynamic_type_names dynamic_types.keys - [:default] end |
#dynamic_types ⇒ Object
26 27 28 |
# File 'lib/schema/associations/dynamic_types.rb', line 26 def dynamic_types [:types] end |