Sha256: 6003bbf963a1a877f327307ae5df6bb35016be1b1ff0c457d23427c2bdec2feb

Contents?: true

Size: 755 Bytes

Versions: 5

Compression:

Stored size: 755 Bytes

Contents

require 'rmega/nodes/factory'

module Rmega
  class Storage
    include Loggable

    attr_reader :session

    def initialize(session)
      @session = session
    end

    def used_space
      quota['cstrg']
    end

    def total_space
      quota['mstrg']
    end

    def quota
      session.request(a: 'uq', strg: 1)
    end

    def nodes
      results = session.request(a: 'f', c: 1)['f']
      results.map { |node_data| Nodes::Factory.build(session, node_data) }
    end

    def trash
      @trash ||= nodes.find { |n| n.type == :trash }
    end

    def root
      @root ||= nodes.find { |n| n.type == :root }
    end

    def download(public_url, path)
      Nodes::Factory.build_from_url(session, public_url).download(path)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rmega-0.1.5 lib/rmega/storage.rb
rmega-0.1.4 lib/rmega/storage.rb
rmega-0.1.3 lib/rmega/storage.rb
rmega-0.1.2 lib/rmega/storage.rb
rmega-0.1.1 lib/rmega/storage.rb