Class: HasHelpers::FactoryScenario::Runner
- Inherits:
-
Object
- Object
- HasHelpers::FactoryScenario::Runner
- Defined in:
- lib/has_helpers/factory_scenario/runner.rb
Overview
Executes a scenario by composing:
- scenario-defined build aliases
- client-provided object overrides/new objects
- lazy activation through run/response/activate references
Defined Under Namespace
Classes: Reference, RunContext
Instance Attribute Summary collapse
-
#explicit_keys ⇒ Object
readonly
Returns the value of attribute explicit_keys.
Instance Method Summary collapse
-
#initialize(definition, objects_param, activate_aliases = [], response_aliases = nil) ⇒ Runner
constructor
A new instance of Runner.
- #run ⇒ Object
Constructor Details
#initialize(definition, objects_param, activate_aliases = [], response_aliases = nil) ⇒ Runner
Returns a new instance of Runner.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/has_helpers/factory_scenario/runner.rb', line 27 def initialize(definition, objects_param, activate_aliases = [], response_aliases = nil) @definition = definition @objects_param = normalize_objects_param(objects_param) @activate_aliases = Array(activate_aliases).map(&:to_sym) @response_aliases = response_aliases&.map(&:to_sym) @built = {} @alias_registry = build_alias_registry @run_context_instance = nil @explicit_keys = [] end |
Instance Attribute Details
#explicit_keys ⇒ Object (readonly)
Returns the value of attribute explicit_keys.
11 12 13 |
# File 'lib/has_helpers/factory_scenario/runner.rb', line 11 def explicit_keys @explicit_keys end |
Instance Method Details
#run ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/has_helpers/factory_scenario/runner.rb', line 38 def run with_factorybot_overrides do @run_context_instance ||= build_run_context execute_run_block @activate_aliases.each { |alias_name| resolve_alias(alias_name) } response_targets.each { |alias_name| resolve_alias(alias_name) } build_remaining_request_objects persist_and_reload_records end @built end |