• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / pdc_describe / 7ae96b6b-0a64-4479-9fa1-8ba6526e2c87

20 Mar 2024 12:42PM UTC coverage: 30.068% (-66.2%) from 96.266%
7ae96b6b-0a64-4479-9fa1-8ba6526e2c87

Pull #1701

circleci

leefaisonr
makes it so that links open in new window
Pull Request #1701: Update language on submission form

1019 of 3389 relevant lines covered (30.07%)

0.4 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

31.43
/app/models/readme.rb
1
# frozen_string_literal: true
2
class Readme
1✔
3
  attr_reader :work, :current_user
1✔
4

5
  def initialize(work, current_user)
1✔
6
    @work = work
×
7
    @current_user = current_user
×
8
  end
9

10
  def attach(readme_file_param)
1✔
11
    return "A README file is required!" if readme_file_param.blank? && blank?
×
12
    return nil if readme_file_param.blank?
×
13
    return nil if ActiveStorage::Blob.service.name == :local
×
14
    remove_old_readme
×
15

16
    extension = File.extname(readme_file_param.original_filename)
×
17
    readme_name = "README#{extension}"
×
18
    size = readme_file_param.size
×
19
    key = work.s3_query_service.upload_file(io: readme_file_param.to_io, filename: readme_name, size:)
×
20
    if key
×
21
      log_change(key)
×
22
      nil
23
    else
24
      "An error uploading your README was encountered.  Please try again."
×
25
    end
26
  end
27

28
  def blank?
1✔
29
    s3_readme_idx.nil?
×
30
  end
31

32
  def file_name
1✔
33
    return nil if blank?
×
34
    file_names[s3_readme_idx]
×
35
  end
36

37
    private
1✔
38

39
      def s3_readme_idx
1✔
40
        @s3_readme_idx ||= file_names.find_index { |file_name| file_name.start_with?("README") }
×
41
      end
42

43
      def file_names
1✔
44
        @file_names ||= work.pre_curation_uploads_fast.map(&:filename_display)
×
45
      end
46

47
      def remove_old_readme
1✔
48
        return if blank?
×
49

50
        work.s3_query_service.delete_s3_object(work.pre_curation_uploads_fast[s3_readme_idx].key)
×
51
      end
52

53
      def log_change(key)
1✔
54
        last_response = work.s3_query_service.last_response
×
55
        UploadSnapshot.create(work:, files: [{ "filename" => key, "checksum" => last_response.etag.delete('"') }])
×
56
        work.track_change(:added, key)
×
57
        work.log_file_changes(current_user.id)
×
58
      end
59
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc