debian-mirror-gitlab/app/services/packages/rubygems/create_gemspec_service.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

45 lines
949 B
Ruby
Raw Normal View History

2021-04-29 21:17:54 +05:30
# frozen_string_literal: true
module Packages
module Rubygems
class CreateGemspecService
def initialize(package, gemspec)
@package = package
@gemspec = gemspec
end
def execute
write_gemspec_to_file
end
private
attr_reader :package, :gemspec
def write_gemspec_to_file
file = Tempfile.new
begin
content = gemspec.to_ruby
file.write(content)
file.flush
2022-07-23 23:45:48 +05:30
md5 = Gitlab::FIPS.enabled? ? nil : Digest::MD5.hexdigest(content)
2021-04-29 21:17:54 +05:30
package.package_files.create!(
file: file,
size: file.size,
file_name: "#{gemspec.name}.gemspec",
file_sha1: Digest::SHA1.hexdigest(content),
2022-07-23 23:45:48 +05:30
file_md5: md5,
2021-04-29 21:17:54 +05:30
file_sha256: Digest::SHA256.hexdigest(content)
)
ensure
file.close
file.unlink
end
end
end
end
end