Class: Git::StashInfo

Inherits:
Data
  • Object
show all
Defined in:
lib/git/stash_info.rb

Overview

Immutable value object representing stash entry information

StashInfo encapsulates the parsed data from git stash list output. Each entry contains comprehensive information about the stash including its index, reference name, commit SHA, branch, message, author/committer details, and timestamps.

Examples:

Create a StashInfo from parsed stash list output

info = Git::StashInfo.new(
  index: 0,
  name: 'stash@{0}',
  oid: 'abc123def456789...',
  short_oid: 'abc123d',
  branch: 'main',
  message: 'WIP on main: abc123 Initial commit',
  author_name: 'Jane Doe',
  author_email: '[email protected]',
  author_date: '2026-01-24T10:30:00-08:00',
  committer_name: 'Jane Doe',
  committer_email: '[email protected]',
  committer_date: '2026-01-24T10:30:00-08:00'
)

info.index           # => 0
info.name            # => 'stash@{0}'
info.oid             # => 'abc123def456789...'
info.short_oid       # => 'abc123d'
info.branch          # => 'main'
info.message         # => 'WIP on main: abc123 Initial commit'
info.author_name     # => 'Jane Doe'
info.author_email    # => '[email protected]'
info.author_date     # => '2026-01-24T10:30:00-08:00'
info.committer_name  # => 'Jane Doe'
info.committer_email # => '[email protected]'
info.committer_date  # => '2026-01-24T10:30:00-08:00'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#author_dateString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#author_emailString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#author_nameString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#branchString? (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#committer_dateString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#committer_emailString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#committer_nameString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#indexInteger (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#messageString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#nameString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#oidString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

#short_oidString (readonly)



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/git/stash_info.rb', line 80

StashInfo = Data.define(
  :index,
  :name,
  :oid,
  :short_oid,
  :branch,
  :message,
  :author_name,
  :author_email,
  :author_date,
  :committer_name,
  :committer_email,
  :committer_date
) do
  # Returns the stash reference name
  #
  # @example Convert to string
  #   info.to_s # => 'stash@{0}'
  #
  # @return [String] the stash name (e.g., 'stash@\\{0}')
  def to_s
    name
  end
end

Instance Method Details

#to_sString

Returns the stash reference name

Examples:

Convert to string

info.to_s # => 'stash@{0}'


100
101
102
# File 'lib/git/stash_info.rb', line 100

def to_s
  name
end