Module: RainCity::Has::BitFlags::BitFlagMethods

Defined in:
lib/has_flags.rb

Overview

static Singletons

Instance Method Summary collapse

Instance Method Details

#find_by_flags(*args) ⇒ Object

return the list of objects using the defined symbols as bit arguments



193
194
195
196
197
198
199
200
201
202
# File 'lib/has_flags.rb', line 193

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

#flagsObject

return the flags as a hash of labels and values, i.e., the symbols (as strings) and bit mask values



175
176
177
# File 'lib/has_flags.rb', line 175

def flags
  self.bitflags
end

#mask(*args) ⇒ Object

return the integer mask given the list of defined symbols.



182
183
184
185
186
187
188
# File 'lib/has_flags.rb', line 182

def mask(*args)
  flags = self.flags
  
  args.inject(0) do |n, name|
    n += flags[name.to_s]
  end
end