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