Sha256: efb2158f828ea11cccf3c5cbeaaa44d52ebf4a34ef59b21f2d639474ce9dd3ab

Contents?: true

Size: 713 Bytes

Versions: 8

Compression:

Stored size: 713 Bytes

Contents

module Specs
  class << self
    def reset_class_variables(description)
      # build uuid from example ending (most unique)
      uuid_prefix = description[-([description.size, 20].min)..-1]
      reset_uuid(uuid_prefix)

      reset_probe(Queue.new)
      yield
      reset_probe(nil)
    end

    def reset_probe(value)
      $CELLULOID_MONITORING = !value.nil?
      replace_const(Celluloid::Probe, :EVENTS_BUFFER, value)
    end

    def reset_uuid(uuid_prefix)
      replace_const(Celluloid::Internals::UUID, :PREFIX, uuid_prefix)
    end

    def replace_const(klass, const, value)
      klass.send(:remove_const, const) if klass.const_defined?(const)
      klass.const_set(const, value)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
celluloid-0.17.4 spec/support/reset_class_variables.rb
celluloid-0.18.0.pre spec/support/reset_class_variables.rb
celluloid-0.17.3 spec/support/reset_class_variables.rb
celluloid-0.17.2 spec/support/reset_class_variables.rb
celluloid-0.17.1.2 spec/support/reset_class_variables.rb
celluloid-0.17.1.1 spec/support/reset_class_variables.rb
celluloid-0.17.1 spec/support/reset_class_variables.rb
celluloid-0.17.0 spec/support/reset_class_variables.rb