Class: Aspera::DataRepository
- Inherits:
-
Object
- Object
- Aspera::DataRepository
- Includes:
- Singleton
- Defined in:
- lib/aspera/data_repository.rb
Overview
a simple binary data repository
Constant Summary collapse
- ELEMENTS =
in same order as elements in folder
%i[dsa rsa uuid aspera.global-cli-client aspera.drive license]
Instance Method Summary collapse
-
#item(name) ⇒ String
decode data as expected as string.
Instance Method Details
#item(name) ⇒ String
decode data as expected as string
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/aspera/data_repository.rb', line 19 def item(name) index = ELEMENTS.index(name) raise ArgumentError, "unknown data item #{name} (#{name.class})" unless index raw_data = data(START_INDEX + index) case name when :dsa, :rsa # generate PEM from DER return OpenSSL::PKey.const_get(name.to_s.upcase).new(raw_data).to_pem when :license return Zlib::Inflate.inflate(raw_data) when :uuid return format('%08x-%04x-%04x-%04x-%04x%08x', *raw_data.unpack('NnnnnN')) when :'aspera.global-cli-client', :'aspera.drive' return Base64.urlsafe_encode64(raw_data) else Aspera.error_unexpected_value(name) end end |