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

pulibrary / tigerdata-app / 5205f704-d89d-4c43-8cfa-9e6783edc33a

29 Feb 2024 07:04PM UTC coverage: 60.206% (-29.9%) from 90.092%
5205f704-d89d-4c43-8cfa-9e6783edc33a

push

circleci

jrgriffiniii
Ensuring that the storage usage and storage capacity is retrieved for
Mediaflux Projects and rendered on the "contents" Project View

11 of 34 new or added lines in 4 files covered. (32.35%)

451 existing lines in 34 files now uncovered.

935 of 1553 relevant lines covered (60.21%)

9.47 hits per line

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

85.71
/app/models/mediaflux/asset.rb
1
# frozen_string_literal: true
2
module Mediaflux
1✔
3
  class Asset
1✔
4
    attr_accessor :id, :path, :collection, :size
1✔
5

6
    def initialize(id:, name:, collection:, path: nil, last_modified_mf: nil, size: nil)
1✔
7
      @id = id
7✔
8
      @name = name
7✔
9
      @path = path
7✔
10
      @collection = collection
7✔
11
      @size = size
7✔
12
      @last_modified_mf = last_modified_mf
7✔
13
    end
14

15
    def name
1✔
16
      # Mediaflux supports the concept of files without a name and in those cases the
17
      # "name" property might be empty, but the actual name assigned internally by
18
      # Mediaflux (e.g. __asset_id__4665) is still reflected in the path.
UNCOV
19
      if @name == ""
×
20
        Pathname.new(path).basename.to_s
×
21
      else
UNCOV
22
        @name
×
23
      end
24
    end
25

26
    # Returns the path to the asset but without the root namespace as part of it.
27
    #
28
    # Example:
29
    #   path        -> "/tigerdata/projectg/folder1/file-abc.txt"
30
    #   path_short  -> "/projectg/folder1/file-abc.txt"
31
    def path_short
1✔
32
      return nil if path.nil?
4✔
33
      if path.starts_with?(Rails.configuration.mediaflux["api_root_ns"])
4✔
34
        path[Rails.configuration.mediaflux["api_root_ns"].length..-1]
4✔
35
      else
UNCOV
36
        path
×
37
      end
38
    end
39

40
    # Returns the last modified date but using the standard ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601)
41
    def last_modified
1✔
42
      return nil if @last_modified_mf.nil?
1✔
43
      # https://nandovieira.com/working-with-dates-on-ruby-on-rails
44
      # Mediaflux dates are in UTC and look like this "07-Feb-2024 21:48:01"
45
      Time.zone.parse(@last_modified_mf).in_time_zone("America/New_York").iso8601
1✔
46
    end
47

48
    # Returns the path for the asset
49
    # For a collection returns the path_short, but for a file is the dirname of the path_short
50
    #
51
    # Example for a file:
52
    #   path        -> "/tigerdata/projectg/folder1/file-abc.txt"
53
    #   path_short  -> "/projectg/folder1/file-abc.txt"
54
    #   path_only  -> "/projectg/folder1"
55
    # Example for a collection:
56
    #   path        -> "/tigerdata/projectg/folder1"
57
    #   path_short  -> "/projectg/folder1"
58
    #   path_only  -> "/projectg/folder1"
59
    def path_only
1✔
60
      return nil if path.nil?
2✔
61
      if collection
2✔
62
        path_short
1✔
63
      else
64
        p = Pathname.new(path_short)
1✔
65
        p.dirname.to_s
1✔
66
      end
67
    end
68
  end
69
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