Sha256: 021f82b95bd771e24ca2b288e0945d5d75e960d33e7d0b3f8a727af07365b9ee

Contents?: true

Size: 851 Bytes

Versions: 59

Compression:

Stored size: 851 Bytes

Contents

require File.expand_path('../step_definition_file', __FILE__)

class StepManager
  STEP_KINDS = %w[Given When Then]

  attr_accessor :directories, :step_files

  def initialize(*directories)
    self.directories = directories
    self.step_files = directories.map(&method(:collect_files)).flatten.compact
  end

  def to_markdown
    step_files.collect(&:to_markdown).join "\n\n"
  end

  def steps(search = nil)
    step_files.collect(&:real_steps).flatten.
      sort_by { |step| [STEP_KINDS.index(step.kind), step.to_s.downcase] }.
      select { |definition| search.nil? or definition.step =~ Regexp.new(search) }
  end

private

  def collect_files(directory)
    Dir["#{directory}/**/*_steps.rb"].to_a.sort.map do |filename|
      next if filename.include? 'spreewald/all_steps'
      StepDefinitionFile.new(filename)
    end.compact
  end

end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
spreewald-4.2.3 support/step_manager.rb
spreewald-4.2.2 support/step_manager.rb
spreewald-4.1.2 support/step_manager.rb
spreewald-4.1.1 support/step_manager.rb
spreewald-4.1.0 support/step_manager.rb
spreewald-3.0.3 support/step_manager.rb
spreewald-3.0.2 support/step_manager.rb
spreewald-2.99.3 support/step_manager.rb
spreewald-2.99.2 support/step_manager.rb
spreewald-3.0.1 support/step_manager.rb
spreewald-2.99.1 support/step_manager.rb
spreewald-3.0.0 support/step_manager.rb
spreewald-2.99.0 support/step_manager.rb
spreewald-2.9.0 support/step_manager.rb
spreewald-2.8.0 support/step_manager.rb
spreewald-2.7.1 support/step_manager.rb
spreewald-2.7.0 support/step_manager.rb
spreewald-2.6.0 support/step_manager.rb
spreewald-2.5.0 support/step_manager.rb
spreewald-2.4.2 support/step_manager.rb