Module: Textus::Protocol::StoreEngine::Pipeline
- Defined in:
- lib/textus/protocol/store_engine/pipeline.rb
Defined Under Namespace
Classes: DeleteDeps, MoveDeps, WriteDeps
Class Method Summary
collapse
-
.check_etag(key, path, if_etag, file_system) ⇒ Object
-
.emit_event(deps, event_type:, pending_key:, emit_key:, emit_lane: nil, pending_keys: []) ⇒ Object
-
.prune_parents(path, deps) ⇒ Object
-
.resolve_path(key, deps) ⇒ Object
Class Method Details
.check_etag(key, path, if_etag, file_system) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/textus/protocol/store_engine/pipeline.rb', line 29
def check_etag(key, path, if_etag, file_system)
etag_before = file_system.exists?(path) ? file_system.etag(path) : nil
raise Textus::EtagMismatch.new(key, if_etag, etag_before) if if_etag && (etag_before != if_etag)
etag_before
end
|
.emit_event(deps, event_type:, pending_key:, emit_key:, emit_lane: nil, pending_keys: []) ⇒ Object
49
50
51
52
53
54
55
56
57
|
# File 'lib/textus/protocol/store_engine/pipeline.rb', line 49
def emit_event(deps, event_type:, pending_key:, emit_key:, emit_lane: nil, pending_keys: [])
return unless deps.event_emitter
return if deps.store.workflow_queue.pending?(event_type:, key: pending_key)
return if pending_keys.any? { |k| deps.store.workflow_queue.pending?(event_type:, key: k) }
deps.event_emitter.emit(event_type:, key: emit_key, lane: emit_lane || "artifacts")
rescue StandardError => e
warn "textus: emit_workflow_event(#{event_type}, #{emit_key}) failed: #{e.message}"
end
|
.prune_parents(path, deps) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/textus/protocol/store_engine/pipeline.rb', line 36
def prune_parents(path, deps)
floor = deps.layout.lane_floor(path)
return unless floor
dir = File.dirname(path)
while dir.start_with?("#{floor}/") && deps.file_system.dir_empty?(dir)
deps.file_system.rmdir(dir)
dir = File.dirname(dir)
end
rescue SystemCallError
end
|
.resolve_path(key, deps) ⇒ Object
25
26
27
|
# File 'lib/textus/protocol/store_engine/pipeline.rb', line 25
def resolve_path(key, deps)
deps.manifest.resolver.resolve(key).path
end
|