class MyBitcasa::Connection

Attributes

login_engine[W]

Public Class Methods

new(user: nil, password: nil, multipart: false) { |self| ... } click to toggle source
Calls superclass method
# File lib/my_bitcasa/connection.rb, line 16
def initialize(user: nil, password: nil, multipart: false)
  super(:url => 'https://my.bitcasa.com') do |conn|
    conn.use FaradayMiddleware::FollowRedirects
    if multipart
      conn.request :multipart
    else
      conn.request :url_encoded
    end
    #conn.response :logger
    conn.response :my_bitcasa
    conn.adapter Faraday.default_adapter
  end 
  @headers[:user_agent] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"

  yield self if block_given?

  login(user, password) if user && password
ensure
  #ObjectSpace.define_finalizer(self) { logout! }
end

Private Class Methods

uri_encode(path) click to toggle source
# File lib/my_bitcasa/connection.rb, line 97
def uri_encode(path)
  URI.encode(path).gsub("[", "%5B").gsub("]", "%5D")
end

Public Instance Methods

loggedin?() click to toggle source
# File lib/my_bitcasa/connection.rb, line 46
def loggedin?
  !!@cookie
end
login(user, password) click to toggle source
# File lib/my_bitcasa/connection.rb, line 41
def login(user, password)
  login_engine.login(user, password)
  @cookie = login_engine.cookie
end
login_engine() click to toggle source
# File lib/my_bitcasa/connection.rb, line 37
def login_engine
  @login_engine ||= LoginEngine.autodetect.new
end
logout!() click to toggle source
# File lib/my_bitcasa/connection.rb, line 50
def logout!
  if loggedin?
    self.get("/logout")
    @cookie = nil
  end
end
multipart() click to toggle source
# File lib/my_bitcasa/connection.rb, line 78
def multipart
  @multipart ||= self.class.new(multipart: true)
  @multipart.cookie = self.cookie
  @multipart
end

Private Instance Methods

_after_request(method, res) click to toggle source
# File lib/my_bitcasa/connection.rb, line 89
def _after_request(method, res)
  @cookie = res.headers["set-cookie"] || @cookie
  if @cookie
    @cookie.sub!(/; Domain=(\.?my)?.bitcasa.com; Path=\//, "")
  end
end
_before_request(method, *args) click to toggle source
# File lib/my_bitcasa/connection.rb, line 85
def _before_request(method, *args)
  raise AuthorizationError, "login required" unless loggedin?
end