Class: Git::DiffFileRawInfo
- Inherits:
-
Data
- Object
- Data
- Git::DiffFileRawInfo
- Defined in:
- lib/git/diff_file_raw_info.rb
Overview
Immutable value object representing status info for a single file from git raw diff output
Contains the source and destination file references, change status, similarity percentage (for renames/copies), and line change statistics.
Instance Attribute Summary collapse
-
#binary ⇒ Boolean
readonly
Whether this is a binary file.
-
#deletions ⇒ Integer
readonly
Number of lines deleted.
-
#dst ⇒ FileRef?
readonly
The destination file reference, or nil for deleted files.
-
#insertions ⇒ Integer
readonly
Number of lines inserted.
-
#similarity ⇒ Integer?
readonly
Similarity percentage for renames/copies (0-100), nil otherwise.
-
#src ⇒ FileRef?
readonly
The source file reference, or nil for new/added files.
-
#status ⇒ Symbol
readonly
The change status (:added, :modified, :deleted, :renamed, :copied, :type_changed).
Instance Method Summary collapse
-
#added? ⇒ Boolean
Check if this file was added.
-
#binary? ⇒ Boolean
Check if this is a binary file.
-
#copied? ⇒ Boolean
Check if this file was copied.
-
#deleted? ⇒ Boolean
Check if this file was deleted.
-
#path ⇒ String
Get the primary file path.
-
#renamed? ⇒ Boolean
Check if this file was renamed.
-
#src_path ⇒ String?
Get the source path (for renames/copies).
Instance Attribute Details
#binary ⇒ Boolean (readonly)
Returns whether this is a binary file.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#deletions ⇒ Integer (readonly)
Returns number of lines deleted.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#dst ⇒ FileRef? (readonly)
Returns the destination file reference, or nil for deleted files.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#insertions ⇒ Integer (readonly)
Returns number of lines inserted.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#similarity ⇒ Integer? (readonly)
Returns similarity percentage for renames/copies (0-100), nil otherwise.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#src ⇒ FileRef? (readonly)
Returns the source file reference, or nil for new/added files.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
#status ⇒ Symbol (readonly)
Returns the change status (:added, :modified, :deleted, :renamed, :copied, :type_changed).
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/git/diff_file_raw_info.rb', line 67 DiffFileRawInfo = Data.define(:src, :dst, :status, :similarity, :insertions, :deletions, :binary) do # Get the primary file path # # Returns the destination path if it exists, otherwise the source path. # This is the "current" or "canonical" path for the file. # # @return [String] the file path # def path dst&.path || src&.path end # Get the source path (for renames/copies) # # @return [String, nil] the source path, or nil if file was added # def src_path src&.path end # Check if this is a binary file # # @return [Boolean] true if the file is binary # def binary? binary end # Check if this file was renamed # # @return [Boolean] # def renamed? status == :renamed end # Check if this file was copied # # @return [Boolean] # def copied? status == :copied end # Check if this file was added # # @return [Boolean] # def added? status == :added end # Check if this file was deleted # # @return [Boolean] # def deleted? status == :deleted end end |
Instance Method Details
#added? ⇒ Boolean
Check if this file was added
115 116 117 |
# File 'lib/git/diff_file_raw_info.rb', line 115 def added? status == :added end |
#binary? ⇒ Boolean
Check if this is a binary file
91 92 93 |
# File 'lib/git/diff_file_raw_info.rb', line 91 def binary? binary end |
#copied? ⇒ Boolean
Check if this file was copied
107 108 109 |
# File 'lib/git/diff_file_raw_info.rb', line 107 def copied? status == :copied end |
#deleted? ⇒ Boolean
Check if this file was deleted
123 124 125 |
# File 'lib/git/diff_file_raw_info.rb', line 123 def deleted? status == :deleted end |
#path ⇒ String
Get the primary file path
Returns the destination path if it exists, otherwise the source path. This is the "current" or "canonical" path for the file.
75 76 77 |
# File 'lib/git/diff_file_raw_info.rb', line 75 def path dst&.path || src&.path end |
#renamed? ⇒ Boolean
Check if this file was renamed
99 100 101 |
# File 'lib/git/diff_file_raw_info.rb', line 99 def renamed? status == :renamed end |
#src_path ⇒ String?
Get the source path (for renames/copies)
83 84 85 |
# File 'lib/git/diff_file_raw_info.rb', line 83 def src_path src&.path end |