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
- .new(applies_predicate) ⇒ UpdateOptimized constructor Internal use only
Instance Attribute Summary
- #items_and_filters readonly Internal use only
Instance Method Summary
- #append(item, metadata) Internal use only
- #delete(item, metadata) Internal use only
-
#items_for(request_meta)
(also: #find_items_for)
See additional method definition at line 118.
- #prepend(item, metadata) Internal use only
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.
# File 'rspec-core/lib/rspec/core/metadata_filter.rb', line 128
def items_for( ) @items_and_filters.each_with_object([]) do |(item, ), to_return| to_return << item if .empty? || MetadataFilter.apply?(@applies_predicate, , ) 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