Sha256: 6c91ce4fdd560a9bc2c5f7b070969365193471cee3d16d74d703baf8b1300df4

Contents?: true

Size: 1.4 KB

Versions: 7

Compression:

Stored size: 1.4 KB

Contents

# coding: utf-8
require 'commonmarker'
require 'minitest/autorun'
require 'minitest/pride'

include CommonMarker

FIXTURES_DIR = File.join(File.dirname(__FILE__), 'fixtures')

def open_spec_file(filename)
  line_number = 0
  start_line = 0
  end_line = 0
  example_number = 0
  markdown_lines = []
  html_lines = []
  state = 0 # 0 regular text, 1 markdown example, 2 html output
  headertext = ''
  tests = []

  header_re = Regexp.new('#+ ')
  filepath = File.join('ext', 'commonmarker', 'cmark', 'test', filename)

  File.readlines(filepath, encoding: "utf-8").each do |line|
    line_number += 1

    l = line.strip
    if l == '`' * 32 + ' example'
      state = 1
    elsif l == '`' * 32
      state = 0
      example_number += 1
      end_line = line_number
      tests << {
        :markdown => markdown_lines.join('').tr('→', "\t"),
        :html => html_lines.join('').tr('→', "\t").rstrip,
        :example => example_number,
        :start_line => start_line,
        :end_line => end_line,
        :section => headertext
      }
      start_line = 0
      markdown_lines = []
      html_lines = []
    elsif l == '.'
      state = 2
    elsif state == 1
      start_line = line_number - 1 if start_line == 0
      markdown_lines << "#{line}"
    elsif state == 2
      html_lines << "#{line}"
    elsif state == 0 && header_re.match(line)
      headertext = line.sub(header_re, '').strip
    end
  end

  tests
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
commonmarker-0.14.3 test/test_helper.rb
commonmarker-0.14.2 test/test_helper.rb
commonmarker-0.14.1 test/test_helper.rb
commonmarker-0.14.0 test/test_helper.rb
commonmarker-0.13.0 test/test_helper.rb
commonmarker-0.12.0 test/test_helper.rb
commonmarker-0.11.0 test/test_helper.rb