Module: AttrBitwise

Extended by:
ActiveSupport::Concern
Defined in:
lib/attr_bitwise.rb,
lib/attr_bitwise/version.rb

Overview

Helper to define a bits based value on a Rails model attribute

this helper expose a set of methods to make bitwise operations

Usage :

attr_bitwise :<name>, [column_name: <column_name>,] mapping: <values_sym>

Example class MyModel < ActiveRecord::Base

include AttrBitwise

attr_bitwise :payment_types, mapping: [:slots, :credits]

end

Will define the following high-level methods :

- Class#payment_types => [<Symbol>, ...]
- Class#payment_type?(value_or_sym) => Boolean
- Class#add_payment_type(value_or_sym) => Fixnum
- Class#remove_payment_type(value_or_sym) => Fixnum

Will define the following low-level methods :

- Class.to_bitwise_values(object, name) => [<Fixnum>, ...]
- Class#payment_types_union([Fixnum, ..]) => [Fixnum, ..]
- Class.bitwise_union([Fixnum, ..], name) => [Fixnum, ..]
- Class#payment_types_intersection([Fixnum, ..]) => [Fixnum, ..]
- Class.bitwise_intersection([Fixnum, ..], name) => [Fixnum, ..]
- Class#payment_types_mapping => Hash

More details in methods definition

Defined Under Namespace

Modules: ClassMethods Classes: ComparableSymbolsArray

Constant Summary collapse

VERSION =
"0.0.3"