Class: FlagShihTzu::BooleanEncoder
- Inherits:
-
Object
- Object
- FlagShihTzu::BooleanEncoder
- Defined in:
- lib/flag_shih_tzu.rb
Class Method Summary collapse
- .bit_width ⇒ Object
- .changed?(from_bits, to_bits, flag_mask) ⇒ Boolean
- .disabled_sql_value(_flag_mask) ⇒ Object
- .disabled_value(bits, flag_mask) ⇒ Object
- .enabled_sql_value(flag_mask) ⇒ Object
- .mask(flag_key) ⇒ Object
- .matches?(bits, flag_mask, enabled) ⇒ Boolean
- .read(bits, flag_mask) ⇒ Object
- .sql_operand_for(flag_mask, _enabled) ⇒ Object
- .sql_operator_for(enabled) ⇒ Object
- .sql_value_for(flag_mask, enabled) ⇒ Object
- .write(bits, flag_mask, value) ⇒ Object
Class Method Details
.bit_width ⇒ Object
78 79 80 |
# File 'lib/flag_shih_tzu.rb', line 78 def bit_width 1 end |
.changed?(from_bits, to_bits, flag_mask) ⇒ 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
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 |