Module: Upkeep::Runtime::ChangeLog
- Defined in:
- lib/upkeep/runtime.rb
Constant Summary collapse
- THREAD_KEY =
:upkeep_change_log_events
Class Method Summary collapse
- .capture ⇒ Object
- .capturing? ⇒ Boolean
- .drain ⇒ Object
- .events ⇒ Object
- .record(event) ⇒ Object
- .reset ⇒ Object
Class Method Details
.capture ⇒ Object
358 359 360 361 362 363 364 365 366 |
# File 'lib/upkeep/runtime.rb', line 358 def capture previous = Thread.current[THREAD_KEY] events = [] Thread.current[THREAD_KEY] = events [yield, events.dup] ensure Thread.current[THREAD_KEY] = previous end |
.capturing? ⇒ Boolean
340 341 342 |
# File 'lib/upkeep/runtime.rb', line 340 def capturing? !Thread.current[THREAD_KEY].nil? end |
.drain ⇒ Object
344 345 346 347 348 349 350 351 352 353 354 355 356 |
# File 'lib/upkeep/runtime.rb', line 344 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
332 333 334 335 336 337 338 |
# File 'lib/upkeep/runtime.rb', line 332 def events if (events = Thread.current[THREAD_KEY]) events else @mutex.synchronize { @events.dup } end end |
.record(event) ⇒ Object
324 325 326 327 328 329 330 |
# File 'lib/upkeep/runtime.rb', line 324 def record(event) if (events = Thread.current[THREAD_KEY]) events << event else @mutex.synchronize { @events << event } end end |
.reset ⇒ Object
319 320 321 322 |
# File 'lib/upkeep/runtime.rb', line 319 def reset @mutex.synchronize { @events = [] } Thread.current[THREAD_KEY] = nil end |