Module: Spec::Story::Extensions::Main

Module | Spec::Story::Extensions::Main
In: | lib/spec/story/extensions/main.rb

### Methods

Story run_story steps_for with_steps_for

### Classes and Modules

Module Spec::Story::Extensions::Main::StoryRunnerStepGroupAdapter

### Public Instance methods

Story(title, narrative, params = {}, &body)

[Source]

       # File lib/spec/story/extensions/main.rb, line 5
    5:         def Story(title, narrative, params = {}, &body)
    6:           ::Spec::Story::Runner.story_runner.Story(title, narrative, params, &body)
    7:         end

run_story(*args, &block)

Calling this deprecated is silly, since it hasn‘t been released yet. But, for those who are reading this - this will be deleted before the 1.1 release.

[Source]

        # File lib/spec/story/extensions/main.rb, line 11
    11:         def run_story(*args, &block)
    12:           runner = Spec::Story::Runner::PlainTextStoryRunner.new(*args)
    13:           runner.instance_eval(&block) if block
    14:           runner.run
    15:         end

steps_for(tag, &block)

Creates (or appends to an existing) a namespaced group of steps for use in Stories

## Examples

      # Creating a new group
      steps_for :forms do
        When("user enters $value in the $field field") do ... end
        When("user submits the $form form") do ... end
      end

[Source]

        # File lib/spec/story/extensions/main.rb, line 26
    26:         def steps_for(tag, &block)
    27:           steps = rspec_story_steps[tag]
    28:           steps.instance_eval(&block) if block
    29:           steps
    30:         end

with_steps_for(*tags, &block)

Creates a context for running a Plain Text Story with specific groups of Steps. Also supports adding arbitrary steps that will only be accessible to the Story being run.

## Examples

      # Run a Story with one group of steps
      with_steps_for :checking_accounts do
        run File.dirname(__FILE__) + "/withdraw_cash"
      end

      # Run a Story, adding steps that are only available for this Story
      with_steps_for :accounts do
        Given "user is logged in as account administrator"
        run File.dirname(__FILE__) + "/reconcile_accounts"
      end

      # Run a Story with steps from two groups
      with_steps_for :checking_accounts, :savings_accounts do
        run File.dirname(__FILE__) + "/transfer_money"
      end

      # Run a Story with a specific Story extension
      with_steps_for :login, :navigation do
        run File.dirname(__FILE__) + "/user_changes_password", :type => RailsStory
      end

[Source]

        # File lib/spec/story/extensions/main.rb, line 58
    58:         def with_steps_for(*tags, &block)
    59:           steps = Spec::Story::StepGroup.new do
    60:             extend StoryRunnerStepGroupAdapter
    61:           end
    62:           tags.each {|tag| steps << rspec_story_steps[tag]}
    63:           steps.instance_eval(&block) if block
    64:           steps
    65:         end

[Validate]