Sha256: 300a5774bfe13146e315ddd5c6b279d01c25ab7bf0f277bb5860c1971f5798c9

Contents?: true

Size: 662 Bytes

Versions: 10

Compression:

Stored size: 662 Bytes

Contents

module DropboxApi::Metadata
  # 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.
  #
  # This same pattern is used in `DropboxApi::Metadata::Resource`
  class SharedLink
    class << self
      def new(data)
        class_for(data[".tag"].to_sym).new(data)
      end

      private

      def class_for(tag)
        case tag
        when :file
          DropboxApi::Metadata::FileLink
        when :folder
          DropboxApi::Metadata::FolderLink
        else
          raise ArgumentError, "Unable to infer resource type for `#{tag}`"
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dropbox_api-0.1.10 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.9 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.8 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.7 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.6 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.5 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.4 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.3 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.1 lib/dropbox_api/metadata/shared_link.rb
dropbox_api-0.1.0 lib/dropbox_api/metadata/shared_link.rb