Sha256: 0da4730256a0bfc7c8a637366d66c3e694fc7424f086770e3d4a9fe972e5d9e7
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true require 'set' module Leftovers class Collection attr_reader :calls, :test_calls, :definitions def initialize @calls = [] @test_calls = [] @definitions = [] end def leftovers @leftovers ||= begin freeze_calls @definitions .reject { |definition| definition.in_collection?(self) } .sort_by(&:location_s).freeze end end def with_tests split_leftovers.first end def without_tests split_leftovers[1] end def empty? leftovers.empty? end def concat(calls:, definitions:, test:) if test @test_calls.concat(calls) else @calls.concat(calls) end @definitions.concat(definitions) end private def split_leftovers return @split_leftovers if defined?(@split_leftovers) @split_leftovers = leftovers.partition do |definition| !definition.test? && definition.in_test_collection?(self) end.each(&:freeze).freeze freeze @split_leftovers end def freeze_calls @calls = @calls.to_set.compare_by_identity.freeze @test_calls = @test_calls.to_set.compare_by_identity.freeze end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
leftovers-0.12.2 | lib/leftovers/collection.rb |
leftovers-0.12.1 | lib/leftovers/collection.rb |
leftovers-0.12.0 | lib/leftovers/collection.rb |