Add new CodeOcean::File#read method

* With a new method, we can simplify our code to handle differences between file.content and file.native_file.read
This commit is contained in:
Sebastian Serth
2022-08-19 22:34:24 +02:00
parent a9aab612b6
commit d762f976a8
8 changed files with 45 additions and 27 deletions

View File

@ -56,6 +56,17 @@ module CodeOcean
define_method("#{role}?") { self.role == role }
end
def read
if native_file?
valid = Pathname(native_file.current_path).fnmatch? ::File.join(native_file.root, '**')
return nil unless valid
native_file.read
else
content
end
end
def ancestor_id
file_id || id
end
@ -83,12 +94,7 @@ module CodeOcean
end
def hash_content
self.hashed_content = Digest::MD5.new.hexdigest(if file_type.try(:binary?)
::File.new(native_file.file.path,
'r').read
else
content
end)
self.hashed_content = Digest::MD5.new.hexdigest(read || '')
end
private :hash_content