Class: RubyGit::Status::SubmoduleStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_git/status/submodule_status.rb

Overview

Represents an ordinary changed file in git status

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(commit_changed:, tracked_changes:, untracked_changes:) ⇒ SubmoduleStatus

Initialize a new submodule status

Examples:

SubmoduleStatus.new(true, false, false)

Parameters:

  • commit_changed (Boolean)

    the submodule commit changed

  • tracked_changes (Boolean)

    the tracked files in the submodule changed

  • untracked_changes (Boolean)

    the untracked files in the submodule changed



44
45
46
47
48
# File 'lib/ruby_git/status/submodule_status.rb', line 44

def initialize(commit_changed:, tracked_changes:, untracked_changes:)
  @commit_changed = commit_changed
  @tracked_changes = tracked_changes
  @untracked_changes = untracked_changes
end

Instance Attribute Details

#commit_changed?Boolean (readonly)

The submodule commit changed

Examples:

submodule_status.commit_changed? #=> true

Returns:

  • (Boolean)


60
# File 'lib/ruby_git/status/submodule_status.rb', line 60

def commit_changed? = @commit_changed

#tracked_changes?Boolean (readonly)

The one or more tracked files in the submodule changed

Examples:

submodule_status.tracked_changes? #=> true

Returns:

  • (Boolean)


71
# File 'lib/ruby_git/status/submodule_status.rb', line 71

def tracked_changes? = @tracked_changes

#untracked_changes?Boolean (readonly)

The one or more untracked files in the submodule changed

Examples:

submodule_status.untracked_changes? #=> true

Returns:

  • (Boolean)


82
# File 'lib/ruby_git/status/submodule_status.rb', line 82

def untracked_changes? = @untracked_changes

Class Method Details

.parse(submodule_status) ⇒ SubmoduleStatus?

Parse the submodule status string

Examples:

Parse submodule status

SubmoduleStatus.parse('SC..')
  #=> #<SubmoduleStatus @commit_changed=true, @tracked_changes=false, @untracked_changes=false>

If not a submodule

SubmoduleStatus.parse('N..') #=> nil

Parameters:

  • submodule_status (String)

    the submodule status string

Returns:

  • (SubmoduleStatus, nil)

    the parsed submodule status or nil if the status is not a submodule



25
26
27
28
29
30
31
32
33
# File 'lib/ruby_git/status/submodule_status.rb', line 25

def self.parse(submodule_status)
  return nil unless submodule_status[0] == 'S'

  new(
    commit_changed: (submodule_status[1] == 'C'),
    tracked_changes: (submodule_status[2] == 'M'),
    untracked_changes: (submodule_status[3] == 'U')
  )
end