Sha256: 2b127e1e55f95e9b2da7a36eaf6c087d06e0775f1cf524de7cf5b0a2c4970cc1

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

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).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

6 entries across 6 versions & 1 rubygems

Version Path
commonmarker-0.10.0 test/test_helper.rb
commonmarker-0.9.2 test/test_helper.rb
commonmarker-0.9.1 test/test_helper.rb
commonmarker-0.9.0 test/test_helper.rb
commonmarker-0.8.0 test/test_helper.rb
commonmarker-0.7.0 test/test_helper.rb