shard-crystal-db/src/db/disposable.cr

24 lines
463 B
Crystal
Raw Normal View History

2016-02-03 20:10:03 +00:00
module DB
# Generic module to encapsulate disposable db resources.
module Disposable
macro included
@closed = false
end
# Closes this object.
def close
return if @closed
@closed = true
do_close
end
# Returns `true` if this object is closed. See `#close`.
def closed?
@closed
end
# Implementors overrides this method to perform resource cleanup
protected abstract def do_close
end
end