class Collection < ArvadosBase
MD5_EMPTY = 'd41d8cd98f00b204e9800998ecf8427e'
+ def default_name
+ if Collection.is_empty_blob_locator? self.uuid
+ "Empty Collection"
+ else
+ super
+ end
+ end
+
# Return true if the given string is the locator of a zero-length blob
def self.is_empty_blob_locator? locator
!!locator.to_s.match("^#{MD5_EMPTY}(\\+.*)?\$")
end
def attribute_editable? attr, *args
- false
+ if %w(name description manifest_text).include? attr.to_s
+ true
+ else
+ super
+ end
end
def self.creatable?
arvados_api_client.api "collections/#{self.uuid}/", "used_by"
end
+ def uuid
+ if self[:uuid].nil?
+ return self.portable_data_hash
+ else
+ super
+ end
+ end
+
+ def portable_data_hash
+ if self[:portable_data_hash].nil?
+ return self.uuid
+ else
+ super
+ end
+ end
+
+ def friendly_link_name
+ if self.respond_to? :name
+ self.name
+ else
+ self.portable_data_hash
+ end
+ end
+
end