class StoryMediator attr_reader :stories def initialize @stories = [] end def create_story(title, narrative) @stories << Story.new(:title => title, :narrative => narrative) end def create_scenario(title) current_story.scenarios << Scenario.new(:title => title) end def create_given(name) current_scenario.steps << Step.new(:kind => 'Given', :name => name) end def create_given_scenario(name) current_scenario.steps << Step.new(:kind => 'GivenScenario', :name => name) end def create_when(name) current_scenario.steps << Step.new(:kind => 'When', :name => name) end def create_then(name) current_scenario.steps << Step.new(:kind => 'Then', :name => name) end private def current_story @stories.last end def current_scenario current_story.scenarios.last end end