tulios/nightcrawler_swift

View on GitHub
lib/nightcrawler_swift.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "date"
require "json"
require "logger"
require "digest"
require "ostruct"
require "multi_mime"
require "rest_client"
require "nightcrawler_swift/version"
require "nightcrawler_swift/exceptions"
require "nightcrawler_swift/ext/hash"
require "nightcrawler_swift/ext/open_struct"
require "nightcrawler_swift/ext/nil_class"
require "nightcrawler_swift/options"
require "nightcrawler_swift/gateway"
require "nightcrawler_swift/connection"
require "nightcrawler_swift/command"
require "nightcrawler_swift/commands/upload"
require "nightcrawler_swift/commands/download"
require "nightcrawler_swift/commands/metadata"
require "nightcrawler_swift/commands/list"
require "nightcrawler_swift/commands/delete"
require "nightcrawler_swift/commands/sync"
require "nightcrawler_swift/commands/multithread_sync"
require "nightcrawler_swift/railtie" if defined?(Rails)

module NightcrawlerSwift
  class << self

    attr_writer :logger
    attr_reader :options, :connection

    def logger
      @logger ||= Logger.new(STDOUT).tap {|l| l.level = Logger::INFO}
    end

    # Hash with:
    # - bucket
    # - tenant_name
    # - username
    # - password
    # - auth_url
    #
    # - max_age (optional, default: nil)
    # - timeout (in seconds. Optional, default: nil)
    #
    # - retries (default: 3)
    # - max_retry_time (in seconds, default: 30)
    #
    # - verify_ssl (optional, default: false)
    # - ssl_client_cert (optional, default: nil)
    # - ssl_client_key (optional, default: nil)
    # - ssl_ca_file (optional, default: nil)
    #
    def configure opts = {}
      opts.symbolize_keys!
      @options = Options.new opts
      @connection = Connection.new
    end

    def sync dir_path
      Sync.new.execute(dir_path)
    end

  end
end