]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/lib/spec/story/story.rb
112e9414b55d4ff00584265adb7ce4ade1986aa6
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / story / story.rb
1 module Spec
2   module Story
3     class Story
4       attr_reader :title, :narrative
5       
6       def initialize(title, narrative, params = {}, &body)
7         @body = body
8         @title = title
9         @narrative = narrative
10         @params = params
11       end
12       
13       def [](key)
14         @params[key]
15       end
16       
17       def run_in(obj)
18         obj.instance_eval(&@body)
19       end
20       
21       def assign_steps_to(assignee)
22         if @params[:steps]
23           assignee.use(@params[:steps])
24         else
25           case keys = @params[:steps_for]
26           when Symbol
27             keys = [keys]
28           when nil
29             keys = []
30           end
31           keys.each do |key|
32             assignee.use(steps_for(key))
33           end
34         end
35       end
36       
37       def steps_for(key)
38         $rspec_story_steps[key]
39       end
40     end
41   end
42 end