Sha256: 05a0793d5ff0ca57ad5071ae8ed23303a19710a19a78e53a7f2da8a9675fd7bc

Contents?: true

Size: 686 Bytes

Versions: 2

Compression:

Stored size: 686 Bytes

Contents

require 'thread_safe'
require 'rom/http/dataset'

module ROM
  module HTTP
    class Gateway < ROM::Gateway
      attr_reader :datasets, :config
      private :datasets, :config

      def initialize(config)
        missing_keys = [:uri, :request_handler, :response_handler] - config.keys
        fail GatewayConfigurationError, missing_keys unless missing_keys.empty?

        @datasets = ThreadSafe::Cache.new
        @config = config
      end

      def [](name)
        datasets.fetch(name)
      end

      def dataset(name)
        datasets[name] = Dataset.new(config.merge(name: name))
      end

      def dataset?(name)
        datasets.key?(name)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rom-http-0.1.0 lib/rom/http/gateway.rb
rom-http-0.0.1 lib/rom/http/gateway.rb