Module: Upkeep::Runtime::ChangeLog
- Defined in:
- lib/upkeep/runtime.rb
Constant Summary collapse
- THREAD_KEY =
:upkeep_change_log_events
Class Method Summary collapse
Class Method Details
.capture ⇒ Object
337 338 339 340 341 342 343 344 345 |
# File 'lib/upkeep/runtime.rb', line 337 def capture previous = Thread.current[THREAD_KEY] events = [] Thread.current[THREAD_KEY] = events [yield, events.dup] ensure Thread.current[THREAD_KEY] = previous end |
.drain ⇒ Object
323 324 325 326 327 328 329 330 331 332 333 334 335 |
# File 'lib/upkeep/runtime.rb', line 323 def drain if (events = Thread.current[THREAD_KEY]) drained = events.dup events.clear drained else @mutex.synchronize do events = @events @events = [] events end end end |
.events ⇒ Object
315 316 317 318 319 320 321 |
# File 'lib/upkeep/runtime.rb', line 315 def events if (events = Thread.current[THREAD_KEY]) events else @mutex.synchronize { @events.dup } end end |
.record(event) ⇒ Object
307 308 309 310 311 312 313 |
# File 'lib/upkeep/runtime.rb', line 307 def record(event) if (events = Thread.current[THREAD_KEY]) events << event else @mutex.synchronize { @events << event } end end |
.reset ⇒ Object
302 303 304 305 |
# File 'lib/upkeep/runtime.rb', line 302 def reset @mutex.synchronize { @events = [] } Thread.current[THREAD_KEY] = nil end |