Module: Siding::LoadManifest::EnvProbe
- Defined in:
- lib/siding/load_manifest.rb
Defined Under Namespace
Modules: Interceptor
Constant Summary collapse
- IGNORED_PREFIXES =
%w[SIDING_ BUNDLE_ BUNDLER_ RUBY GEM_ XDG_ LC_].freeze
- IGNORED_KEYS =
%w[ RAILS_ENV RACK_ENV RAILS_GROUPS PATH PWD OLDPWD SHLVL _ LANG LANGUAGE TERM TERM_PROGRAM TERM_PROGRAM_VERSION TERM_SESSION_ID COLORTERM COLUMNS LINES SSH_AUTH_SOCK SSH_CLIENT SSH_CONNECTION SSH_TTY TMUX TMUX_PANE STY WINDOWID DISPLAY DBUS_SESSION_BUS_ADDRESS SOURCE_DATE_EPOCH DEBUG_RESOLVER DEBUG_RESOLVER_TREE SKIP_BUNDLER_CHECKSUM PAGER RI_PAGER ].to_set.freeze
Class Method Summary collapse
- .around_bulk_write ⇒ Object
- .around_write(key) ⇒ Object
- .finish ⇒ Object
- .ignored?(key) ⇒ Boolean
- .note_read(key) ⇒ Object
- .note_write(key) ⇒ Object
- .recording? ⇒ Boolean
- .start ⇒ Object
- .stop ⇒ Object
Class Method Details
.around_bulk_write ⇒ Object
375 376 377 378 379 380 381 382 383 384 385 |
# File 'lib/siding/load_manifest.rb', line 375 def around_bulk_write return yield unless recording? before = ENV.to_hash result = yield after = ENV.to_hash (before.keys | after.keys).each do |key| note_write(key) unless before[key] == after[key] end result end |
.around_write(key) ⇒ Object
366 367 368 369 370 371 372 373 |
# File 'lib/siding/load_manifest.rb', line 366 def around_write(key) return yield unless recording? before = raw(key) result = yield note_write(key) unless raw(key) == before result end |
.finish ⇒ Object
358 359 360 361 362 |
# File 'lib/siding/load_manifest.rb', line 358 def finish stop keys = @reads - @writes.to_a keys.to_h { |key| [key, raw(key)] } end |
.ignored?(key) ⇒ Boolean
400 401 402 |
# File 'lib/siding/load_manifest.rb', line 400 def ignored?(key) IGNORED_KEYS.include?(key) || IGNORED_PREFIXES.any? { |prefix| key.start_with?(prefix) } end |
.note_read(key) ⇒ Object
391 392 393 394 395 396 397 398 |
# File 'lib/siding/load_manifest.rb', line 391 def note_read(key) return unless recording? return unless key.is_a?(String) return if ignored?(key) return unless @seen.add?(key) @reads << key end |
.note_write(key) ⇒ Object
387 388 389 |
# File 'lib/siding/load_manifest.rb', line 387 def note_write(key) @writes << key end |
.recording? ⇒ Boolean
364 |
# File 'lib/siding/load_manifest.rb', line 364 def recording? = @recording |
.start ⇒ Object
344 345 346 347 348 349 350 351 |
# File 'lib/siding/load_manifest.rb', line 344 def start install @reads = [] @seen = Set.new @writes = Set.new @recording = true self end |
.stop ⇒ Object
353 354 355 356 |
# File 'lib/siding/load_manifest.rb', line 353 def stop @recording = false self end |