hardware_information 1.0.83 → 1.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,606 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This page should be kept in german.
6
+ # =========================================================================== #
7
+ # Note that the main hardware-related dataset is stored in this file:
8
+ #
9
+ # bl /home/x/data/personal/yaml/my_hardware/my_hardware.yml
10
+ #
11
+ # =========================================================================== #
12
+ # http://localhost/programming/ruby/src/hardware_information/lib/hardware_information/www/purchased_hardware/purchased_hardware.cgi
13
+ # =========================================================================== #
14
+ # rffhware
15
+ # =========================================================================== #
16
+ require 'hardware_information/misc/purchased_hardware/purchased_hardware.rb'
17
+
18
+ german(HardwareInformation::PurchasedHardware.title?) {
19
+ created_on '17.11.2023' # Friday. Rewritten on that day.
20
+ autoextend
21
+ favicon 'PC/HARDWARE/HWARE_FAVICON.png'
22
+ default_template '
23
+
24
+ pre {
25
+ font-size: 1.4em;
26
+ color:green;
27
+ }
28
+ body {
29
+ padding-left: 8px;
30
+ padding-right: 8px;
31
+ font-weight: normal;
32
+ color: white;
33
+ }
34
+ div {
35
+ font-weight: normal;
36
+ }
37
+ h1,h2,h3,h4,h5,h6 {
38
+ margin-top: 2px;
39
+ padding: 2px;
40
+ }
41
+
42
+ a,
43
+ a:active,
44
+ a:link { color: steelblue; text-decoration: none; }
45
+ a:visited { color: steelblue; }
46
+ a:hover { color: mediumspringgreen; text-decoration: none; }
47
+ i { font-size: bigger; font-weight:500}
48
+ img { margin-right: 2px;}
49
+
50
+ /*
51
+ * The following min-width is important to prevent our <td>
52
+ * tags from breaking into a newline too early.
53
+ */
54
+ td {
55
+ min-width: 320px;
56
+ }
57
+
58
+ /*
59
+ * The next two CSS rules should style the clipboard-button.
60
+ * However had this does not properly work right now.
61
+ */
62
+ .clipboard_button_for_purchased_hardware {
63
+ border: 50px solid tomato;
64
+ }
65
+
66
+ .clipboard_button_for_purchased_hardware:hover {
67
+ filter: brightness(150%);
68
+ }
69
+
70
+ '
71
+ body_css_class(HardwareInformation::PurchasedHardware.body_css_class)
72
+ body_css_style(HardwareInformation::PurchasedHardware.body_css_style)
73
+ font_size '1.3em'
74
+ default_hyperlinks
75
+
76
+ # =========================================================================== #
77
+ # === EURO_IMAGE
78
+ # =========================================================================== #
79
+ EURO_IMAGE = sg(:euro, 'mar2px mars8px').dup
80
+ # =========================================================================== #
81
+ # === MARGIN_RIGHT
82
+ # =========================================================================== #
83
+ MARGIN_RIGHT = 'marr10px'
84
+ S_CHAOS = sg :square_chaos, MARGIN_RIGHT
85
+ S_DARKGOLDENROD = sg :square_darkgoldenrod, MARGIN_RIGHT
86
+ GREEN_SQUARE = sg(:green_square, "bblack1 #{MARGIN_RIGHT}")
87
+
88
+ # =========================================================================== #
89
+ # === show_the_external_links (links tag, link tag)
90
+ #
91
+ # This method will display all external links.
92
+ # =========================================================================== #
93
+ def show_the_external_links
94
+ # ========================================================================= #
95
+ # Add the CSS rules for the following side-by-sid divs next:
96
+ # ========================================================================= #
97
+ add_this_css_style '
98
+
99
+ .float_container {
100
+ padding: 12px;
101
+ margin-left: 1em;
102
+ margin-right: 1em;
103
+ }
104
+
105
+ .float_child {
106
+ width: 43%;
107
+ float: left;
108
+ padding: 20px;
109
+ margin: 5px;
110
+ min-height: 320px;
111
+ border: 1px dotted gold;
112
+ margin-left: 0.5em;
113
+ margin-right: 0.5em;
114
+ }
115
+ '
116
+ # ========================================================================= #
117
+ # === Add the big-star image next
118
+ # ========================================================================= #
119
+ h2 sg(:big_star,'marr5px','drag_the_big_star')+
120
+ 'Links',
121
+ 'marl0_5em mar2px marb4px mart8px pad4px darkkhaki marb1em',
122
+ 'links_header'
123
+ # ========================================================================= #
124
+ # === LINKS ZU HARDWARE
125
+ # ========================================================================= #
126
+ div("#{HardwareInformation::PurchasedHardware::MAIN_DIV} float_container",
127
+ '',
128
+ 'margin-left: 2.25em;
129
+ margin-right: 0.85em;
130
+ border: 2px dotted lightblue;
131
+ border-radius: 20px;
132
+ padding: 1em;
133
+ min-height: 850px'){
134
+ div('float_child marl1em') {
135
+ div('mar0px pad0px') {
136
+ # =================================================================== #
137
+ # Iterate over the external links next:
138
+ # =================================================================== #
139
+ ARRAY_EXTERNAL_LINKS.each_slice(2).each {|a, b|
140
+ external_link(a, b)
141
+ }
142
+ }
143
+ }
144
+ div('float_child') {
145
+ div('mar0px pad0px') {
146
+ # =================================================================== #
147
+ # Iterate over the internal links next:
148
+ # =================================================================== #
149
+ ARRAY_INTERNAL_LINKS.each_slice(2).each {|a, b|
150
+ external_link(a, b)
151
+ }
152
+ }
153
+ }
154
+ }
155
+ end
156
+
157
+ # =========================================================================== #
158
+ # === show_local_sitemap
159
+ # =========================================================================== #
160
+ def show_local_sitemap
161
+ h2 'Sitemap',
162
+ 'gold martb1px'
163
+ p('marr1em FS1em mart1em'){
164
+ sitemap_link '#Laptop1_Fujitsu_Siemens_Computers',
165
+ 'Laptop FSC Amilo Pro V2030'
166
+ sitemap_link '#USB_Netgear_108_WG111T',
167
+ 'USB Netgear 108 WG111T Sticks '
168
+ sitemap_link '#Maxtor_OneTouch_III_750',
169
+ 'Maxtor External USB HDD 750 GIG'
170
+ sitemap_link '#Imation_clip_Flash_Drive',
171
+ 'Imitation 4 GIG USB Stick'
172
+ sitemap_link '#Buffalo_Wireless_G_125',
173
+ 'Buffalo Wireless Router'
174
+ sitemap_link '#computer3',
175
+ 'Rechner Computer3' # Mit K8M890
176
+ sitemap_link '#Rechner_Miraculix_mit_xxxxx',
177
+ 'Rechner Miraculix'
178
+ sitemap_link '#Benq_G2000WA_LCD_Monitor',
179
+ 'Benq LCD Monitor'
180
+ sitemap_link '#Pinnacle_PCTV_Hybrid_Pro',
181
+ 'Pinnacle PCTV Hybrid Pro Stick 330E'
182
+ sitemap_link '#LCD_TV_19LG3000',
183
+ 'LCD TV 19LG3000'
184
+ sitemap_link '#FREECOM_EXTERNAL_HARD_DRIVE_3TB',
185
+ 'FREECOM_EXTERNAL_HARD_DRIVE_3TB'
186
+ }
187
+ end
188
+
189
+ # =========================================================================== #
190
+ # === sitemap_link
191
+ # =========================================================================== #
192
+ def sitemap_link(intralink, desc)
193
+ unless intralink.start_with? '#'
194
+ intralink[0, 0] = '#'
195
+ end
196
+ abr(
197
+ intralink,
198
+ {
199
+ content: S_DARKGOLDENROD+desc,
200
+ css_class: 'slateblue'
201
+ }
202
+ )
203
+ end
204
+
205
+ # =========================================================================== #
206
+ # === external_link
207
+ #
208
+ # This method is used in particular by the trailing part of the webpage,
209
+ # to display the remote links.
210
+ # =========================================================================== #
211
+ def external_link(
212
+ remote,
213
+ name,
214
+ optional_use_this_id = nil
215
+ )
216
+ br
217
+ if optional_use_this_id.nil?
218
+ optional_use_this_id = name.to_s.dup.downcase.tr(' ','_')
219
+ end
220
+ abr(
221
+ remote,
222
+ content: S_CHAOS+name, # This is actually the green dot.
223
+ css_class: 's1em',
224
+ id: optional_use_this_id
225
+ )
226
+ end
227
+
228
+ # =========================================================================== #
229
+ # === discarded_on_this_day
230
+ # =========================================================================== #
231
+ def discarded_on_this_day(i = nil)
232
+ if i
233
+ br
234
+ s2 sg(:rip,'marr8px').dup+
235
+ '<span class="cyan">Entsorgt am: </span>',
236
+ 'padl4_5em'
237
+ s2 i.to_s, 'BO green'
238
+ end
239
+ end
240
+
241
+ # =========================================================================== #
242
+ # === display_the_total_costs (cost tag)
243
+ #
244
+ # This method will show the sum of the total purchase cost; the module
245
+ # PurchasedHardware will keep track of this, so here we only display
246
+ # that value.
247
+ # =========================================================================== #
248
+ def display_the_total_costs(
249
+ i = HardwareInformation::PurchasedHardware.total_cost?
250
+ )
251
+ i = i.to_f
252
+ # ========================================================================= #
253
+ # === REGISTRIERTE GESAMTKOSTEN
254
+ # ========================================================================= #
255
+ div('mart1em s1em') {
256
+ e sg(:dot102, 'marr8px')+
257
+ '<b class="marl0_3em bigger"> Registrierte Gesamtkosten:</b> '
258
+ br
259
+ s2 i.round(3).to_s,
260
+ 'yel marl2em BOLD bigger'
261
+ s2 ' ('+(i * 13.7603).round(2).to_s+' Schilling)','teal'
262
+ s2 EURO_IMAGE+
263
+ ' <b>Euro</b> <span class="smaller">(seit 27.05.2004)</span>'
264
+ brbr
265
+ }
266
+ end
267
+
268
+ # =========================================================================== #
269
+ # === ARRAY_EXTERNAL_LINKS
270
+ # =========================================================================== #
271
+ ARRAY_EXTERNAL_LINKS =
272
+ [
273
+
274
+ 'https://www.newegg.com/Motherboards/Category/ID-20',
275
+ 'Motherboards',
276
+
277
+ 'https://geizhals.at/?m=1',
278
+ 'Geizhals',
279
+
280
+ 'https://www.tomshardware.com/',
281
+ 'Toms Hardware Tips',
282
+
283
+ 'https://www.pcmasters.de/',
284
+ 'Hardware News',
285
+
286
+ 'https://de.wikipedia.org/wiki/Liste_der_BIOS-Signalt%C3%B6ne',
287
+ 'Biep Fehlercodes (Wikipedia)',
288
+
289
+ 'https://www.website-go.com/artikel/beepcodes.php',
290
+ 'Gute Biep Fehlercodes mit Hilfestellung',
291
+
292
+ 'https://www.interspar.at/shop/haushalt/technik-elektronik/c/I6/',
293
+ 'Hardware bei InterSpar'
294
+
295
+ ]
296
+
297
+ # =========================================================================== #
298
+ # === ARRAY_INTERNAL_LINKS
299
+ # =========================================================================== #
300
+ ARRAY_INTERNAL_LINKS =
301
+ [
302
+ :local_hardware_assembly,
303
+ 'Lokaler Link zu Hardware Assembly',
304
+
305
+ :local_wlan,
306
+ 'Lokaler Link zu WLAN',
307
+
308
+ :local_ram,
309
+ 'Lokaler Link zu RAM',
310
+
311
+ :local_scanner,
312
+ 'Lokaler Link zu SCANNERS',
313
+
314
+ :local_sitemap,
315
+ 'Lokaler Link zur SITEMAP',
316
+
317
+ :local_kabel,
318
+ 'Lokaler Link zu KABEL und ADAPTOREN',
319
+
320
+ :local_computersystem,
321
+ 'Lokaler Link zu Computersystemen',
322
+
323
+ :local_waschmaschinen,
324
+ 'Lokaler Link zu Waschmaschinen',
325
+
326
+ ]
327
+ smaller_width(HardwareInformation::PurchasedHardware::MAIN_DIV,'',
328
+ 'min-height: 35em') {
329
+ dimg 'PC/HARDWARE/HARDWARE.png',
330
+ 'FLR BG_White rounded_border2',
331
+ '',
332
+ 'margin-right: 1%; top: 0.2em; opacity: 0.90;'
333
+ # ========================================================================= #
334
+ # Show a little heart-image next.
335
+ # ========================================================================= #
336
+ h1 sg(:herz, 'marr10px', 'drag_heart')+
337
+ dot(106, 'marr8px')+
338
+ title?,
339
+ 'mart1px marb0_5em BOLD s0_2em BLOCK mart1px marb2px',
340
+ '',
341
+ 'padding-top: 0.05em'
342
+ _ = HardwareInformation.file_my_hardware
343
+ if File.exist? _
344
+ p_default_le {
345
+ e '<b class="lightblue">Herangezogene Datei:</b> '\
346
+ '<span class="palegreen">'+
347
+ stringbold(_)+"</span>\n"+
348
+ return_copy_to_clipboard_button(
349
+ 'bluefish '+HardwareInformation::PurchasedHardware.file_computer_hardware?, # use_this_value
350
+ 'clipboard_button_for_purchased_hardware', # use_this_id
351
+ true, # true for "yes, hide the input field
352
+ '😼', # This is the text that will be shown on the button.
353
+ 'round_black2 pad8px marl1em' # CSS rules for the button.
354
+ )
355
+ br
356
+ }
357
+ # ======================================================================= #
358
+ # === Start of MyHardware
359
+ # ======================================================================= #
360
+ ehtml_comment('Start of MyHardware')
361
+ # ======================================================================= #
362
+ # Iterate over our main hash next.
363
+ # ======================================================================= #
364
+ main_hash = HardwareInformation.my_hardware?
365
+ main_hash.each_pair {|name_of_the_hardware_in_question, inner_hash|
366
+ _ = inner_hash
367
+ # ===================================================================== #
368
+ # Get the id to store onto the coming <div> tag.
369
+ # ===================================================================== #
370
+ the_id_to_store = Cyberweb.remove_html(
371
+ name_of_the_hardware_in_question.tr(' ', '_')
372
+ ).to_s.strip.tr('-','_')
373
+ # ===================================================================== #
374
+ # If we find a newline then we ignore all up to that newline.
375
+ # ===================================================================== #
376
+ if the_id_to_store.include? "\n"
377
+ the_id_to_store = the_id_to_store[0, the_id_to_store.index("\n")]
378
+ end
379
+ the_id_to_store.delete! '"' if the_id_to_store.include? '"' # Eliminate '"' characters.
380
+ if the_id_to_store.count('_') > 3 # Only keep the first 3 '_'
381
+ the_id_to_store = the_id_to_store.split('_')[0..3].join('_')
382
+ end
383
+ the_id_to_store.chop! if the_id_to_store.end_with? '_'
384
+ the_id_to_store.delete!('()') if the_id_to_store.include?('(')
385
+ # ===================================================================== #
386
+ # Display a green square. Since as of September 2022 this is now a
387
+ # clickable link. When clicking on that icon it will "redirect" to
388
+ # the main ID of the segment at hand.
389
+ # ===================================================================== #
390
+ s2 '<a href="#'+the_id_to_store.to_s+'">'+
391
+ GREEN_SQUARE+
392
+ '</a>'+
393
+ name_of_the_hardware_in_question
394
+ # ======================================================================= #
395
+ # === Individual <div> tag
396
+ #
397
+ # The respective individual <div> for the Hardware in question comes
398
+ # next, along with the correct ID.
399
+ # ======================================================================= #
400
+ div('mart1em mars1em pad4px pad1em', id: the_id_to_store) {
401
+ bought_in_this_year = 1970 # Generic default.
402
+ # ===================================================================== #
403
+ # Next a Hash will be used and we have to obtain the correct entry
404
+ # from said Hash.
405
+ # ===================================================================== #
406
+ # ===================================================================== #
407
+ # === description
408
+ #
409
+ # Show the description first.
410
+ # ===================================================================== #
411
+ if _.has_key? 'description'
412
+ e _['description']
413
+ end
414
+ # ===================================================================== #
415
+ # === image
416
+ # ===================================================================== #
417
+ if _.has_key? 'image'
418
+ this_image = _['image']
419
+ e sg(
420
+ this_image[0].to_s,
421
+ this_image[1].to_s,
422
+ this_image[2].to_s,
423
+ this_image[3].to_s
424
+ )
425
+ # ===================================================================== #
426
+ # === draggable_image
427
+ # ===================================================================== #
428
+ elsif _.has_key? 'draggable_image'
429
+ array = [_['draggable_image']].flatten
430
+ array.each_slice(2) { |a, b|
431
+ dimg(a.to_s, b.to_s)
432
+ }
433
+ br
434
+ # ===================================================================== #
435
+ # === draggable_images
436
+ # ===================================================================== #
437
+ elsif _.has_key? 'draggable_images'
438
+ these_images = _['draggable_images']
439
+ these_images.each {|this_image|
440
+ dimg(this_image[0].to_s, this_image[1].to_s)
441
+ br
442
+ }
443
+ end
444
+ # ===================================================================== #
445
+ # === bought_at
446
+ #
447
+ # When did we buy a specific hardware - the date of purchase. Will
448
+ # be displayed right here.
449
+ # ===================================================================== #
450
+ if _.has_key?('bought_at') and !_['bought_at'].empty?
451
+ bought_at_that_date_specifically = _['bought_at'].to_s.dup
452
+ einkaufswagen = sg(:einkaufswagen, 'marl1em wid25px').dup
453
+ scanned_result = bought_at_that_date_specifically.scan(
454
+ /\d{2}\.\d{2}\.\d{4}/
455
+ )
456
+ if scanned_result and !scanned_result.empty?
457
+ bought_in_this_year = scanned_result.flatten.first.split('.').last.to_i
458
+ end
459
+ # ================================================================= #
460
+ # Next show when this hardware was purchased.
461
+ # ================================================================= #
462
+ s2 'Gekauft am:',
463
+ 'padl1_5em marl0_5em'
464
+ s2 bought_at_that_date_specifically+
465
+ einkaufswagen,
466
+ "BOLD #{HardwareInformation::PurchasedHardware::COLOUR_PURCHASED_AT_THIS_DATE}"
467
+ # ================================================================= #
468
+ # And register it onto the main module that handles this.
469
+ # ================================================================= #
470
+ HardwareInformation::PurchasedHardware.add_bought_at(
471
+ bought_at_that_date_specifically
472
+ )
473
+ end
474
+ # =================================================================== #
475
+ # === cost
476
+ #
477
+ # This should come before the check for the key 'died_at'.
478
+ # =================================================================== #
479
+ if _.has_key? 'cost'
480
+ cost = _['cost'].to_s.to_f
481
+ case cost
482
+ when 0
483
+ e '<b class="BO yel larger">Kosten unbekannt</b>'
484
+ else
485
+ # =============================================================== #
486
+ # Add to the total cost next:
487
+ # =============================================================== #
488
+ HardwareInformation::PurchasedHardware.add_to_the_total_cost(
489
+ cost,
490
+ bought_in_this_year
491
+ )
492
+ e 'um <b class="BO larger yellow">'+
493
+ _['cost'].to_s+'</b>'+
494
+ EURO_IMAGE.to_s
495
+ "\n"' Euro</b> erworben'
496
+ end
497
+ end
498
+ # ===================================================================== #
499
+ # === died_at
500
+ #
501
+ # When was it discarded.
502
+ # ===================================================================== #
503
+ if _.has_key? 'died_at'
504
+ discarded_on_this_day(_['died_at'])
505
+ end
506
+ # ===================================================================== #
507
+ # === link
508
+ # ===================================================================== #
509
+ if _.has_key? 'link'
510
+ br
511
+ a(
512
+ _['link'][0].to_s,
513
+ content: '→ '+_['link'][0].to_s,
514
+ css_class: _['link'][1].to_s
515
+ )
516
+ # ===================================================================== #
517
+ # === links
518
+ # ===================================================================== #
519
+ elsif _.has_key? 'links'
520
+ _['links'].each {|entry, inner_array|
521
+ br
522
+ a(
523
+ inner_array[0].to_s,
524
+ content: '→ '+inner_array[0].to_s,
525
+ css_class: inner_array[1].to_s
526
+ )
527
+ }
528
+ end
529
+ # ===================================================================== #
530
+ # === images
531
+ #
532
+ # For reference, an entry matching the following clause may look
533
+ # like this:
534
+ #
535
+ # - PC/HARDWARE/TV/XORO_TV_HTC1546_OUTLETS.jpg
536
+ # - mar0_3em
537
+ # - drag_xoro_tv_rückseite
538
+ #
539
+ # ===================================================================== #
540
+ if _.has_key? 'images'
541
+ _['images'].each {|entry_array, inner_array|
542
+ img(
543
+ inner_array[0].to_s,
544
+ content: inner_array[0].to_s,
545
+ css_class: inner_array[1].to_s,
546
+ the_id: inner_array[2].to_s,
547
+ css_style: inner_array[3].to_s
548
+ )
549
+ }
550
+ end
551
+ } # this ends the <div> tag.
552
+ spacer(:middle) # Added this spacer as of August 2014.
553
+ hr
554
+ }
555
+ else
556
+ e 'No file exists at '+_+'.'
557
+ end
558
+ # ========================================================================= #
559
+ # === Display the final total costs next, close to the end of the web-app
560
+ # ========================================================================= #
561
+ display_the_total_costs
562
+ h3 'Spendings on hardware per year:'
563
+ hash = HardwareInformation::PurchasedHardware.hash_yearly_purchases_made?
564
+ result = ''.dup
565
+ hash.each_pair {|year, cost|
566
+ cost = cost.round(2)
567
+ result << string_s2(year.to_s, 'lightblue')+': '+
568
+ string_s2(cost.to_s.ljust(20,' ')+' Euro', 'gold terminal_font')+'<br>'
569
+ }
570
+ p_default(css_class: 'marl3em') {
571
+ e result
572
+ }
573
+ show_the_external_links # Always show the external links.
574
+ # ========================================================================= #
575
+ # === Sitemap
576
+ #
577
+ # Sitemap Tag. Hier nur Sachen sammeln die halbwegs wichtig sind!
578
+ # Sonst läppert sich das wie verrückt zusammen.
579
+ # ========================================================================= #
580
+ div('wid20 posab pad0_5em BG_BLACK White','',
581
+ 'right: 15%;
582
+ top: 1.25em;
583
+ border-radius: 18px;
584
+ border: 1px dotted slateblue;'){
585
+ show_local_sitemap
586
+ }
587
+ # ========================================================================= #
588
+ # Eventuell mini-pc kaufen:
589
+ #
590
+ # https://liliputing.com/2020/07/asus-pn50-is-a-mini-pc-with-up-to-an-amd-ryzen-7-4800u-processor.html
591
+ # https://geizhals.at/asus-mini-pc-pn50-v26823.html
592
+ # https://geizhals.at/asus-mini-pc-pn50-bbr343md-90mr00e1-m00150-a2314947.html
593
+ # ^^^ 331 Euro am 12.12.2020
594
+ # ^^^ 328 Euro am 22.01.2021
595
+ # ^^^ 316 Euro am 31.03.2021
596
+ # ^^^ etwa 270 Euro November 2023
597
+ # ========================================================================= #
598
+ # Oder:
599
+ #
600
+ # https://geizhals.at/shuttle-xpc-slim-pos-ds100-pec-ds10u001-a2221818.html?hloc=at
601
+ #
602
+ # 4 GIG RAM, 299 Euro.
603
+ # ========================================================================= #
604
+ # bl computer_hardware_yaml
605
+ # ========================================================================= #
606
+ }}
@@ -2,7 +2,7 @@
2
2
  # Encoding: UTF-8
3
3
  # frozen_string_literal: true
4
4
  # =========================================================================== #
5
- # http://localhost/programming/ruby/src/hardware_information/lib/hardware_information/www/my_hardware_for_sinatra.rb
5
+ # http://localhost/programming/ruby/src/hardware_information/lib/hardware_information/www/purchased_hardware/purchased_hardware_for_sinatra.rb
6
6
  # =========================================================================== #
7
7
  require 'cyberweb/and_sinatra_base.rb'
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hardware_information
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.83
4
+ version: 1.0.84
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert A. Heiler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-06 00:00:00.000000000 Z
11
+ date: 2023-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colours
@@ -58,9 +58,10 @@ files:
58
58
  - lib/hardware_information/project/project.rb
59
59
  - lib/hardware_information/version/version.rb
60
60
  - lib/hardware_information/www/embeddable_interface.rb
61
- - lib/hardware_information/www/my_hardware.cgi
62
- - lib/hardware_information/www/my_hardware.rb
63
- - lib/hardware_information/www/my_hardware_for_sinatra.rb
61
+ - lib/hardware_information/www/purchased_hardware/README.md
62
+ - lib/hardware_information/www/purchased_hardware/purchased_hardware.cgi
63
+ - lib/hardware_information/www/purchased_hardware/purchased_hardware.rb
64
+ - lib/hardware_information/www/purchased_hardware/purchased_hardware_for_sinatra.rb
64
65
  - lib/hardware_information/yaml/colours_for_the_hardware_information_project.yml
65
66
  - lib/hardware_information/yaml/usb_errors/usb_errors.yml
66
67
  homepage: https://rubygems.org/gems/environment_information
@@ -80,9 +81,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
81
  requirements:
81
82
  - - ">="
82
83
  - !ruby/object:Gem::Version
83
- version: 3.4.13
84
+ version: 3.4.22
84
85
  requirements: []
85
- rubygems_version: 3.4.13
86
+ rubygems_version: 3.4.22
86
87
  signing_key:
87
88
  specification_version: 4
88
89
  summary: This small class will output Information about your hardware, i.e. the Processor