class BarkestLcd::HashEnum
A simple enumeration class based on a hash of integers.
enum = HashEnum.new({ :alpha => 0x01, :bravo => 0x02, :charlie => 0x04 }) enum.alpha # 1 enum.bravo # 2 enum.CHARLIE # 4 enum.alpha?(11) # true enum.BRAVO?(11) # true enum.charlie?(11) # false
Public Class Methods
new(hash = {})
click to toggle source
Turns a hash into an enumeration.
# File lib/models/hash_enum.rb, line 17 def initialize(hash = {}) @hash = hash.inject({}){ |memo,(k,v)| memo[k.to_sym] = v.to_i; memo }.freeze # values ordered highest to lowest. @flags = @hash.to_a.sort{|a,b| b[1] <=> a[1]} freeze end