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



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

#flagsObject

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