Sha256: 3fdd19028e5f5077baa386e932025a8a5bf8c4edc4d224a9e2d5875f7edfb341

Contents?: true

Size: 642 Bytes

Versions: 3

Compression:

Stored size: 642 Bytes

Contents

module DataMapper
  class Property

    class ParseFile < Object

      def dump(value)
        if value.is_a?(Hash)
          value.merge("__type" => "File")
        elsif value.respond_to?(:original_filename) && value.respond_to?(:read) && value.respond_to?(:content_type)
          adapter       = model.repository.adapter
          filename      = value.original_filename
          content       = value.read
          content_type  = value.content_type
          dump adapter.upload_file(filename, content, content_type)
        else
          nil
        end
      end

      def load(value)
        value
      end

    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dm-parse-0.3.1 lib/property/parse_file.rb
dm-parse-0.3.0 lib/property/parse_file.rb
dm-parse-0.2.3 lib/property/parse_file.rb