Module: RainCity::Has::BitFlags::BitFlagMethods
- Defined in:
- lib/has_flags.rb
Overview
static Singletons
Instance Method Summary collapse
-
#find_by_flags(*args) ⇒ Object
return the list of objects using the defined symbols as bit arguments.
-
#flags ⇒ Object
return the flags as a hash of labels and values, i.e., the symbols (as strings) and bit mask values.
-
#mask(*args) ⇒ Object
return the integer mask given the list of defined symbols.
Instance Method Details
#find_by_flags(*args) ⇒ Object
return the list of objects using the defined symbols as bit arguments
197 198 199 200 201 202 203 204 205 206 |
# File 'lib/has_flags.rb', line 197 def find_by_flags(*args) flags = self.flags msk = args.inject(0) do |n, name| n += flags[name.to_s] end s = sprintf "(%s & %i)=%i", self.bitflag_column, msk, msk self.find :all, :conditions => [ s ] end |
#flags ⇒ Object
return the flags as a hash of labels and values, i.e., the symbols (as strings) and bit mask values
179 180 181 |
# File 'lib/has_flags.rb', line 179 def flags self.bitflags end |
#mask(*args) ⇒ Object
return the integer mask given the list of defined symbols.
186 187 188 189 190 191 192 |
# File 'lib/has_flags.rb', line 186 def mask(*args) flags = self.flags args.inject(0) do |n, name| n += flags[name.to_s] end end |