123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Core::FilterableItemRepository::UpdateOptimized Private

Do not use. This class is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
RSpec::Core::FilterableItemRepository::QueryOptimized
Inherits: Object
Defined in: rspec-core/lib/rspec/core/metadata_filter.rb

Overview

This implementation is simple, and is optimized for frequent updates but rare queries. ‘append` and #prepend do no extra processing, and no internal memoization is done, since this is not optimized for queries.

This is ideal for use by a example or example group, which may be updated multiple times with globally configured hooks, etc, but will not be queried frequently by other examples or example groups.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#items_and_filters (readonly)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 99

attr_reader :items_and_filters

Instance Method Details

#append(item, metadata)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 106

def append(item, )
  @items_and_filters << [item, ]
end

#delete(item, metadata)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 114

def delete(item, )
  @items_and_filters.delete [item, ]
end

#items_for(request_meta) Also known as: #find_items_for

See additional method definition at line 118.

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 128

def items_for(request_meta)
  @items_and_filters.each_with_object([]) do |(item, item_meta), to_return|
    to_return << item if item_meta.empty? ||
                         MetadataFilter.apply?(@applies_predicate, item_meta, request_meta)
  end
end

#prepend(item, metadata)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 110

def prepend(item, )
  @items_and_filters.unshift [item, ]
end