Sha256: adef27311f997900ad7e50b80cb292300f099c70a21942a1e20e95431504fdf8

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

require 'rails'
require 'rspec/apib/version'
require 'rspec/apib/configuration'
require 'rspec/apib/recorder'
require 'rspec/apib/writer'

module RSpec
  module Apib
    class <<self
      def configure
        @config = Configuration.new
        yield(@config) if block_given?
        @config
      end

      def config
        @config || configure
      end

      def connection
        Connection.instance
      end

      def start
        types = config.record_types
        RSpec.configure do |config|
          config.after :each do |example|
            if types.include?(example.metadata[:type])
              RSpec::Apib.record(example, request, response, @routes)
            end
          end

          config.after :all do |example|
            RSpec::Apib.write
          end
        end
      end

      def record(example, request, response, routes)
        @_doc ||= {}
        recorder = Recorder.new(example, request, response, routes, @_doc)
        recorder.run
      end

      def write
        writer = Writer.new(@_doc || {})
        writer.write
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rspec-apib-0.2.1 lib/rspec/apib.rb
rspec-apib-0.2.0 lib/rspec/apib.rb
rspec-apib-0.1.0 lib/rspec/apib.rb