Module: Textus::Lanes::Ingest::KeyBuilder

Defined in:
lib/textus/lanes/ingest/key_builder.rb

Constant Summary collapse

CONTENT_HASH_ALGO =
"sha256"

Class Method Summary collapse

Class Method Details

.compute_hash(kind:, url: nil, path: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/textus/lanes/ingest/key_builder.rb', line 14

def compute_hash(kind:, url: nil, path: nil)
  digest = Digest::SHA256.new
  case kind
  when "url"
    raise ArgumentError.new("url required") unless url

    digest.update(url)
  when "file", "asset"
    raise ArgumentError.new("path required") unless path

    digest.file(path)
  else
    raise ArgumentError.new("unknown kind: #{kind}")
  end
  "#{CONTENT_HASH_ALGO}:#{digest.hexdigest}"
end

.derive_key(now, kind, slug) ⇒ Object



9
10
11
12
# File 'lib/textus/lanes/ingest/key_builder.rb', line 9

def derive_key(now, kind, slug)
  date = now.strftime("%Y.%m.%d")
  "raw.#{date}.#{kind}-#{slug}"
end