Skip to content

Commit

Permalink
Merge pull request #1337 from alexander-clark/master
Browse files Browse the repository at this point in the history
documentation for RSpec::Core::World
  • Loading branch information
JonRowe committed Feb 23, 2014
2 parents 508f93b + a90b3c7 commit 97e1fb4
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions lib/rspec/core/world.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
module RSpec
module Core
# @api private
#
# Internal container for global non-configuration data
class World

include RSpec::Core::Hooks
Expand All @@ -20,52 +23,85 @@ def initialize(configuration=RSpec.configuration)
}
end

# @api private
#
# Apply ordering strategy from configuration to example groups
def ordered_example_groups
ordering_strategy = @configuration.ordering_registry.fetch(:global)
ordering_strategy.order(@example_groups)
end

# @api private
#
# Reset world to 'scratch' before running suite
def reset
example_groups.clear
SharedExampleGroup.registry.clear
end

# @api private
#
# Get current filter manager
def filter_manager
@configuration.filter_manager
end

# @api private
#
# Register an example group
def register(example_group)
example_groups << example_group
example_group
end

# @api private
#
# Get inclusion filter
def inclusion_filter
@configuration.inclusion_filter
end

# @api private
#
# Get exclusion filter
def exclusion_filter
@configuration.exclusion_filter
end

# @api private
#
# Set the current config on a group
def configure_group(group)
@configuration.configure_group(group)
end

# @api private
#
# Get count of examples to be run
def example_count
FlatMap.flat_map(example_groups) {|g| g.descendants}.
inject(0) {|sum, g| sum + g.filtered_examples.size}
end

# @api private
#
# Find line number of previous declaration
def preceding_declaration_line(filter_line)
declaration_line_numbers.sort.inject(nil) do |highest_prior_declaration_line, line|
line <= filter_line ? line : highest_prior_declaration_line
end
end

# @api private
#
# Get reporter instance
def reporter
@configuration.reporter
end

# @api private
#
# Notify reporter of filters
def announce_filters
filter_announcements = []

Expand Down Expand Up @@ -102,16 +138,23 @@ def announce_filters
end
end

# @api private
def everything_filtered_message
"\nAll examples were filtered out"
end

# @api private
#
# Add inclusion filters to announcement message
def announce_inclusion_filter(announcements)
unless inclusion_filter.empty?
announcements << "include #{inclusion_filter.description}"
end
end

# @api private
#
# Add exclusion filters to announcement message
def announce_exclusion_filter(announcements)
unless exclusion_filter.empty_without_conditional_filters?
announcements << "exclude #{exclusion_filter.description}"
Expand Down

0 comments on commit 97e1fb4

Please sign in to comment.