Sha256: bfef271a8dc10e87f9caf932c8971b70b2edeb2367f09654cfedaf971790c625

Contents?: true

Size: 1.27 KB

Versions: 36

Compression:

Stored size: 1.27 KB

Contents

module OodCore
  module Job
    # An object that describes the resources used on a specific node
    class NodeInfo
      # The name of the host machine
      # @return [String] node name
      attr_reader :name

      # The number of procs reserved on the given machine
      # @return [Integer, nil] number of procs
      attr_reader :procs

      # @param name [#to_s] node name
      # @param procs [#to_i, nil] number of procs
      def initialize(name:, procs: nil, **_)
        @name  = name.to_s
        @procs = procs && procs.to_i
      end

      # Convert object to hash
      # @return [Hash] object as hash
      def to_h
        { name: name, procs: procs }
      end

      # The comparison operator
      # @param other [#to_h] object to compare against
      # @return [Boolean] whether objects are equivalent
      def ==(other)
        to_h == other.to_h
      end

      # Whether objects are identical to each other
      # @param other [#to_h] object to compare against
      # @return [Boolean] whether objects are identical
      def eql?(other)
        self.class == other.class && self == other
      end

      # Generate a hash value for this object
      # @return [Integer] hash value of object
      def hash
        [self.class, to_h].hash
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
ood_core-0.21.0 lib/ood_core/job/node_info.rb
ood_core-0.20.2 lib/ood_core/job/node_info.rb
ood_core-0.20.1 lib/ood_core/job/node_info.rb
ood_core-0.20.0 lib/ood_core/job/node_info.rb
ood_core-0.19.0 lib/ood_core/job/node_info.rb
ood_core-0.18.1 lib/ood_core/job/node_info.rb
ood_core-0.18.0 lib/ood_core/job/node_info.rb
ood_core-0.17.6 lib/ood_core/job/node_info.rb
ood_core-0.17.5 lib/ood_core/job/node_info.rb
ood_core-0.17.4 lib/ood_core/job/node_info.rb
ood_core-0.17.2 lib/ood_core/job/node_info.rb
ood_core-0.17.1 lib/ood_core/job/node_info.rb
ood_core-0.17.0 lib/ood_core/job/node_info.rb
ood_core-0.16.1 lib/ood_core/job/node_info.rb
ood_core-0.16.0 lib/ood_core/job/node_info.rb
ood_core-0.15.1 lib/ood_core/job/node_info.rb
ood_core-0.15.0 lib/ood_core/job/node_info.rb
ood_core-0.14.0 lib/ood_core/job/node_info.rb
ood_core-0.13.0 lib/ood_core/job/node_info.rb
ood_core-0.12.0 lib/ood_core/job/node_info.rb