Class: RSpec::Core::World Private
- Inherits:
-
Object
- Object
- RSpec::Core::World
- Defined in:
- lib/rspec/core/world.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Internal container for global non-configuration data.
Instance Attribute Summary (collapse)
-
- (void) wants_to_quit
private
Used internally to determine what to do when a SIGINT is received.
Instance Method Summary (collapse)
-
- (void) announce_exclusion_filter(announcements)
private
Add exclusion filters to announcement message.
-
- (void) announce_filters
private
Notify reporter of filters.
-
- (void) announce_inclusion_filter(announcements)
private
Add inclusion filters to announcement message.
-
- (void) example_count(groups = example_groups)
private
Get count of examples to be run.
-
- (World) initialize(configuration = RSpec.configuration)
constructor
private
A new instance of World.
-
- (void) ordered_example_groups
private
Apply ordering strategy from configuration to example groups.
-
- (void) preceding_declaration_line(absolute_file_name, filter_line)
private
Find line number of previous declaration.
-
- (void) record(example_group)
private
Records an example group.
-
- (void) reset
private
Reset world to 'scratch' before running suite.
Constructor Details
- (World) initialize(configuration = RSpec.configuration)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of World
19 20 21 22 23 24 25 26 27 |
# File 'lib/rspec/core/world.rb', line 19 def initialize(configuration=RSpec.configuration) @configuration = configuration configuration.world = self @example_groups = [] @example_group_counts_by_spec_file = Hash.new(0) @filtered_examples = Hash.new do |hash, group| hash[group] = filter_manager.prune(group.examples) end end |
Instance Attribute Details
- (void) wants_to_quit
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Used internally to determine what to do when a SIGINT is received.
11 12 13 |
# File 'lib/rspec/core/world.rb', line 11 def wants_to_quit @wants_to_quit end |
Instance Method Details
- (void) announce_exclusion_filter(announcements)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Add exclusion filters to announcement message.
203 204 205 206 207 |
# File 'lib/rspec/core/world.rb', line 203 def announce_exclusion_filter(announcements) return if exclusion_filter.empty? announcements << "exclude #{exclusion_filter.description}" end |
- (void) announce_filters
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Notify reporter of filters.
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/rspec/core/world.rb', line 150 def announce_filters filter_announcements = [] announce_inclusion_filter filter_announcements announce_exclusion_filter filter_announcements unless filter_manager.empty? if filter_announcements.length == 1 ("Run options: #{filter_announcements[0]}") else ("Run options:\n #{filter_announcements.join("\n ")}") end end if @configuration.run_all_when_everything_filtered? && example_count.zero? && !@configuration.only_failures? ("#{}; ignoring #{inclusion_filter.description}") filtered_examples.clear inclusion_filter.clear end return unless example_count.zero? example_groups.clear if filter_manager.empty? ("No examples found.") elsif exclusion_filter.empty? || inclusion_filter.empty? () end end |
- (void) announce_inclusion_filter(announcements)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Add inclusion filters to announcement message.
194 195 196 197 198 |
# File 'lib/rspec/core/world.rb', line 194 def announce_inclusion_filter(announcements) return if inclusion_filter.empty? announcements << "include #{inclusion_filter.description}" end |
- (void) example_count(groups = example_groups)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get count of examples to be run.
88 89 90 91 |
# File 'lib/rspec/core/world.rb', line 88 def example_count(groups=example_groups) FlatMap.flat_map(groups) { |g| g.descendants }. inject(0) { |a, e| a + e.filtered_examples.size } end |
- (void) ordered_example_groups
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Apply ordering strategy from configuration to example groups.
32 33 34 35 |
# File 'lib/rspec/core/world.rb', line 32 def ordered_example_groups ordering_strategy = @configuration.ordering_registry.fetch(:global) ordering_strategy.order(@example_groups) end |
- (void) preceding_declaration_line(absolute_file_name, filter_line)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Find line number of previous declaration.
119 120 121 122 123 124 125 |
# File 'lib/rspec/core/world.rb', line 119 def preceding_declaration_line(absolute_file_name, filter_line) line_numbers = descending_declaration_line_numbers_by_file.fetch(absolute_file_name) do return nil end line_numbers.find { |num| num <= filter_line } end |
- (void) record(example_group)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Records an example group.
60 61 62 63 |
# File 'lib/rspec/core/world.rb', line 60 def record(example_group) @configuration.on_example_group_definition_callbacks.each { |block| block.call(example_group) } @example_group_counts_by_spec_file[example_group.[:absolute_file_path]] += 1 end |
- (void) reset
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Reset world to 'scratch' before running suite.
40 41 42 43 44 45 |
# File 'lib/rspec/core/world.rb', line 40 def reset RSpec::ExampleGroups.remove_all_constants example_groups.clear @sources_by_path.clear if defined?(@sources_by_path) @syntax_highlighter = nil end |