Sha256: 24381aa04b0a32dcc30594561371674b67c39b6edf99a93643443be5f6554cf3

Contents?: true

Size: 734 Bytes

Versions: 2

Compression:

Stored size: 734 Bytes

Contents

##############################################################################
#                            Singleton Plugin
##############################################################################

RSpec.configure do |config|
  config.around(:each, singletons: ->(v) { !!v }) do |example|
    require 'singleton'

    options             = example.metadata[:singletons]
    options             = options.is_a?(TrueClass) ? subject.class : options
    singletons_to_reset = options.respond_to?(:each) ? options : [options]

    singletons_to_reset.each do |singleton|
      Singleton.__init__(singleton)
    end

    example.run

    singletons_to_reset.each do |singleton|
      Singleton.__init__(singleton)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rspectacular-0.63.0 lib/rspectacular/plugins/singleton.rb
rspectacular-0.62.1 lib/rspectacular/plugins/singleton.rb