Class: MilkTea::PackageSourceResolver::GitIdentity

Inherits:
SourceIdentity show all
Defined in:
lib/milk_tea/packages/source_resolver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from SourceIdentity

#cacheable?

Constructor Details

#initialize(url:, revision:, subdir: nil) ⇒ GitIdentity

Returns a new instance of GitIdentity.



88
89
90
91
92
# File 'lib/milk_tea/packages/source_resolver.rb', line 88

def initialize(url:, revision:, subdir: nil)
  @url = normalize_required(url, "git source url")
  @revision = normalize_required(revision, "git source revision")
  @subdir = normalize_optional(subdir)
end

Instance Attribute Details

#revisionObject (readonly)

Returns the value of attribute revision.



86
87
88
# File 'lib/milk_tea/packages/source_resolver.rb', line 86

def revision
  @revision
end

#subdirObject (readonly)

Returns the value of attribute subdir.



86
87
88
# File 'lib/milk_tea/packages/source_resolver.rb', line 86

def subdir
  @subdir
end

#urlObject (readonly)

Returns the value of attribute url.



86
87
88
# File 'lib/milk_tea/packages/source_resolver.rb', line 86

def url
  @url
end

Instance Method Details

#cache_keyObject



107
108
109
110
# File 'lib/milk_tea/packages/source_resolver.rb', line 107

def cache_key
  digest = Digest::SHA256.hexdigest([@url, @revision, @subdir].join("\0"))
  "git/#{digest}"
end

#kindObject



94
95
96
# File 'lib/milk_tea/packages/source_resolver.rb', line 94

def kind
  :git
end

#lock_attributesObject



98
99
100
101
102
103
104
105
# File 'lib/milk_tea/packages/source_resolver.rb', line 98

def lock_attributes
  attributes = {
    "git_url" => @url,
    "git_rev" => @revision,
  }
  attributes["git_subdir"] = @subdir if @subdir
  attributes
end