Sha256: 9698a3cfc61d9340ab7a10135bd3bd0e5b75f364405db9eb50131b27c1af32bb
Contents?: true
Size: 932 Bytes
Versions: 3
Compression:
Stored size: 932 Bytes
Contents
module Troo module Behaviours class NullEntity # @return [FalseClass] def default? false end end class SetDefault class << self # @param [] # @return [] def for(entity) new(entity).set_default! end end # @param [] # @return [] def initialize(entity) @entity = entity end # @return [TrueClass, ?] def set_default! return true if already_default? unset_default set_new_default entity end private attr_reader :entity def set_new_default entity.update(default: true) end def unset_default entity.class.update(default: false) end def already_default? entity.default? end def entity return NullEntity.new if @entity.nil? @entity end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
troo-0.0.13 | lib/troo/models/behaviours/set_default.rb |
troo-0.0.12 | lib/troo/models/behaviours/set_default.rb |
troo-0.0.11 | lib/troo/models/behaviours/set_default.rb |