Module: Crystalball

Extended by:
Logging
Defined in:
lib/crystalball.rb,
lib/crystalball/rails.rb,
lib/crystalball/logging.rb,
lib/crystalball/version.rb,
lib/crystalball/git_repo.rb,
lib/crystalball/predictor.rb,
lib/crystalball/prediction.rb,
lib/crystalball/source_diff.rb,
lib/crystalball/rspec/runner.rb,
lib/crystalball/execution_map.rb,
lib/crystalball/map_compactor.rb,
lib/crystalball/map_generator.rb,
lib/crystalball/rspec/filtering.rb,
lib/crystalball/rails/tables_map.rb,
lib/crystalball/example_group_map.rb,
lib/crystalball/predictor/strategy.rb,
lib/crystalball/predictor_evaluator.rb,
lib/crystalball/source_diff/file_diff.rb,
lib/crystalball/map_storage/yaml_storage.rb,
lib/crystalball/predictor/modified_specs.rb,
lib/crystalball/rspec/prediction_builder.rb,
lib/crystalball/rspec/prediction_pruning.rb,
lib/crystalball/predictor/associated_specs.rb,
lib/crystalball/rails/tables_map_generator.rb,
lib/crystalball/rspec/runner/configuration.rb,
lib/crystalball/map_generator/base_strategy.rb,
lib/crystalball/map_generator/configuration.rb,
lib/crystalball/map_compactor/example_context.rb,
lib/crystalball/map_generator/parser_strategy.rb,
lib/crystalball/source_diff/formatting_checker.rb,
lib/crystalball/map_generator/coverage_strategy.rb,
lib/crystalball/rails/predictor/modified_schema.rb,
lib/crystalball/predictor/helpers/path_formatter.rb,
lib/crystalball/predictor/modified_support_specs.rb,
lib/crystalball/rails/helpers/base_schema_parser.rb,
lib/crystalball/map_generator/helpers/path_filter.rb,
lib/crystalball/rails/map_generator/i18n_strategy.rb,
lib/crystalball/rspec/standard_prediction_builder.rb,
lib/crystalball/map_generator/factory_bot_strategy.rb,
lib/crystalball/predictor/modified_execution_paths.rb,
lib/crystalball/map_generator/strategies_collection.rb,
lib/crystalball/map_generator/object_sources_detector.rb,
lib/crystalball/map_generator/described_class_strategy.rb,
lib/crystalball/rails/helpers/schema_definition_parser.rb,
lib/crystalball/map_generator/parser_strategy/processor.rb,
lib/crystalball/map_generator/allocated_objects_strategy.rb,
lib/crystalball/rails/map_generator/action_view_strategy.rb,
lib/crystalball/rails/tables_map_generator/configuration.rb,
lib/crystalball/rspec/prediction_pruning/examples_pruner.rb,
lib/crystalball/map_compactor/example_groups_data_compactor.rb,
lib/crystalball/map_generator/factory_bot_strategy/dsl_patch.rb,
lib/crystalball/rails/map_generator/action_view_strategy/patch.rb,
lib/crystalball/rails/map_generator/i18n_strategy/simple_patch.rb,
lib/crystalball/map_generator/coverage_strategy/execution_detector.rb,
lib/crystalball/predictor/helpers/affected_example_groups_detector.rb,
lib/crystalball/rails/helpers/schema_definition_parser/active_record.rb,
lib/crystalball/map_generator/factory_bot_strategy/factory_gem_loader.rb,
lib/crystalball/map_generator/allocated_objects_strategy/object_tracker.rb,
lib/crystalball/map_generator/factory_bot_strategy/factory_runner_patch.rb,
lib/crystalball/map_generator/object_sources_detector/definition_tracer.rb,
lib/crystalball/map_generator/object_sources_detector/hierarchy_fetcher.rb,
lib/crystalball/rails/helpers/schema_definition_parser/table_content_parser.rb,
lib/crystalball/map_generator/factory_bot_strategy/dsl_patch/factory_path_fetcher.rb

Overview

Main module for the library

Defined Under Namespace

Modules: Logging, MapCompactor, RSpec, Rails Classes: ExampleGroupMap, ExecutionMap, GitRepo, MapGenerator, MapStorage, Prediction, Predictor, PredictorEvaluator, SourceDiff

Constant Summary collapse

VERSION =
'0.7.0'

Class Method Summary collapse

Methods included from Logging

config, configured_level, extended, log, log_file_output_stream, output_stream, reset_logger, severity

Class Method Details

.foresee(workdir: '.', map_path: 'crystalball_data.yml', &block) ⇒ Object

Prints the list of specs which might fail

Examples:

Crystalball.foresee do |predictor|
  predictor.use Crystalball::Predictor::ModifiedExecutionPaths.new
  predictor.use Crystalball::Predictor::ModifiedSpecs.new
end

Parameters:

  • workdir (String) (defaults to: '.')
    • path to the root directory of repository (usually contains .git folder inside). Default: current directory

  • map_path (String) (defaults to: 'crystalball_data.yml')
    • path to the execution map. Default: crystalball_data.yml

  • block (Proc)
    • used to configure predictors



38
39
40
41
# File 'lib/crystalball.rb', line 38

def self.foresee(workdir: '.', map_path: 'crystalball_data.yml', &block)
  map = MapStorage::YAMLStorage.load(Pathname(map_path))
  Predictor.new(map, GitRepo.open(Pathname(workdir)), from: map.commit, &block).prediction.compact
end