Module: MutationTester::InMemoryLoader

Defined in:
lib/mutation_tester/in_memory_loader.rb

Class Method Summary collapse

Class Method Details

.apply(source, path) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/mutation_tester/in_memory_loader.rb', line 3

def self.apply(source, path)
  previous = $VERBOSE
  $VERBOSE = nil
  eval(source, TOPLEVEL_BINDING, path)
ensure
  $VERBOSE = previous
end

.load_time_defined?(node) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
# File 'lib/mutation_tester/in_memory_loader.rb', line 17

def self.load_time_defined?(node)
  return false unless node.is_a?(Parser::AST::Node)
  return true if node.type == :defined?
  return false if %i[def defs].include?(node.type)

  node.children.any? { |child| load_time_defined?(child) }
end

.load_time_defined_guard?(source) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
14
15
# File 'lib/mutation_tester/in_memory_loader.rb', line 11

def self.load_time_defined_guard?(source)
  load_time_defined?(Parser::CurrentRuby.parse(source))
rescue Parser::SyntaxError
  false
end