class Marso::ScenarioContext
Attributes
after_run[R]
before_run[R]
ctx[R]
description[R]
feature_id[R]
get_scenario[R]
id[R]
status[R]
story_id[R]
Public Class Methods
new(description, ctx)
click to toggle source
# File lib/marso/domain/scenario/scenario.rb, line 12 def initialize(description, ctx) validate_arguments(description, ctx) @description = description.clone @ctx=ctx.clone @description[:id] = SecureRandom.hex(3) if description[:id].nil? @description[:status] = :none if description[:status].nil? @id = @description[:id] @before_run = @description[:before_run] @get_scenario = @description[:get_scenario] @after_run = @description[:after_run] @status = @description[:status] @story_id = ctx[:story_id] @feature_id = ctx[:feature_id] end
Public Instance Methods
indented_colorized_text()
click to toggle source
# File lib/marso/domain/scenario/scenario.rb, line 49 def indented_colorized_text s = @get_scenario.call(@id, @ctx) s.indented_colorized_text end
puts_scenario()
click to toggle source
# File lib/marso/domain/scenario/scenario.rb, line 44 def puts_scenario s = @get_scenario.call(@id, @ctx) s.puts_description end
run()
click to toggle source
# File lib/marso/domain/scenario/scenario.rb, line 31 def run @before_run.call(@description[:id], @ctx) unless @before_run.nil? s = @get_scenario.call(@id, @ctx) runned_scenario = s.run @after_run.call(@id, @ctx) unless @after_run.nil? updated_description = @description.clone updated_description[:get_scenario] = proc { runned_scenario } updated_description[:status] = runned_scenario.status return ScenarioContext.new(updated_description, @ctx) end
Private Instance Methods
validate_arguments(description, ctx)
click to toggle source
# File lib/marso/domain/scenario/scenario.rb, line 55 def validate_arguments(description, ctx) raise ArgumentError, "Argument 'ctx' must be a Hash" unless ctx.is_a?(Hash) raise ArgumentError, "Argument 'description' cannot be nil" if description.nil? raise ArgumentError, "Argument 'description' must define a :get_scenario key that points to a closure that returns a Marso::Scenario object" if description[:get_scenario].nil? end