Sha256: f3597eacfa1e1a28bb1601b148c3dad950dbde3cb17e06431bcee0fd20db6a4c
Contents?: true
Size: 1.14 KB
Versions: 15
Compression:
Stored size: 1.14 KB
Contents
require_relative '../spec_helper' require 'kramdown' RSpec.describe 'Documentation' do root = File.expand_path('../..', __dir__) files = Dir.glob(File.join(root, '*.md')) + Dir.glob(File.join(root, 'docs', '*.md')) files.each do |file| describe "from #{file}" do text = File.read(file) doc = Kramdown::Document.new(text, input: 'GFM') blocks = doc.root.children blocks.each do |block| # Only consider code blocks with language 'ruby'. next unless [:codeblock, :codespan].include?(block.type) next unless block.attr['class'] == 'language-ruby' it "has a valid sample at #{block.options[:location] + 1}" do code = block.value.strip # Replace lines of the form `<expression> # => <result>` with # assertions. # # For example, # # 2 + 2 # => 4 # # will be replaced by # # assert_equal(4, 2 + 2) # spec_code = code.gsub(/(^.+) # ?=> (.+$)/, 'assert_equal(\2, \1)') eval spec_code # rubocop:disable Security/Eval end end end end end
Version data entries
15 entries across 13 versions & 2 rubygems