Sha256: 1a9db7e88fbb5d1a83603400c1fbcf69da4e5a7a539d24d49f69d9a137e134e9

Contents?: true

Size: 776 Bytes

Versions: 8

Compression:

Stored size: 776 Bytes

Contents

module DropboxApi::Metadata
  # Example of a serialized {MediaInfo} object:
  #
  # ```json
  # {
  #   ".tag": "metadata",
  #   "metadata": {...}
  # }
  # ```
  #
  # or:
  #
  # ```json
  # {
  #   ".tag": "pending"
  # }
  # ```
  class MediaInfo < Base
    class << self
      def new(data)
        klass = class_for(data['.tag'].to_sym)

        if klass == :pending
          :pending
        else
          klass.new(data['metadata'])
        end
      end

      private

      def class_for(tag)
        case tag
        when :pending
          :pending
        when :metadata
          DropboxApi::Metadata::MediaMetadata
        else
          raise ArgumentError, "Unable to build individual result with `#{tag.inspect}`"
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dropbox_api-0.1.18 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.17 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.16 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.15 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.14 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.13 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.12 lib/dropbox_api/metadata/media_info.rb
dropbox_api-0.1.11 lib/dropbox_api/metadata/media_info.rb