To import the public key in ruby:
EncryptionError = Class.new(StandardError)
result, stderr, status = Open3.capture3("gpg --import #{@key_path}")
raise EncryptionError.new(stderr_data) unless status.success?
To encrypt data with a public key for a given recipient:
pgp_encrypt_command = "gpg -ear #{recipient} --always-trust --trust-model always --local-user #{recipient} --default-key #{recipient}"
encrypted_data, stderr_data, status = Open3.capture3(pgp_encrypt_command, stdin_data: data)
raise EncryptionError.new(stderr_data) unless status.success?