Move lib/danbooru, lib/danbooru_image_resizer to app/logical.

This commit is contained in:
evazion
2017-12-18 11:31:48 -06:00
parent 53c351ab71
commit efeaad25ca
12 changed files with 6 additions and 14 deletions

View File

@@ -0,0 +1,39 @@
module Danbooru
module HasBitFlags
extend ActiveSupport::Concern
module ClassMethods
# NOTE: the ordering of attributes has to be fixed#
# new attributes should be appended to the end.
def has_bit_flags(attributes, options = {})
field = options[:field] || :bit_flags
attributes.each.with_index do |attribute, i|
bit_flag = 1 << i
define_singleton_method("flag_value_for") do |key|
index = attributes.index(key)
raise IndexError if index.nil?
1 << index
end
define_method(attribute) do
send(field) & bit_flag > 0
end
define_method("#{attribute}?") do
send(field) & bit_flag > 0
end
define_method("#{attribute}=") do |val|
if val.to_s =~ /t|1|y/
send("#{field}=", send(field) | bit_flag)
else
send("#{field}=", send(field) & ~bit_flag)
end
end
end
end
end
end
end