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 |