blob.rb 672 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
module Gitlab
  module Git
    class Blob
      include Linguist::BlobHelper

      attr_accessor :raw_blob

      delegate :name, to: :raw_blob

      def initialize(repository, sha, ref, path)
        @repository, @sha, @ref = repository, sha, ref

        @commit = @repository.commit(sha)
        @raw_blob = @repository.tree(@commit, path)
      end

      def data
        if raw_blob
          raw_blob.data
        else
          nil
        end
      end

      def exists?
26 27 28 29 30 31 32 33 34 35 36 37 38
        raw_blob
      end

      def empty?
        data.blank?
      end

      def mode
        raw_blob.mode
      end

      def size
        raw_blob.size
39 40 41 42
      end
    end
  end
end