Module: Minitest::Markdown

Defined in:
lib/minitest/markdown.rb,
lib/minitest/markdown/errors.rb,
lib/minitest/markdown/version.rb,
lib/minitest/markdown/test_class.rb,
lib/minitest/markdown/configuration.rb,
lib/minitest/markdown/ruby_code_block.rb

Overview

namespace

Defined Under Namespace

Classes: Configuration, Error, RubyCodeBlock, TestClass

Constant Summary collapse

BAD_KLASS =
'klass keyword takes a subclass of Minitest::Test'
ARG_ERR =
'stubs keyword takes a hash. Keys are integers and values are StubChain instances'
VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.configObject



19
20
21
# File 'lib/minitest/markdown.rb', line 19

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/minitest/markdown.rb', line 23

def configure
  yield config
end

.generate_markdown_tests(klass, path: nil, stubs: {}) ⇒ Object

Raises:

  • (ArgumentError)


27
28
29
30
31
32
33
34
35
36
# File 'lib/minitest/markdown.rb', line 27

def generate_markdown_tests(klass, path: nil, stubs: {})
  raise ArgumentError, BAD_KLASS unless klass.respond_to?(:ancestors) && klass.ancestors.include?(Test)
  raise ArgumentError, ARG_ERR unless stubs.is_a? Hash
  raise ArgumentError, ARG_ERR unless stubs.keys.all?(Integer)
  raise ArgumentError, ARG_ERR unless stubs.values.all?(StubChain)

  klass.include Hooks

  TestClass.new(klass, path: path).define_methods(stubs: stubs)
end