free_mutant/lib/mutant/meta.rb
Markus Schirp 7bf70d9634 Add support for explicit type in meta examples
* This is needed to relate examples to node types for nodes that cannot
  stand alone. Example are :where nodes that do not have syntax outside
  a :case
2016-03-19 15:13:05 +00:00

35 lines
799 B
Ruby

module Mutant
# Namespace for mutant metadata
module Meta
require 'mutant/meta/example'
require 'mutant/meta/example/dsl'
require 'mutant/meta/example/verification'
# Mutation example
class Example
# rubocop:disable MutableConstant
ALL = []
# Add example
#
# @return [undefined]
def self.add(type, &block)
file = caller.first.split(':in', 2).first
ALL << DSL.call(file, type, block)
end
Pathname.glob(Pathname.new(__dir__).parent.parent.join('meta', '*.rb'))
.sort
.each(&method(:require))
ALL.freeze
# Remove mutation method only present for DSL executions from meta/**/*.rb
class << self
undef_method :add
end
end # Example
end # Meta
end # Mutant