1module Spec
2 module Story
3 class StoryBuilder
4 def initialize
5 @title = 'a story'
6 @narrative = 'narrative'
7 end
8
9 def title(value)
10 @title = value
11 self
12 end
13
14 def narrative(value)
15 @narrative = value
16 self
17 end
18
19 def to_story(&block)
20 block = lambda {} unless block_given?
21 Story.new @title, @narrative, &block
22 end
23 end
24
25 class ScenarioBuilder
26 def initialize
27 @name = 'a scenario'
28 @story = StoryBuilder.new.to_story
29 end
30
31 def name(value)
32 @name = value
33 self
34 end
35
36 def story(value)
37 @story = value
38 self
39 end
40
41 def to_scenario(&block)
42 Scenario.new @story, @name, &block
43 end
44 end
45 end
46end