Class: Aspera::Keychain::MacosSystem
- Inherits:
 - 
      Object
      
        
- Object
 - Aspera::Keychain::MacosSystem
 
 
- Defined in:
 - lib/aspera/keychain/macos_security.rb
 
Instance Method Summary collapse
- #delete(options) ⇒ Object
 - #get(options) ⇒ Object
 - 
  
    
      #initialize(name = nil, _password = nil)  ⇒ MacosSystem 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of MacosSystem.
 - #list ⇒ Object
 - #set(options) ⇒ Object
 
Constructor Details
#initialize(name = nil, _password = nil) ⇒ MacosSystem
Returns a new instance of MacosSystem.
      131 132 133 134  | 
    
      # File 'lib/aspera/keychain/macos_security.rb', line 131 def initialize(name=nil, _password=nil) @keychain = name.nil? ? MacosSecurity::Keychain.default_keychain : MacosSecurity::Keychain.by_name(name) raise "no such keychain #{name}" if @keychain.nil? end  | 
  
Instance Method Details
#delete(options) ⇒ Object
      162 163 164 165 166 167  | 
    
      # File 'lib/aspera/keychain/macos_security.rb', line 162 def delete() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} raise 'delete not implemented, use macos keychain app' end  | 
  
#get(options) ⇒ Object
      145 146 147 148 149 150 151 152 153 154 155  | 
    
      # File 'lib/aspera/keychain/macos_security.rb', line 145 def get() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} info = @keychain.password(:find, :generic, label: [:label]) raise 'not found' if info.nil? result = .clone result[:secret] = info['password'] result[:description] = info['icmt'] # cspell: disable-line return result end  | 
  
#list ⇒ Object
      157 158 159 160  | 
    
      # File 'lib/aspera/keychain/macos_security.rb', line 157 def list # the only way to list is `dump-keychain` which triggers security alert raise 'list not implemented, use macos keychain app' end  | 
  
#set(options) ⇒ Object
      136 137 138 139 140 141 142 143  | 
    
      # File 'lib/aspera/keychain/macos_security.rb', line 136 def set() Aspera.assert_type(, Hash){'options'} unsupported = .keys - %i[label username password url description] Aspera.assert(unsupported.empty?){"unsupported options: #{unsupported}"} @keychain.password( :add, :generic, service: [:label], account: [:username] || 'none', password: [:password], comment: [:description]) end  |