Class: Stellar::Thresholds
- Inherits:
-
Object
- Object
- Stellar::Thresholds
- Defined in:
- lib/stellar/thresholds.rb
Constant Summary collapse
- COMPONENTS =
[:master_weight, :low, :medium, :high]
- VALID_RANGE =
0..255
Class Method Summary collapse
Class Method Details
.make(thresholds = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/stellar/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) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/stellar/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 |