Sha256: 9017b285a070729cdb83cf4aae297709a701a433e60b1dd71d3d779670f255a9

Contents?: true

Size: 1010 Bytes

Versions: 40

Compression:

Stored size: 1010 Bytes

Contents

require File.expand_path('../step_definition', __FILE__)
require File.expand_path('../parser', __FILE__)

class StepDefinitionFile

  FILE_COMMENT_END = 'FILE_COMMENT_END'

  attr_accessor :steps

  def initialize(filename)
    @filename = filename
    @code = File.read(filename)
    self.steps = []
    extract_comment
    add_steps
  end

  def to_markdown
    spaced_comment = "\n\n" + @comment if @comment

    <<-TEXT
### #{ @filename.split('/').last } #{spaced_comment}

#{ steps.collect(&:to_markdown).join("\n\n\n") }
    TEXT
  end

  def real_steps
    steps.select do |definition|
      StepManager::STEP_KINDS.include? definition.kind
    end
  end

private

  def extract_comment
    if @code.include?(FILE_COMMENT_END)
      file_comment = @code.split(FILE_COMMENT_END).first
      @comment = Parser.format_comment(file_comment)
    end
  end

  def add_steps
    @code.split("\n\n").each do |block|
      step = StepDefinition.new_from_raw(block)
      steps << step if step
    end
  end

end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
spreewald-2.5.0 support/step_definition_file.rb
spreewald-2.4.2 support/step_definition_file.rb
spreewald-2.4.0 support/step_definition_file.rb
spreewald-2.3.0 support/step_definition_file.rb
spreewald-2.2.4 support/step_definition_file.rb
spreewald-2.2.3 support/step_definition_file.rb
spreewald-2.2.2 support/step_definition_file.rb
spreewald-2.2.1 support/step_definition_file.rb
spreewald-2.2.0 support/step_definition_file.rb
spreewald-2.1.3 support/step_definition_file.rb
spreewald-2.1.2 support/step_definition_file.rb
spreewald-2.1.1 support/step_definition_file.rb
spreewald-2.1.0 support/step_definition_file.rb
spreewald-2.0.0 support/step_definition_file.rb
spreewald-1.12.6 support/step_definition_file.rb
spreewald-1.12.5 support/step_definition_file.rb
spreewald-1.12.4 support/step_definition_file.rb
spreewald-1.12.3 support/step_definition_file.rb
spreewald-1.12.2 support/step_definition_file.rb
spreewald-1.12.1 support/step_definition_file.rb