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
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
25 26 27 28 29 |
# File 'lib/git/status.rb', line 25 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
96 |
# File 'lib/git/status.rb', line 96 def [](file) = @files[file] |
#added ⇒ Hash{String => Git::Status::StatusFile}
Return files added to the index that are not yet in HEAD
44 |
# File 'lib/git/status.rb', line 44 def added = @added ||= select_files { |f| f.type == 'A' } |
#added?(file) ⇒ Boolean
Return true if file has been added to the index
72 |
# File 'lib/git/status.rb', line 72 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).
38 |
# File 'lib/git/status.rb', line 38 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
64 |
# File 'lib/git/status.rb', line 64 def changed?(file) = file_in_collection?(:changed, file) |
#deleted ⇒ Hash{String => Git::Status::StatusFile}
Return files deleted from the index
50 |
# File 'lib/git/status.rb', line 50 def deleted = @deleted ||= select_files { |f| f.type == 'D' } |
#deleted?(file) ⇒ Boolean
Return true if file has been deleted from the index
80 |
# File 'lib/git/status.rb', line 80 def deleted?(file) = file_in_collection?(:deleted, file) |
#each ⇒ Enumerator<Git::Status::StatusFile> #each {|file| ... } ⇒ Array<Git::Status::StatusFile>
Iterate over all status files
114 |
# File 'lib/git/status.rb', line 114 def each(&) = @files.values.each(&) |
#pretty ⇒ String
Return a formatted multi-line string representation of the status
121 122 123 |
# File 'lib/git/status.rb', line 121 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
56 |
# File 'lib/git/status.rb', line 56 def untracked = @untracked ||= select_files(&:untracked) |
#untracked?(file) ⇒ Boolean
Return true if file is not tracked by git
88 |
# File 'lib/git/status.rb', line 88 def untracked?(file) = file_in_collection?(:untracked, file) |