Sha256: 6ebe3f3dfa453e8e305e2f7d46a22bdd40174ea30efbf00c2cfb307cb933e903

Contents?: true

Size: 685 Bytes

Versions: 13

Compression:

Stored size: 685 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module EhbrsRubyUtils
  class CircularListSpreader
    module BaseLevel
      extend ::Comparable

      def <=>(other)
        s = remaining_f <=> other.remaining_f
        return s unless s.zero?

        s = total_i <=> other.total_i
        return s unless s.zero?

        label <=> other.label
      end

      def remaining?
        remaining_i.positive?
      end

      def remaining_f
        remaining_i.to_f / total_i
      end

      def remaining_fs
        "#{(remaining_f * 1000).round / 10.0}%"
      end

      def debugs
        [label, remaining_fs, total_i].join(' / ')
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ehbrs_ruby_utils-0.44.3 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.44.2 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.44.1 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.44.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.41.1 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.41.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.40.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.39.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.38.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.37.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.36.1 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.36.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb
ehbrs_ruby_utils-0.35.0 lib/ehbrs_ruby_utils/circular_list_spreader/base_level.rb