Class: Git::Status
- Inherits:
-
Object
- Object
- Git::Status
- Includes:
- Enumerable
- Defined in:
- lib/git/status.rb,
lib/git/status.rb,
lib/git/status.rb
Overview
The Status class gets the status of a git repository. It identifies which files have been modified, added, or deleted, including untracked files. The Status object is an Enumerable of StatusFile objects.
Defined Under Namespace
Classes: StatusFile, StatusFileFactory
Instance Method Summary collapse
-
#[](file) ⇒ Git::Status::StatusFile?
Return the StatusFile for the given path.
-
#added ⇒ Hash{String => Git::Status::StatusFile}
Return files added to the index that are not yet in HEAD.
-
#added?(file) ⇒ Boolean
Return
trueiffilehas been added to the index. -
#changed ⇒ Hash{String => Git::Status::StatusFile}
Return files modified in the index and/or working tree.
-
#changed?(file) ⇒ Boolean
Return
trueiffilehas been modified in the index or working tree. -
#deleted ⇒ Hash{String => Git::Status::StatusFile}
Return files deleted from the index.
-
#deleted?(file) ⇒ Boolean
Return
trueiffilehas been deleted from the index. -
#each {|file| ... } ⇒ Enumerator<Git::Status::StatusFile>, Array<Git::Status::StatusFile>
Iterate over all status files.
-
#initialize(base) ⇒ Status
constructor
Create a new Status for the given repository.
-
#pretty ⇒ String
Return a formatted multi-line string representation of the status.
-
#untracked ⇒ Hash{String => Git::Status::StatusFile}
Return files present in the working tree but not tracked by git.
-
#untracked?(file) ⇒ Boolean
Return
trueiffileis not tracked by git.
Constructor Details
#initialize(base) ⇒ Status
Create a new Status for the given repository
19 20 21 22 23 |
# File 'lib/git/status.rb', line 19 def initialize(base) @base = base # The factory returns a hash of file paths to StatusFile objects. @files = StatusFileFactory.new(base).construct_files end |
Instance Method Details
#[](file) ⇒ Git::Status::StatusFile?
Return the StatusFile for the given path
90 |
# File 'lib/git/status.rb', line 90 def [](file) = @files[file] |
#added ⇒ Hash{String => Git::Status::StatusFile}
Return files added to the index that are not yet in HEAD
38 |
# File 'lib/git/status.rb', line 38 def added = @added ||= select_files { |f| f.type == 'A' } |
#added?(file) ⇒ Boolean
Return true if file has been added to the index
66 |
# File 'lib/git/status.rb', line 66 def added?(file) = file_in_collection?(:added, file) |
#changed ⇒ Hash{String => Git::Status::StatusFile}
Return files modified in the index and/or working tree
Includes both staged modifications (index vs HEAD) and unstaged modifications (working tree vs index).
32 |
# File 'lib/git/status.rb', line 32 def changed = @changed ||= select_files { |f| f.type == 'M' } |
#changed?(file) ⇒ Boolean
Return true if file has been modified in the index or working tree
58 |
# File 'lib/git/status.rb', line 58 def changed?(file) = file_in_collection?(:changed, file) |
#deleted ⇒ Hash{String => Git::Status::StatusFile}
Return files deleted from the index
44 |
# File 'lib/git/status.rb', line 44 def deleted = @deleted ||= select_files { |f| f.type == 'D' } |
#deleted?(file) ⇒ Boolean
Return true if file has been deleted from the index
74 |
# File 'lib/git/status.rb', line 74 def deleted?(file) = file_in_collection?(:deleted, file) |
#each {|file| ... } ⇒ Enumerator<Git::Status::StatusFile>, Array<Git::Status::StatusFile>
Iterate over all status files
102 |
# File 'lib/git/status.rb', line 102 def each(&) = @files.values.each(&) |
#pretty ⇒ String
Return a formatted multi-line string representation of the status
109 110 111 |
# File 'lib/git/status.rb', line 109 def pretty map { |file| pretty_file(file) }.join << "\n" end |
#untracked ⇒ Hash{String => Git::Status::StatusFile}
Return files present in the working tree but not tracked by git
50 |
# File 'lib/git/status.rb', line 50 def untracked = @untracked ||= select_files(&:untracked) |
#untracked?(file) ⇒ Boolean
Return true if file is not tracked by git
82 |
# File 'lib/git/status.rb', line 82 def untracked?(file) = file_in_collection?(:untracked, file) |