sys-memory 0.1.0 → 0.1.1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGES.md +7 -0
- data/README.md +6 -4
- data/lib/sys/linux/memory.rb +6 -3
- data/lib/sys/version.rb +1 -1
- data/lib/sys/windows/memory.rb +12 -7
- data/spec/sys_memory_spec.rb +3 -1
- data/sys-memory.gemspec +2 -4
- data.tar.gz.sig +0 -0
- metadata +8 -7
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6014e85718322e00ceadeef11991f2c92f131f0636d492d3cdb592a9beb284e
|
4
|
+
data.tar.gz: ab327c8145c1875e85152addbd497c01ca7a85838465410cb4cb2cdbd77043cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbc032f49449629c05cb0f8e8370b70f429c96a4e7dcbc082bfc18f16279fbedc8ef14766e98d3005ef49fc5694e6a0897b9741eac95e5dc5baeb934b1f1df41
|
7
|
+
data.tar.gz: f462319e9dec783d20c2f084b4c41e936c12f71948352582fe73e7de3fa26f69a639e18b850eab3dfdc0e35a30f1ba7d4a01b11bb0965b0c22118bf972df8899
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGES.md
ADDED
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[](https://github.com/djberg96/sys-memory/actions/workflows/ruby.yml)
|
2
|
+
|
1
3
|
## Description
|
2
4
|
A Ruby interface for getting memory information.
|
3
5
|
|
@@ -9,8 +11,11 @@ A Ruby interface for getting memory information.
|
|
9
11
|
## Installation
|
10
12
|
`gem install sys-memory`
|
11
13
|
|
14
|
+
## Adding the trusted cert
|
15
|
+
`gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/sys-memory/main/certs/djberg96_pub.pem)`
|
16
|
+
|
12
17
|
## Synopsis
|
13
|
-
```
|
18
|
+
```ruby
|
14
19
|
require 'sys-memory'
|
15
20
|
|
16
21
|
p Sys::Memory.memory # Hash of all information
|
@@ -21,9 +26,6 @@ p Sys::Memory.total(extended: true) # Total memory, include swap
|
|
21
26
|
|
22
27
|
There's also the `free`, `used` and `load` module methods.
|
23
28
|
|
24
|
-
## Adding the trusted cert
|
25
|
-
`gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/sys-memory/ffi/certs/djberg96_pub.pem)`
|
26
|
-
|
27
29
|
## Notes
|
28
30
|
I realize there are some philosophical differences about what constitutes
|
29
31
|
"available memory". I've tried to accomodate both of the approaches to it
|
data/lib/sys/linux/memory.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# The Sys module serves as a namespace only.
|
3
4
|
module Sys
|
5
|
+
# The Memory module provides various functions that return information
|
6
|
+
# regarding the memory on your system.
|
4
7
|
module Memory
|
5
8
|
MEMORY_FILE = '/proc/meminfo'
|
6
9
|
MEMINFO_REGEX = /(.*)?:\s+?(\d+)/.freeze
|
@@ -15,7 +18,7 @@ module Sys
|
|
15
18
|
def memory
|
16
19
|
hash = {}
|
17
20
|
|
18
|
-
|
21
|
+
File.foreach(MEMORY_FILE) do |line|
|
19
22
|
key, value = MEMINFO_REGEX.match(line.chomp).captures
|
20
23
|
hash[key] = value.to_i
|
21
24
|
end
|
@@ -59,5 +62,5 @@ module Sys
|
|
59
62
|
end
|
60
63
|
|
61
64
|
module_function :memory, :total, :free, :used, :load
|
62
|
-
end
|
63
|
-
end
|
65
|
+
end # Memory
|
66
|
+
end # Sys
|
data/lib/sys/version.rb
CHANGED
data/lib/sys/windows/memory.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# The Sys module serves as a namespace only.
|
3
4
|
module Sys
|
5
|
+
# The Memory module provides various functions that return information
|
6
|
+
# regarding the memory on your system.
|
4
7
|
module Memory
|
5
8
|
require 'ffi'
|
6
9
|
extend FFI::Library
|
7
10
|
ffi_lib 'kernel32'
|
8
11
|
|
9
|
-
private
|
10
|
-
|
11
12
|
typedef :uint32, :dword
|
12
13
|
typedef :uint64, :dwordlong
|
13
14
|
|
@@ -25,7 +26,10 @@ module Sys
|
|
25
26
|
)
|
26
27
|
end
|
27
28
|
|
29
|
+
private_constant :MemoryStatusEx
|
30
|
+
|
28
31
|
attach_function :GlobalMemoryStatusEx, [MemoryStatusEx], :bool
|
32
|
+
private_class_method :GlobalMemoryStatusEx
|
29
33
|
|
30
34
|
ffi_lib 'psapi'
|
31
35
|
|
@@ -48,9 +52,10 @@ module Sys
|
|
48
52
|
)
|
49
53
|
end
|
50
54
|
|
51
|
-
|
55
|
+
private_constant :PerformanceInformation
|
52
56
|
|
53
|
-
|
57
|
+
attach_function :GetPerformanceInfo, [PerformanceInformation, :dword], :bool
|
58
|
+
private_class_method :GetPerformanceInfo
|
54
59
|
|
55
60
|
# Obtain detailed memory information about your host in the form of a hash.
|
56
61
|
# Note that the exact nature of this hash is largely dependent on your
|
@@ -121,10 +126,10 @@ module Sys
|
|
121
126
|
# A number between 0 and 100 that specifies the approximate percentage of
|
122
127
|
# physical memory that is in use.
|
123
128
|
#
|
124
|
-
#
|
125
|
-
#
|
129
|
+
# On MS Windows the +extended+ option is ignored, but present for interface
|
130
|
+
# compatibility with other platforms.
|
126
131
|
#
|
127
|
-
def load(
|
132
|
+
def load(_extended: false)
|
128
133
|
memory['MemoryLoad']
|
129
134
|
end
|
130
135
|
|
data/spec/sys_memory_spec.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support/core_ext/numeric/bytes'
|
2
4
|
require 'sys-memory'
|
3
5
|
|
4
6
|
RSpec.describe Sys::Memory do
|
5
7
|
context 'Sys::Memory::VERSION' do
|
6
8
|
example 'the version constant is set to the expected value' do
|
7
|
-
expect(described_class::VERSION).to eq('0.1.
|
9
|
+
expect(described_class::VERSION).to eq('0.1.1')
|
8
10
|
expect(described_class::VERSION).to be_frozen
|
9
11
|
end
|
10
12
|
end
|
data/sys-memory.gemspec
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'sys-memory'
|
5
|
-
spec.version = '0.1.
|
5
|
+
spec.version = '0.1.1'
|
6
6
|
spec.author = 'Daniel J. Berger'
|
7
7
|
spec.email = 'djberg96@gmail.com'
|
8
8
|
spec.license = 'Apache-2.0'
|
@@ -12,10 +12,8 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
|
13
13
|
spec.cert_chain = ['certs/djberg96_pub.pem']
|
14
14
|
|
15
|
-
spec.extra_rdoc_files = Dir['*.rdoc']
|
16
|
-
|
17
15
|
spec.add_dependency('ffi', "~> 1.1")
|
18
|
-
spec.
|
16
|
+
spec.add_development_dependency('activesupport', "~> 6.0")
|
19
17
|
spec.add_development_dependency('rspec', "~> 3.9")
|
20
18
|
spec.add_development_dependency('rake', "~> 13.0")
|
21
19
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sys-memory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
36
|
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2021-
|
38
|
+
date: 2021-12-03 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: ffi
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '6.0'
|
61
|
-
type: :
|
61
|
+
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
@@ -102,6 +102,7 @@ executables: []
|
|
102
102
|
extensions: []
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
|
+
- CHANGES.md
|
105
106
|
- Gemfile
|
106
107
|
- LICENSE
|
107
108
|
- README.md
|
@@ -125,7 +126,7 @@ metadata:
|
|
125
126
|
documentation_uri: https://github.com/djberg96/sys-memory/wiki
|
126
127
|
source_code_uri: https://github.com/djberg96/sys-memory
|
127
128
|
wiki_uri: https://github.com/djberg96/sys-memory/wiki
|
128
|
-
post_install_message:
|
129
|
+
post_install_message:
|
129
130
|
rdoc_options: []
|
130
131
|
require_paths:
|
131
132
|
- lib
|
@@ -140,8 +141,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
141
|
- !ruby/object:Gem::Version
|
141
142
|
version: '0'
|
142
143
|
requirements: []
|
143
|
-
rubygems_version: 3.2.
|
144
|
-
signing_key:
|
144
|
+
rubygems_version: 3.2.32
|
145
|
+
signing_key:
|
145
146
|
specification_version: 4
|
146
147
|
summary: A Ruby interface for providing memory information
|
147
148
|
test_files:
|
metadata.gz.sig
CHANGED
Binary file
|