Sha256: a70cb56f2cae4a4fef5cd3e090ed04623ff2c46a1191f6cbdafe454d8f47f6f0

Contents?: true

Size: 1.18 KB

Versions: 5

Compression:

Stored size: 1.18 KB

Contents

require "attachie"
require "attachie/s3_driver"
require "attachie/fake_driver"

module Kraps
  module Drivers
    module Driver
      def with_prefix(path)
        File.join(*[@prefix, path].compact)
      end

      def list(prefix: nil)
        driver.list(bucket, prefix: prefix)
      end

      def value(name)
        driver.value(name, bucket)
      end

      def download(name, path)
        driver.download(name, bucket, path)
      end

      def exists?(name)
        driver.exists?(name, bucket)
      end

      def store(name, data_or_io, options = {})
        driver.store(name, data_or_io, bucket, options)
      end
    end

    class S3Driver
      include Driver

      attr_reader :driver, :bucket, :prefix

      def initialize(s3_client:, bucket:, prefix: nil)
        @driver = Attachie::S3Driver.new(s3_client)
        @bucket = bucket
        @prefix = prefix
      end
    end

    class FakeDriver
      include Driver

      attr_reader :driver, :bucket, :prefix

      def initialize(bucket:, prefix: nil)
        @driver = Attachie::FakeDriver.new
        @bucket = bucket
        @prefix = prefix
      end

      def flush
        driver.flush
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kraps-0.10.0 lib/kraps/drivers.rb
kraps-0.9.0 lib/kraps/drivers.rb
kraps-0.8.0 lib/kraps/drivers.rb
kraps-0.7.0 lib/kraps/drivers.rb
kraps-0.6.0 lib/kraps/drivers.rb