[ARVADOS] updated: 69fae522bf6fe6dbaa64ce7d75ef4ce5616ced72

git at public.curoverse.com git at public.curoverse.com
Tue Nov 18 11:25:01 EST 2014


Summary of changes:
 services/api/app/models/collection.rb | 13 +++++++++++++
 1 file changed, 13 insertions(+)

       via  69fae522bf6fe6dbaa64ce7d75ef4ce5616ced72 (commit)
      from  22ae84c0d72cdeab882017a8caf2ade4465ddd59 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 69fae522bf6fe6dbaa64ce7d75ef4ce5616ced72
Author: Tom Clegg <tom at curoverse.com>
Date:   Tue Nov 18 11:24:58 2014 -0500

    4363: Accept manifest_text in a non-UTF-8 encoding that is equal to its UTF-8 encoding.

diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb
index 5dd760f..2f81dc0 100644
--- a/services/api/app/models/collection.rb
+++ b/services/api/app/models/collection.rb
@@ -111,6 +111,19 @@ class Collection < ArvadosModel
     if manifest_text.encoding.name == 'UTF-8' and manifest_text.valid_encoding?
       true
     else
+      begin
+        # If Ruby thinks the encoding is something else, like 7-bit
+        # ASCII, but its stored bytes are equal to the (valid) UTF-8
+        # encoding of the same string, we declare it to be a UTF-8
+        # string.
+        utf8 = manifest_text
+        utf8.force_encoding Encoding::UTF_8
+        if utf8.valid_encoding? and utf8 == manifest_text.encode(Encoding::UTF_8)
+          manifest_text = utf8
+          return true
+        end
+      rescue
+      end
       errors.add :manifest_text, "must use UTF-8 encoding"
       false
     end

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list