Module: ActiveRecord::BitField

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

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Instance Method Details

#bit_field_inquire_method(column, field) ⇒ Object



23
24
25
# File 'lib/active_record/bit_field.rb', line 23

def bit_field_inquire_method(column, field)
  (read_attribute(column) & self.class.bit_field_get_column_mapper(column)[field.to_s]) != 0
end

#bit_field_setter_method(column, field, bool) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/active_record/bit_field.rb', line 27

def bit_field_setter_method(column, field, bool)
  if bool
    bit_field_turn_bit_on_method(column, field)
  else
    bit_field_turn_bit_off_method(column, field)
  end
end

#bit_field_turn_bit_off_method(column, field) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/active_record/bit_field.rb', line 15

def bit_field_turn_bit_off_method(column, field)
  value = read_attribute(column)
  if (value & self.class.bit_field_get_column_mapper(column)[field.to_s]) != 0
    write_attribute(column, value ^ self.class.bit_field_get_column_mapper(column)[field.to_s])
  end
  nil
end

#bit_field_turn_bit_on_method(column, field) ⇒ Object



9
10
11
12
13
# File 'lib/active_record/bit_field.rb', line 9

def bit_field_turn_bit_on_method(column, field)
  value = read_attribute(column)
  write_attribute(column, value | self.class.bit_field_get_column_mapper(column)[field.to_s])
  nil
end