Sha256: 1d00fc9597a3bfe1400ae8bfb123992962ce221b6c347c90e36959ed8a290357

Contents?: true

Size: 783 Bytes

Versions: 2

Compression:

Stored size: 783 Bytes

Contents

module AktionTestRails
  module ClassBuilder
    def self.included(example_group)
      example_group.class_eval do
        after do
          teardown_defined_constants
        end
      end
    end

    def define_class(class_name, base = Object, &block)
      class_name = class_name.to_s.camelize

      Class.new(base).tap do |constant_class|
        Object.const_set(class_name, constant_class)
        constant_class.unloadable
        constant_class.class_eval(&block) if block_given?
        constant_class.reset_column_information if constant_class.respond_to? :reset_column_information
      end
    end

    def teardown_defined_constants
      ActiveSupport::Dependencies.clear
    end
  end
end

RSpec.configure {|config| config.include AktionTestRails::ClassBuilder}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aktion_test_rails-0.1.1 lib/aktion_test_rails/class_builder.rb
aktion_test_rails-0.1.0 lib/aktion_test_rails/class_builder.rb