module Bitfields
Constants
- TRUE_VALUES
- Version
Public Class Methods
extract_bits(options)
click to toggle source
# File lib/bitfields.rb, line 30 def self.extract_bits(options) bitfields = {} options.keys.select{|key| key.is_a?(Numeric) }.each do |bit| raise "#{bit} is not a power of 2 !!" unless bit & (bit - 1) == 0 bit_name = options.delete(bit).to_sym raise DuplicateBitNameError if bitfields.include?(bit_name) bitfields[bit_name] = bit end bitfields end
included(base)
click to toggle source
# File lib/bitfields.rb, line 9 def self.included(base) class << base attr_accessor :bitfields, :bitfield_options, :bitfield_args # all the args passed into .bitfield so children can initialize from parents def bitfield_args @bitfield_args ||= [] end def inherited(klass) super klass.bitfield_args = bitfield_args.dup klass.bitfield_args.each do |column, options| klass.send :store_bitfield_values, column, options.dup end end end base.extend Bitfields::ClassMethods end