Module: Heredity::InheritableClassInstanceVariables

Defined in:
lib/heredity/inheritable_class_instance_variables.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/heredity/inheritable_class_instance_variables.rb', line 5

def self.included(klass)
  return if klass.respond_to?(:_inheritable_class_instance_variables)

  Thread.exclusive do
    klass.extend(::Heredity::InheritableClassInstanceVariables::ClassMethods)

    klass.class_eval do
      @_inheritable_class_instance_variables = [ :_inheritable_class_instance_variables ]

      class << self
        alias_method :inheritable_attribute, :inheritable_attributes
        alias_method :class_inheritable_attributes, :inheritable_attributes
        alias_method :class_inheritable_attribute, :inheritable_attributes
      end
    end
  end
end