Sha256: 3e57b6b2532d8354a0eb5aa63762c8eb96d2d168862cf081d2bcb6e16d4ef638

Contents?: true

Size: 821 Bytes

Versions: 3

Compression:

Stored size: 821 Bytes

Contents

module Spec
  module Story
    class Story
      attr_reader :title, :narrative

      def initialize(title, narrative, params = {}, &body)
        @body = body
        @title = title
        @narrative = narrative
        @params = params
      end

      def [](key)
        @params[key]
      end

      def run_in(obj)
        obj.instance_eval(&@body)
      end

      def assign_steps_to(assignee)
        if @params[:steps]
          assignee.use(@params[:steps])
        else
          case keys = @params[:steps_for]
          when Symbol
            keys = [keys]
          when nil
            keys = []
          end
          keys.each do |key|
            assignee.use(steps_for(key))
          end
        end
      end

      def steps_for(key)
        $rspec_story_steps[key]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
picolena-0.1.6 rails_plugins/rspec/lib/spec/story/story.rb
picolena-0.1.7 rails_plugins/rspec/lib/spec/story/story.rb
picolena-0.1.8 rails_plugins/rspec/lib/spec/story/story.rb