module Blackbeard::StorableHasSet::ClassMethods
Public Instance Methods
_has_set(plural, singular)
click to toggle source
# File lib/blackbeard/storable_has_set.rb, line 19 def _has_set(plural, singular) plural = plural.to_s.downcase singular = singular.to_s.downcase methods = <<-END_OF_RUBY def has_#{singular}?(o) #{plural}.include?(o) end def add_#{singular}(o) db.set_add_member(#{plural}_key, o) unless has_#{singular}?(o) \@#{plural} = nil end def add_#{plural}(*args) args.flatten.reject!{|o| has_#{singular}?(o) } db.set_add_members(#{plural}_key, args) unless args.empty? \@#{plural} = nil end def remove_#{singular}(o) db.set_remove_member(#{plural}_key, o) \@#{plural} = nil end def #{plural} \@#{plural} ||= db.set_members(#{plural}_key) end def #{plural}_key raise StorableNotSaved if new_record? key+"::#{plural}" end END_OF_RUBY class_eval(methods) end
has_set(options = {})
click to toggle source
# File lib/blackbeard/storable_has_set.rb, line 13 def has_set(options = {}) options.each_pair do |plural, singular| _has_set(plural, singular) end end