Sha256: b8605f23650770ed1020e082350d20d6c2e7be156e186339dcf2ccf2a6542a53

Contents?: true

Size: 750 Bytes

Versions: 10

Compression:

Stored size: 750 Bytes

Contents

# frozen_string_literal: true

require "gitt"

module Milestoner
  module Models
    COMMIT_COMMON_ATTRIBUTES = %i[
      authored_at
      body
      deletions
      files_changed
      insertions
      notes
      sha
      signature
      subject
    ].freeze

    COMMIT_ENRICHED_ATTRIBUTES = %i[
      author
      collaborators
      format
      issue
      milestone
      review
      signers
      uri
    ].freeze

    # Represents an enriched commit.
    Commit = Struct.new(*COMMIT_COMMON_ATTRIBUTES, *COMMIT_ENRICHED_ATTRIBUTES) do
      include Gitt::Directable

      def self.for(commit, **) = new(**commit.to_h.slice(*COMMIT_COMMON_ATTRIBUTES), **)

      def initialize(**)
        super
        freeze
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
milestoner-17.11.0 lib/milestoner/models/commit.rb
milestoner-17.10.0 lib/milestoner/models/commit.rb
milestoner-17.9.0 lib/milestoner/models/commit.rb
milestoner-17.6.0 lib/milestoner/models/commit.rb
milestoner-17.5.0 lib/milestoner/models/commit.rb
milestoner-17.4.0 lib/milestoner/models/commit.rb
milestoner-17.3.0 lib/milestoner/models/commit.rb
milestoner-17.2.0 lib/milestoner/models/commit.rb
milestoner-17.1.0 lib/milestoner/models/commit.rb
milestoner-17.0.0 lib/milestoner/models/commit.rb