Sha256: 359a7d00a334b94de81746213007d79c70ec44dfba2ef627752951fe3e9efa13

Contents?: true

Size: 707 Bytes

Versions: 1

Compression:

Stored size: 707 Bytes

Contents

# frozen_string_literal: true

require 'git_dump/path_object'

class GitDump
  # Entry at path
  class Entry < PathObject
    attr_reader :sha, :mode
    def initialize(repo, dir, name, sha, mode)
      super(repo, dir, name)
      @sha, @mode = sha, (mode & 0o100) == 0 ? 0o644 : 0o755
    end

    # Get size
    def size
      @size ||= repo.size(sha)
    end

    # Pipe for reading data
    def open(&block)
      repo.blob_pipe(sha, &block)
    end

    # Data
    def read
      repo.blob_read(sha)
    end

    # Write to path
    def write_to(path)
      repo.blob_unpack(sha, path, mode)
    end

    def inspect
      "#<#{self.class} sha=#{@sha} mode=#{format '%03o', @mode}>"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
git_dump-0.1.1 lib/git_dump/entry.rb