class DropboxApi::Metadata::Resource

This class is used as an adapter so we can create an object of the pertinent class when we need to infer the type from the data.

For example, calling `Resource.new({“.tag” => “file”, :name => …})` will instantiate a `File` object.

So this could initalize an object of either `File`, `Folder` or `Deleted`.

Public Class Methods

new(data) click to toggle source
# File lib/dropbox_api/metadata/resource.rb, line 12
def new(data)
  class_for(data['.tag'].to_sym).new(data)
end

Private Class Methods

class_for(tag) click to toggle source
# File lib/dropbox_api/metadata/resource.rb, line 18
def class_for(tag)
  case tag
  when :file
    DropboxApi::Metadata::File
  when :folder
    DropboxApi::Metadata::Folder
  when :deleted
    DropboxApi::Metadata::Deleted
  else
    raise ArgumentError, "Unable to infer resource type for `#{tag}`"
  end
end