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

pulibrary / orangelight / 12648f6c-1f90-4853-8fe4-f587c7e9b5d0

pending completion
12648f6c-1f90-4853-8fe4-f587c7e9b5d0

push

circleci

GitHub
Remove borrowdirect from requests and orangelight (#3431)

12 of 12 new or added lines in 5 files covered. (100.0%)

7 existing lines in 3 files now uncovered.

5265 of 5554 relevant lines covered (94.8%)

1516.17 hits per line

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

92.91
/app/models/requests/requestable/item.rb
1
# frozen_string_literal: true
2
class Requests::Requestable
2✔
3
  class Item < SimpleDelegator
2✔
4
    def pick_up_location_id
2✔
5
      self['pickup_location_id'] || ""
2✔
6
    end
7

8
    # pick_up_location_code on the item level
9
    def pick_up_location_code
2✔
10
      self['pickup_location_code'] || ""
19✔
11
    end
12

13
    def item_type
2✔
14
      self['item_type'] || ""
3,824✔
15
    end
16

17
    def description
2✔
18
      self[:description] || enum_value
159✔
19
    end
20

21
    def enum_value
2✔
22
      # enum_display from alma, enumeration from scsb
23
      [self['enum_display'], self['enumeration']].join(" ").strip
492✔
24
    end
25

26
    def cron_value
2✔
27
      self['chron_display'] || ""
108✔
28
    end
29

30
    def copy_number
2✔
31
      self[:copy_number] || ""
164✔
32
    end
33

34
    def copy_value
2✔
35
      @copy_value ||= if self[:copy_number].present? && self[:copy_number].to_i != 0 && self[:copy_number].to_i != 1
159✔
36
                        "Copy #{self[:copy_number]}"
2✔
37
                      else
38
                        ""
157✔
39
                      end
40
      @copy_value
159✔
41
    end
42

43
    def item_data?
2✔
44
      self[:id].present?
3,133✔
45
    end
46

47
    def temp_loc?
2✔
48
      self[:in_temp_library]
1,095✔
49
    end
50

51
    def in_resource_sharing?
2✔
52
      self[:temp_location_code] == "RES_SHARE$IN_RS_REQ"
90✔
53
    end
54

55
    def on_reserve?
2✔
56
      self[:on_reserve] == 'Y'
177✔
57
    end
58

59
    def inaccessible?
2✔
60
      status == 'Inaccessible'
×
61
    end
62

63
    def hold_request?
2✔
64
      status_label == 'Hold Shelf'
1✔
65
    end
66

67
    def enumerated?
2✔
68
      enum_value.present?
82✔
69
    end
70

71
    # item type on the item level
72
    def item_type_non_circulate?
2✔
73
      ['NoCirc', 'Closed', 'Res-No'].include? item_type
3,824✔
74
    end
75

76
    def id
2✔
77
      self['id']
4,294✔
78
    end
79

80
    def use_statement
2✔
81
      self[:use_statement]
4,717✔
82
    end
83

84
    def collection_code
2✔
85
      self[:collection_code]
117✔
86
    end
87

88
    def missing?
2✔
UNCOV
89
      status_label == 'Missing'
×
90
    end
91

92
    def charged?
2✔
93
      unavailable_statuses.include?(status_label)
4,590✔
94
    end
95

96
    def status
2✔
97
      return self[:status] if self[:status].present?
467✔
98
      if available?
64✔
99
        "Available"
58✔
100
      else
101
        "Not Available"
6✔
102
      end
103
    end
104

105
    def status_label
2✔
106
      self[:status_label]
5,379✔
107
    end
108

109
    def available?
2✔
110
      available_statuses.include?(status_label)
213✔
111
    end
112

113
    def barcode?
2✔
114
      /^[0-9]+/.match(barcode).present?
25✔
115
    end
116

117
    def barcode
2✔
118
      self[:barcode]
51✔
119
    end
120

121
    # Is the ReCAP Item from a partner location
122
    def partner_holding?
2✔
123
      Requests::Config[:recap_partner_locations].keys.include? self["location_code"]
12,374✔
124
    end
125

126
    class NullItem
2✔
127
      def nil?
2✔
128
        true
1✔
129
      end
130

131
      def present?
2✔
132
        false
178✔
133
      end
134

135
      def blank?
2✔
136
        true
2✔
137
      end
138

139
      def item_data?
2✔
140
        false
280✔
141
      end
142

143
      def pick_up_location_id
2✔
144
        ""
1✔
145
      end
146

147
      def pick_up_location_code
2✔
148
        ""
1✔
149
      end
150

151
      def item_type
2✔
152
        ""
1✔
153
      end
154

155
      def enum_value
2✔
156
        ""
17✔
157
      end
158

159
      def cron_value
2✔
160
        ""
17✔
161
      end
162

163
      def copy_value
2✔
164
        ""
×
165
      end
166

167
      def temp_loc?
2✔
168
        ""
18✔
169
      end
170

171
      def in_resource_sharing?
2✔
172
        false
×
173
      end
174

175
      def on_reserve?
2✔
176
        false
22✔
177
      end
178

179
      def inaccessible?
2✔
180
        false
×
181
      end
182

183
      def hold_request?
2✔
184
        false
×
185
      end
186

187
      def enumerated?
2✔
UNCOV
188
        false
×
189
      end
190

191
      def item_type_non_circulate?
2✔
192
        false
83✔
193
      end
194

195
      def id
2✔
196
        nil
197
      end
198

199
      def use_statement
2✔
200
        ''
76✔
201
      end
202

203
      def collection_code
2✔
204
        ''
×
205
      end
206

207
      def missing?
2✔
208
        false
×
209
      end
210

211
      def charged?
2✔
212
        false
119✔
213
      end
214

215
      def status_label
2✔
216
        'Not Available'
8✔
217
      end
218

219
      def status
2✔
220
        ''
6✔
221
      end
222

223
      def available?
2✔
224
        false
28✔
225
      end
226

227
      def barcode?
2✔
228
        false
43✔
229
      end
230

231
      def barcode
2✔
232
        ''
4✔
233
      end
234

235
      def partner_holding?
2✔
236
        false
150✔
237
      end
238
    end
239

240
    private
2✔
241

242
      def available_statuses
2✔
243
        scsb = ["Available"]
213✔
244
        alma = ['Item in place']
213✔
245
        scsb + alma
213✔
246
      end
247

248
      def unavailable_statuses
2✔
249
        scsb = ['Not Available', "Item Barcode doesn't exist in SCSB database."]
4,590✔
250
        alma = ['Claimed Returned', 'Lost', 'Hold Shelf', 'Transit', 'Missing', 'Resource Sharing Request',
4,590✔
251
                'Lost Resource Sharing Item', 'Requested', 'In Transit to Remote Storage', 'Lost and paid',
252
                'Loan', 'Controlled Digital Lending', 'At Preservation', 'Technical - Migration', 'Preservation and Conservation']
253
        scsb + alma
4,590✔
254
      end
255
  end
256
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