Module: ClassSpecHelper::DestroyClasses

Included in:
ClassSpecHelper
Defined in:
lib/class_spec_helper/destroy_classes.rb

Instance Method Summary collapse

Instance Method Details

#destroy_class(klass) ⇒ Object

destroy the class by removing the constant



19
20
21
22
23
24
25
26
# File 'lib/class_spec_helper/destroy_classes.rb', line 19

def destroy_class klass
  fully_qualified_class_name = klass.name
  # get the namespace and class name from the fully qualified class name
  namespace = namespace_from_name fully_qualified_class_name
  class_name = class_name_from_name fully_qualified_class_name
  # remove the constant from the namespace
  namespace.send :remove_const, class_name
end

#remove_all_dynamically_created_classesObject

remove any classes (constants) which were created by the class helper



7
8
9
10
11
12
13
14
15
16
# File 'lib/class_spec_helper/destroy_classes.rb', line 7

def remove_all_dynamically_created_classes
  # destroy them in the reverse order which they were created
  @classes.keys.reverse_each do |fully_qualified_class_name|
    klass = @classes[fully_qualified_class_name]
    # destroy the class by removing the constant
    destroy_class klass
    # remove the class from the list of classes
    @classes.delete fully_qualified_class_name.to_sym
  end
end