class Mutiny::Integration::RSpec::Parser

This code originally based on Markus Schirp’s implementation of Mutant::Integration::Rspec

https://github.com/mbj/mutant/blob/master/lib/mutant/integration/rspec.rb

Public Class Methods

new(context = Context.new) click to toggle source
# File lib/mutiny/integration/rspec/parser.rb, line 10
def initialize(context = Context.new)
  @world = context.world
end

Public Instance Methods

call() click to toggle source
# File lib/mutiny/integration/rspec/parser.rb, line 14
def call
  TestSet.new(all_examples.map(&method(:parse_example)))
end

Private Instance Methods

all_examples() click to toggle source
# File lib/mutiny/integration/rspec/parser.rb, line 20
def all_examples
  @world.example_groups.flat_map(&:descendants).flat_map(&:examples)
end
parse_example(example) click to toggle source
# File lib/mutiny/integration/rspec/parser.rb, line 24
def parse_example(example)
  metadata = example.metadata
  location = metadata.fetch(:location)
  name = metadata.fetch(:full_description)

  Test.new(location: location, name: name, example: example)
end