Sha256: 75f53224e588be6e6bd542fd6496fba2d0ef47fb5a80309a3ac0972734747b9a
Contents?: true
Size: 704 Bytes
Versions: 27
Compression:
Stored size: 704 Bytes
Contents
module Tessa class AssetChange include Virtus.model attribute :id, Integer attribute :action, String def initialize(args={}) case args when Array id, attributes = args super attributes.merge(id: id) else super end end def apply if add? asset.complete! elsif remove? asset.delete! end end def hash [id, action].hash end def eql?(b) self.class == b.class && self.hash == b.hash end def add? action == 'add' end def remove? action == 'remove' end private def asset Tessa::Asset.new(id: id) end end end
Version data entries
27 entries across 27 versions & 1 rubygems