Module: RspecHelpers::StubClass::ClassMethods

Defined in:
foobara-spec-helpers-0.0.4/lib/foobara/spec_helpers/class.rb

Instance Method Summary collapse

Instance Method Details

#stub_class(name, superclass = nil, which: :class) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'foobara-spec-helpers-0.0.4/lib/foobara/spec_helpers/class.rb', line 4

def stub_class(name, superclass = nil, which: :class, &)
  name = name.to_s if name.is_a?(::Symbol)

  unless .key?(:foobara_stubbed_modules)
    set = [:foobara_stubbed_modules] = Set.new

    after do
      names = set.sort_by { |s| -s.count(":") }

      names.each do |module_name|
        Foobara::Util.remove_constant(module_name)
      end

      set.clear
    end
  end

  [:foobara_stubbed_modules] << name

  Foobara::Util.make_class(name, superclass, which:, &)
end

#stub_module(name) ⇒ Object



26
27
28
# File 'foobara-spec-helpers-0.0.4/lib/foobara/spec_helpers/class.rb', line 26

def stub_module(name, &)
  stub_class(name, which: :module, &)
end