Sha256: 9a4110a2ff1f1e48bcd792bca621ec28995a87e66b32b4c9cd7919e0e5c2b999

Contents?: true

Size: 751 Bytes

Versions: 1

Compression:

Stored size: 751 Bytes

Contents

module Lopata
  class SharedStep
    attr_reader :name, :block

    class SharedStepNotFound < StandardError; end

    def self.register(name, &block)
      raise ArgumentError, "Comma is not allowed in shared step name: '%s'" % name if name =~ /,/
      @shared_steps ||= {}
      @shared_steps[name] = new(name, &block)
    end

    def self.find(name)
      @shared_steps[name] or raise StandardError, "Shared step '%s' not found" % name
    end

    def initialize(name, &block)
      @name, @block = name, block
    end

    def steps
      @steps ||= build_steps
    end

    def build_steps
      builder = Lopata::ScenarioBuilder.new(name)
      builder.instance_exec(&block)
      builder.steps
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lopata-0.1.1 lib/lopata/shared_step.rb