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

pulibrary / orangelight / 00dbc10b-d747-4ad7-b211-7b26d753abbb

14 Aug 2025 01:25PM UTC coverage: 0.483% (-94.9%) from 95.343%
00dbc10b-d747-4ad7-b211-7b26d753abbb

push

circleci

web-flow
Merge pull request #5181 from pulibrary/dependabot/bundler/activestorage-7.2.2.2

Bump activestorage from 7.2.2.1 to 7.2.2.2

47 of 9721 relevant lines covered (0.48%)

0.01 hits per line

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

0.0
/app/models/requests/item.rb
1
# frozen_string_literal: true
2
module Requests
×
3
  class Item < SimpleDelegator
×
4
    def pick_up_location_code
×
5
      self['pickup_location_code'] || ""
×
6
    end
×
7

8
    def item_type
×
9
      self['item_type'] || ""
×
10
    end
×
11

12
    def description
×
13
      self[:description] || enum_value
×
14
    end
×
15

16
    def enum_value
×
17
      (short_description_from_alma_availability_call || long_description).to_s.strip
×
18
    end
×
19

20
    def cron_value
×
21
      self['chron_display'] || ""
×
22
    end
×
23

24
    def copy_number
×
25
      self[:copy_number] || ""
×
26
    end
×
27

28
    def copy_value
×
29
      @copy_value ||= if self[:copy_number].present? && self[:copy_number].to_i != 0 && self[:copy_number].to_i != 1
×
30
                        "Copy #{self[:copy_number]}"
×
31
                      else
×
32
                        ""
×
33
                      end
×
34
      @copy_value
×
35
    end
×
36

37
    def item_data?
×
38
      self[:id].present?
×
39
    end
×
40

41
    def temp_loc?
×
42
      self[:in_temp_library]
×
43
    end
×
44

45
    def in_resource_sharing?
×
46
      self[:temp_location_code] == "RES_SHARE$IN_RS_REQ"
×
47
    end
×
48

49
    def temp_loc_other_than_resource_sharing?
×
50
      temp_loc? && !in_resource_sharing?
×
51
    end
×
52

53
    def on_reserve?
×
54
      self[:on_reserve] == 'Y'
×
55
    end
×
56

57
    def preservation_conservation?
×
58
      status_label == "Preservation and Conservation"
×
59
    end
×
60

61
    def enumerated?
×
62
      enum_value.present?
×
63
    end
×
64

65
    def item_type_non_circulate?
×
66
      ['NoCirc', 'Closed', 'Res-No'].include? item_type
×
67
    end
×
68

69
    def id
×
70
      self['id']
×
71
    end
×
72

73
    def use_statement
×
74
      self[:use_statement]
×
75
    end
×
76

77
    def collection_code
×
78
      self[:collection_code]
×
79
    end
×
80

81
    def charged?
×
82
      unavailable_statuses.include?(status_label)
×
83
    end
×
84

85
    def status
×
86
      # SCSB still returns a status of "Not Available", which we should change to "Unavailable"
87
      return self[:status] if self[:status].present? && self[:status] != "Not Available"
×
88
      if available?
×
89
        "Available"
×
90
      else
×
91
        "Unavailable"
×
92
      end
×
93
    end
×
94

95
    def status_label
×
96
      self[:status_label]
×
97
    end
×
98

99
    def not_a_work_order?
×
100
      self[:status_source] != "work_order"
×
101
    end
×
102

103
    def available?
×
104
      available_statuses.include?(status_label)
×
105
    end
×
106

107
    def barcode?
×
108
      /^[0-9]+/.match(barcode).present?
×
109
    end
×
110

111
    def barcode
×
112
      self[:barcode]
×
113
    end
×
114

115
    def partner_holding?
×
116
      Requests.config[:recap_partner_locations].key?(self["location_code"])
×
117
    end
×
118

119
    # The location code (e.g. firestone$pf)
120
    def location
×
121
      self[:location]
×
122
    end
×
123

124
    private
×
125

126
      def short_description_from_alma_availability_call
×
127
        self[:enum_display]
×
128
      end
×
129

130
      def long_description
×
131
        self[:description]
×
132
      end
×
133

134
      def available_statuses
×
135
        scsb = ["Available"]
×
136
        alma = ['Item in place']
×
137
        scsb + alma
×
138
      end
×
139

140
      def unavailable_statuses
×
141
        scsb = ['Not Available', "Item Barcode doesn't exist in SCSB database."]
×
142
        alma = ['Unavailable', 'Claimed Returned', 'Lost', 'Hold Shelf', 'Transit', 'Missing', 'Resource Sharing Request',
×
143
                'Lost Resource Sharing Item', 'Requested', 'In Transit to Remote Storage', 'Lost and paid',
×
144
                'Loan', 'At Preservation', 'Technical - Migration', 'Preservation and Conservation',
×
145
                'Collection Development Office', 'Holdings Management']
×
146
        scsb + alma
×
147
      end
×
148
  end
×
149
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