3 ms·
in rails I add: [:foo_boolean1, :foo_boolean2].each_with_index do |flavor, i| power = 1 i.times do power *= 2 end define_method "has_
by andrewfromx 11y ago
in rails I add:
[:foo_boolean1, :foo_boolean2].each_with_index do |flavor, i|
power = 1
i.times do
power *= 2
end
define_method "has_#{flavor}" do
(foo_options & power) > 0
end
define_method "has_#{flavor}=" do |value|
value = value == '1' if value.class == String
current_value = self.send("has_#{flavor}")
if (current_value && !value) || (!current_value && value)
self.foo_options = foo_options ^ power
end
end
end
which lets me access each col like normal. blah.has_foo_boolean1 or blah.has_foo_boolean1=true etc.
- 33degrees 11y agoYou might want to take a look at https://github.com/pboling/flag_shih_tzu https://github.com/pboling/flag_shih_tzu, which does all of that and a lot more, like adding database scopes.
- andrewfromx 11y agoaw, but it was so much fun writing that logic myself and really learning how bit ops work in ruby.
- andrewfromx 11y agoreminds me of this http://jeremykun.com/2013/02/08/why-there-is-no-hitchhikers-guide-to-mathematics-for-programmers/ http://jeremykun.com/2013/02/08/why-there-is-no-hitchhikers-... article about doing Math cuz u love it.