class Troo::Behaviours::SetDefault

Attributes

entity[R]

Public Class Methods

for(entity) click to toggle source

@param [] @return []

# File lib/troo/models/behaviours/set_default.rb, line 14
def for(entity)
  new(entity).set_default!
end
new(entity) click to toggle source

@param [] @return [Troo::Behaviours::SetDefault]

# File lib/troo/models/behaviours/set_default.rb, line 21
def initialize(entity)
  @entity = entity
end

Public Instance Methods

set_default!() click to toggle source

@return [TrueClass, ?]

# File lib/troo/models/behaviours/set_default.rb, line 26
def set_default!
  return true if already_default?
  unset_default
  set_new_default
  entity
end

Private Instance Methods

already_default?() click to toggle source
# File lib/troo/models/behaviours/set_default.rb, line 45
def already_default?
  entity.default?
end
set_new_default() click to toggle source
# File lib/troo/models/behaviours/set_default.rb, line 37
def set_new_default
  entity.update(default: true)
end
unset_default() click to toggle source
# File lib/troo/models/behaviours/set_default.rb, line 41
def unset_default
  entity.class.update(default: false)
end