Class: FlagShihTzu::BooleanEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/flag_shih_tzu.rb

Class Method Summary collapse

Class Method Details

.bit_widthObject



78
79
80
# File 'lib/flag_shih_tzu.rb', line 78

def bit_width
  1
end

.changed?(from_bits, to_bits, flag_mask) ⇒ Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/flag_shih_tzu.rb', line 98

def changed?(from_bits, to_bits, flag_mask)
  (from_bits & flag_mask) != (to_bits & flag_mask)
end

.disabled_sql_value(_flag_mask) ⇒ Object



106
107
108
# File 'lib/flag_shih_tzu.rb', line 106

def disabled_sql_value(_flag_mask)
  0
end

.disabled_value(bits, flag_mask) ⇒ Object



94
95
96
# File 'lib/flag_shih_tzu.rb', line 94

def disabled_value(bits, flag_mask)
  !read(bits, flag_mask)
end

.enabled_sql_value(flag_mask) ⇒ Object



102
103
104
# File 'lib/flag_shih_tzu.rb', line 102

def enabled_sql_value(flag_mask)
  flag_mask
end

.mask(flag_key) ⇒ Object



82
83
84
# File 'lib/flag_shih_tzu.rb', line 82

def mask(flag_key)
  1 << (flag_key - 1)
end

.matches?(bits, flag_mask, enabled) ⇒ Boolean

Returns:

  • (Boolean)


122
123
124
# File 'lib/flag_shih_tzu.rb', line 122

def matches?(bits, flag_mask, enabled)
  (bits & flag_mask) == sql_value_for(flag_mask, enabled)
end

.read(bits, flag_mask) ⇒ Object



86
87
88
# File 'lib/flag_shih_tzu.rb', line 86

def read(bits, flag_mask)
  (bits & flag_mask) != 0
end

.sql_operand_for(flag_mask, _enabled) ⇒ Object



118
119
120
# File 'lib/flag_shih_tzu.rb', line 118

def sql_operand_for(flag_mask, _enabled)
  flag_mask
end

.sql_operator_for(enabled) ⇒ Object



114
115
116
# File 'lib/flag_shih_tzu.rb', line 114

def sql_operator_for(enabled)
  enabled ? "| " : "& ~"
end

.sql_value_for(flag_mask, enabled) ⇒ Object



110
111
112
# File 'lib/flag_shih_tzu.rb', line 110

def sql_value_for(flag_mask, enabled)
  enabled ? enabled_sql_value(flag_mask) : disabled_sql_value(flag_mask)
end

.write(bits, flag_mask, value) ⇒ Object



90
91
92
# File 'lib/flag_shih_tzu.rb', line 90

def write(bits, flag_mask, value)
  true_value?(value) ? bits | flag_mask : bits & ~flag_mask
end