Sha256: 8ca2e508a6c833c18c3743b2fe1ed8dd7b8b071114bab2c1ca7770fa8caca39c

Contents?: true

Size: 1.5 KB

Versions: 12

Compression:

Stored size: 1.5 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 = []
  extensions = []

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

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

    l = line.strip
    if l =~ /^`{32} example(.*)$/
      state = 1
      extensions = $1.split
    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,
        :extensions => extensions.map(&:to_sym),
      }
      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

12 entries across 12 versions & 2 rubygems

Version Path
commonmarker-0.18.2 test/test_helper.rb
commonmarker-0.18.1 test/test_helper.rb
commonmarker-0.18.0 test/test_helper.rb
commonmarker-0.17.13 test/test_helper.rb
commonmarker-0.17.12 test/test_helper.rb
commonmarker-0.17.11 test/test_helper.rb
commonmarker-0.17.10 test/test_helper.rb
tdiary-5.0.8 vendor/bundle/gems/commonmarker-0.17.9/test/test_helper.rb
commonmarker-0.17.9 test/test_helper.rb
commonmarker-0.17.8 test/test_helper.rb
commonmarker-0.17.7.1 test/test_helper.rb
commonmarker-0.17.7 test/test_helper.rb