Module: PropertySets

Defined in:
lib/property_sets.rb,
lib/property_sets/casting.rb,
lib/property_sets/version.rb,
lib/property_sets/delegator.rb,
lib/property_sets/property_set_model.rb,
lib/property_sets/active_record_extension.rb

Defined Under Namespace

Modules: ActiveRecordExtension, Casting, Delegator, PropertySetModel

Constant Summary collapse

VERSION =
"3.5.1"

Class Method Summary collapse

Class Method Details

.ensure_property_set_class(association, owner_class_name) ⇒ Object


11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/property_sets.rb', line 11

def self.ensure_property_set_class(association, owner_class_name)
  const_name = "#{owner_class_name}#{association.to_s.singularize.camelcase}".to_sym
  unless Object.const_defined?(const_name)
    property_class = Object.const_set(const_name, Class.new(ActiveRecord::Base))
    property_class.class_eval do
      include PropertySets::PropertySetModel::InstanceMethods
      extend  PropertySets::PropertySetModel::ClassMethods
    end

    property_class.owner_class = owner_class_name
    property_class.owner_assoc = association
  end
  Object.const_get(const_name)
end