Sha256: 4d924ddccf7fb581086742de6597b066e2943b7f75344dca07acafff0ee87408

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'dry-container'
require 'dry-auto_inject'

require 'perfect_audit/connection'
require 'perfect_audit/response_parser'
require 'perfect_audit/version'

module PerfectAudit

  class << self
    def configure
      yield configuration

      register!
    end

    def books
      PerfectAudit::BooksRepository.new
    end

    def documents
      PerfectAudit::DocumentsRepository.new
    end

    # def transactions
    #   PerfectAudit::TransactionsRepository.new
    # end

    # private

    def register!
      connection = PerfectAudit::Connection.new(configuration.to_h)

      container.register :connection, -> { connection }
      container.register :response_parser, -> { PerfectAudit::ResponseParser }
      container.freeze
    end
  end

  private

  @@container = Dry::Container.new

  AutoInject = Dry::AutoInject(@@container)

  def self.container
    @@container
  end

  def self.configuration
    @@configuration ||= OpenStruct.new
  end
end

require 'perfect_audit/api/repositories'
# require 'local_configuration'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
perfect_audit-0.1.3 lib/perfect_audit.rb