lmsensors 0.1.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +2 -0
- data/FMAPPER.md +20 -0
- data/LICENSE.txt +165 -0
- data/README.md +156 -0
- data/ext/lmsensors_base/extconf.rb +9 -0
- data/lib/lmsensors.rb +13 -0
- data/lib/lmsensors/feature.rb +11 -0
- data/lib/lmsensors/features/abs_feature.rb +85 -0
- data/lib/lmsensors/features/alarm.rb +38 -0
- data/lib/lmsensors/features/beep.rb +33 -0
- data/lib/lmsensors/features/current.rb +69 -0
- data/lib/lmsensors/features/fan.rb +52 -0
- data/lib/lmsensors/features/humidity.rb +35 -0
- data/lib/lmsensors/features/power.rb +80 -0
- data/lib/lmsensors/features/temp.rb +69 -0
- data/lib/lmsensors/features/voltage.rb +69 -0
- data/lib/lmsensors/lm_constants.rb +193 -0
- data/lib/lmsensors/lmsensors.rb +33 -0
- data/lib/lmsensors/sensors/abssensor.rb +151 -0
- data/lib/lmsensors/sensors/sensor.rb +148 -0
- data/lib/lmsensors/sensors/sensorspawner.rb +77 -0
- data/lib/lmsensors/version.rb +8 -0
- data/lib/lmsensors_base/lmsensors_base.so +0 -0
- metadata +96 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
# lib/lmsensors/sensors/sensorspawner.rb
|
2
|
+
|
3
|
+
# Require the abstract sensor
|
4
|
+
require_relative "./sensor"
|
5
|
+
|
6
|
+
# :nodoc: This module will house the concrete implementation
|
7
|
+
# :nodoc: of the actual Sensor object types.
|
8
|
+
module LmSensors
|
9
|
+
##
|
10
|
+
# SensorSpawner is a Sensor, unto itself,
|
11
|
+
# but it provides no way to format any output
|
12
|
+
# and is purely used to construct a list of
|
13
|
+
# single Sensors.
|
14
|
+
#
|
15
|
+
# This class inherits the SensorsBase class
|
16
|
+
# from the C side of the code.
|
17
|
+
#
|
18
|
+
# The single Sensors will actually provide
|
19
|
+
# the information usable by the client.
|
20
|
+
class SensorSpawner < LmSensors::AbsSensor
|
21
|
+
##
|
22
|
+
# Set the chip's name you want to
|
23
|
+
# get -- by default, 'nil', so it
|
24
|
+
# will return ALL the chips
|
25
|
+
def set_name(name) @chip_name = name end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Unset the current chip's name, so
|
29
|
+
# it returns ALL the chips, again
|
30
|
+
def unset_name() @chip_name = nil end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Enumerate the available chips for the specified
|
34
|
+
# name that was set (or all chips, if no name).
|
35
|
+
#
|
36
|
+
# This will return an array of either ALL
|
37
|
+
# the available chips or the selected
|
38
|
+
# chip set by 'set_name'.
|
39
|
+
def enum(name=@chip_name)
|
40
|
+
chips = pro_enum(nil, name)
|
41
|
+
if Hash === chips then
|
42
|
+
chips.collect do |index, chip|
|
43
|
+
item = LmSensors::Sensor.new
|
44
|
+
item.locate index
|
45
|
+
item.set_fmap(@fmap)
|
46
|
+
item
|
47
|
+
end
|
48
|
+
else
|
49
|
+
STDERR.puts chips
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
end # End sensor chip enumerator
|
53
|
+
|
54
|
+
##
|
55
|
+
# Select a specific chip by its path.
|
56
|
+
def locate(path, set=false)
|
57
|
+
dir = path_valid?(path)
|
58
|
+
# Return early, if the path is invalid
|
59
|
+
if !dir then return dir end
|
60
|
+
|
61
|
+
# Otherwise, continue
|
62
|
+
items = []
|
63
|
+
if dir then
|
64
|
+
data = enum
|
65
|
+
if Array === data then
|
66
|
+
# Only proceed if the data is good
|
67
|
+
items = data.select { |s| s.path == dir }
|
68
|
+
else return nil end
|
69
|
+
end.flatten
|
70
|
+
if items.length == 1 then
|
71
|
+
item = items[0]
|
72
|
+
if set then set_name(item.name) end
|
73
|
+
item
|
74
|
+
else nil end
|
75
|
+
end # End locate of specific chip
|
76
|
+
end # End SensorSpawner class
|
77
|
+
end # End LmSensors append
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lmsensors
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Edelweiss
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-06-01 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: "Wrapper for the ``lm-sensors`` library, which provides the programs,
|
14
|
+
\n``sensors`` and ``sensors-detect``, for Linux systems. This library \nand its
|
15
|
+
programs are used to allow the user to access temperature and\nfan data for various
|
16
|
+
hardware devices.\n\nThe wrapper is written in the C-Ruby API, so you can use it
|
17
|
+
in whatever \nRuby-based monitoring program makes the most sense and only using\nthe
|
18
|
+
parts relevant to your use case.\n"
|
19
|
+
email:
|
20
|
+
executables: []
|
21
|
+
extensions:
|
22
|
+
- ext/lmsensors_base/extconf.rb
|
23
|
+
extra_rdoc_files:
|
24
|
+
- README.md
|
25
|
+
- CHANGELOG.md
|
26
|
+
- LICENSE.txt
|
27
|
+
- FMAPPER.md
|
28
|
+
files:
|
29
|
+
- CHANGELOG.md
|
30
|
+
- FMAPPER.md
|
31
|
+
- LICENSE.txt
|
32
|
+
- README.md
|
33
|
+
- ext/lmsensors_base/extconf.rb
|
34
|
+
- lib/lmsensors.rb
|
35
|
+
- lib/lmsensors/feature.rb
|
36
|
+
- lib/lmsensors/features/abs_feature.rb
|
37
|
+
- lib/lmsensors/features/alarm.rb
|
38
|
+
- lib/lmsensors/features/beep.rb
|
39
|
+
- lib/lmsensors/features/current.rb
|
40
|
+
- lib/lmsensors/features/fan.rb
|
41
|
+
- lib/lmsensors/features/humidity.rb
|
42
|
+
- lib/lmsensors/features/power.rb
|
43
|
+
- lib/lmsensors/features/temp.rb
|
44
|
+
- lib/lmsensors/features/voltage.rb
|
45
|
+
- lib/lmsensors/lm_constants.rb
|
46
|
+
- lib/lmsensors/lmsensors.rb
|
47
|
+
- lib/lmsensors/sensors/abssensor.rb
|
48
|
+
- lib/lmsensors/sensors/sensor.rb
|
49
|
+
- lib/lmsensors/sensors/sensorspawner.rb
|
50
|
+
- lib/lmsensors/version.rb
|
51
|
+
- lib/lmsensors_base/lmsensors_base.so
|
52
|
+
homepage: https://github.com/KleineEdelweiss/lmsensors_rb
|
53
|
+
licenses:
|
54
|
+
- LGPL-3.0
|
55
|
+
metadata:
|
56
|
+
homepage_uri: https://github.com/KleineEdelweiss/lmsensors_rb
|
57
|
+
source_code_uri: https://github.com/KleineEdelweiss/lmsensors_rb
|
58
|
+
changelog_uri: https://github.com/KleineEdelweiss/lmsensors_rb/blob/master/CHANGELOG.md
|
59
|
+
bug_tracker_uri: https://github.com/KleineEdelweiss/lmsensors_rb/issues
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options:
|
62
|
+
- "--title"
|
63
|
+
- LmSensors -- Lmsensors wrapper in the C-Ruby API
|
64
|
+
- "--main"
|
65
|
+
- README.md
|
66
|
+
- "--exclude"
|
67
|
+
- Makefile
|
68
|
+
- "--exclude"
|
69
|
+
- Rakefile
|
70
|
+
- "--exclude"
|
71
|
+
- Gemfile
|
72
|
+
- "--exclude"
|
73
|
+
- lmsensors.gemspec
|
74
|
+
- "--exclude"
|
75
|
+
- rdoc.sh
|
76
|
+
- "--line-numbers"
|
77
|
+
- "--inline-source"
|
78
|
+
- "--quiet"
|
79
|
+
require_paths:
|
80
|
+
- lib
|
81
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 2.7.0
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
requirements: []
|
92
|
+
rubygems_version: 3.2.5
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: Lmsensors wrapper in the C-Ruby API
|
96
|
+
test_files: []
|