module Digitalbits::Thresholds
Constants
- COMPONENTS
- VALID_RANGE
Public Class Methods
make(thresholds = {})
click to toggle source
# File lib/digitalbits/thresholds.rb, line 6 def make(thresholds = {}) # error if any of the needed components are not provided if COMPONENTS.any? { |c| thresholds[c].blank? } raise ArgumentError, "invalid thresholds hash, must have #{COMPONENTS.inspect} keys, had: #{thresholds.keys.inspect}" end # error if any of the needed components are not numbers 0 <= N <= 255 COMPONENTS.each do |c| good = true good &&= thresholds[c].is_a?(Integer) good &&= VALID_RANGE.include? thresholds[c] unless good raise ArgumentError, "invalid #{c.inspect}, must be number in (0..255), got #{thresholds[c].inspect}" end end thresholds.values_at(*COMPONENTS).pack("C*") end
parse(combined)
click to toggle source
# File lib/digitalbits/thresholds.rb, line 27 def parse(combined) master_weight, low, medium, high = combined.unpack("C*") { master_weight: master_weight, low: low, medium: medium, high: high } end