Sha256: 7c2c08074ab93b48bf8938a9ca32a99454a5f7db33df28b6b39489b59c486b35

Contents?: true

Size: 714 Bytes

Versions: 15

Compression:

Stored size: 714 Bytes

Contents

require 'uri'

module Copy
  module Storage
    autoload :Mongodb,    'copy/storage/mongodb'
    autoload :Redis,      'copy/storage/redis'
    autoload :Relational, 'copy/storage/relational'
    
    def self.connect!(connection_url)
      scheme = URI.parse(connection_url).scheme
      klass  = scheme.capitalize
      if %w(sqlite mysql postgres).include?(scheme)
        klass = 'Relational'
      end
      @@storage = Copy::Storage.const_get(klass).new(connection_url)
    end
    
    def self.connected?
      !defined?(@@storage).nil?
    end
    
    def self.get(name)
      @@storage.get(name.to_s)
    end
    
    def self.set(name, content)
      @@storage.set(name.to_s, content)
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
copy_no_dependency-0.2.0 lib/copy/storage.rb
copy-0.2.0 lib/copy/storage.rb
copy-0.1.7 lib/copy/storage.rb
copy-0.1.6 lib/copy/storage.rb
copy-0.1.5 lib/copy/storage.rb
copy-0.1.4 lib/copy/storage.rb
copy-0.1.3 lib/copy/storage.rb
copy-0.1.2 lib/copy/storage.rb
copy-0.1.1 lib/copy/storage.rb
copy-0.1.0 lib/copy/storage.rb
copy-0.0.41 lib/copy/storage.rb
copy-0.0.4 lib/copy/storage.rb
copy-0.0.3 lib/copy/storage.rb
copy-0.0.2 lib/copy/storage.rb
copy-0.0.1 lib/copy/storage.rb