33 lines
		
	
	
		
			638 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			638 B
		
	
	
	
		
			Ruby
		
	
	
	
| module Gitlab
 | |
|   module Git
 | |
|     class LfsPointerFile
 | |
|       VERSION = "https://git-lfs.github.com/spec/v1".freeze
 | |
|       VERSION_LINE = "version #{VERSION}".freeze
 | |
| 
 | |
|       def initialize(data)
 | |
|         @data = data
 | |
|       end
 | |
| 
 | |
|       def pointer
 | |
|         @pointer ||= <<~FILE
 | |
|           #{VERSION_LINE}
 | |
|           oid sha256:#{sha256}
 | |
|           size #{size}
 | |
|         FILE
 | |
|       end
 | |
| 
 | |
|       def size
 | |
|         @size ||= @data.bytesize
 | |
|       end
 | |
| 
 | |
|       def sha256
 | |
|         @sha256 ||= Digest::SHA256.hexdigest(@data)
 | |
|       end
 | |
| 
 | |
|       def inspect
 | |
|         "#<#{self.class}:#{object_id} @size=#{size}, @sha256=#{sha256.inspect}>"
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |