Sha256: bc37124a1e3de99e9d16222c88f452e7876afb3edd170fcf220e84f39086cc14
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 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')) code_types = [:codeblock, :codespan] 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 code_types.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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
reek-6.0.3 | spec/quality/documentation_spec.rb |
reek-6.0.2 | spec/quality/documentation_spec.rb |