Class: NdrPseudonymise::NdrEncrypt::RemoteRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/ndr_pseudonymise/ndr_encrypt/remote_repository.rb

Overview

Defines a local ndr_encrypt working copy

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil) ⇒ RemoteRepository

rubocop:disable Style/SlicingWithRange

Raises:

  • (ArgumentError)


9
10
11
12
13
14
# File 'lib/ndr_pseudonymise/ndr_encrypt/remote_repository.rb', line 9

def initialize(base_url: nil)
  # We need to support ruby 2.0 so cannot use required keyword arguments syntax
  raise(ArgumentError, 'missing keyword: :base_url') unless base_url

  @base_url = base_url
end

Instance Method Details

#cat_remote(git_blobid, key_name: nil, private_key: nil, passin: nil) ⇒ Object

Retrieve remote file(s) based on git_blobid

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ndr_pseudonymise/ndr_encrypt/remote_repository.rb', line 17

def cat_remote(git_blobid, key_name: nil, private_key: nil, passin: nil)
  # We need to support ruby 2.0 so cannot use required keyword arguments syntax
  raise(ArgumentError, 'missing keyword: :key_name') unless key_name
  raise(ArgumentError, 'missing keyword: :private_key') unless private_key

  encrypted_id = NdrEncrypt::EncryptedObject.encrypted_id(git_blobid, key_name: key_name)
  rawdata = retrieve_remote_url(encrypted_id)
  contents = NdrEncrypt::EncryptedObject.decrypt(rawdata, private_key: private_key,
                                                          passin: passin)
  blob = NdrEncrypt::EncryptedObject.decompress(contents)
  NdrEncrypt::EncryptedObject.unpack_blob(blob)
end