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"