module ActsAsDefault::InstanceMethods
Public Instance Methods
set_as_default!()
click to toggle source
# File lib/acts_as_default.rb, line 28 def set_as_default! if default == false get_default_object.toggle!(:default) toggle!(:default) end end
Private Instance Methods
check_after_destroy()
click to toggle source
# File lib/acts_as_default.rb, line 47 def check_after_destroy obj = get_default_object if obj.nil? obj = get_collection.order(created_at: :desc).first obj.toggle!(:default) if obj end end
check_before_save()
click to toggle source
# File lib/acts_as_default.rb, line 37 def check_before_save if self.default obj = get_default_object obj.toggle!(:default) if obj and obj.id != id else self.default = check_if_empty? end return true end
check_if_empty?()
click to toggle source
# File lib/acts_as_default.rb, line 55 def check_if_empty? get_collection.size == 0 end
get_collection()
click to toggle source
# File lib/acts_as_default.rb, line 59 def get_collection if self.class.field_key.nil? self.class.all else self.class.where(self.class.field_key => self[self.class.field_key]) end end
get_default_object()
click to toggle source
# File lib/acts_as_default.rb, line 67 def get_default_object if self.class.field_key.nil? self.class.where(default: true).first else key = self.class.field_key self.class.where("#{key} = :key and default = :default", {key: self[key], default: true}).first end end