Class: Keyring::Backend::GnomeKeyring

Inherits:
Keyring::Backend show all
Defined in:
lib/keyring/backends/gnome_keyring.rb

Overview

This is a keyring backend for the Gnome Keyring wiki.gnome.org/GnomeKeyring en.wikipedia.org/wiki/GNOME_Keyring

Instance Method Summary collapse

Methods inherited from Keyring::Backend

create, register_implementation

Constructor Details

#initializeGnomeKeyring

Returns a new instance of GnomeKeyring.



11
12
13
14
# File 'lib/keyring/backends/gnome_keyring.rb', line 11

def initialize
  require 'gir_ffi-gnome_keyring'
rescue LoadError
end

Instance Method Details

#delete_password(service, username) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/keyring/backends/gnome_keyring.rb', line 35

def delete_password(service, username)
  if item = find_first(service, username)
    status, info = ::GnomeKeyring.item_delete_sync nil, item.item_id
    status == :ok
  else
    false
  end
end

#get_password(service, username) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/keyring/backends/gnome_keyring.rb', line 28

def get_password(service, username)
  if item = find_first(service, username)
    item.secret
  else
    false
  end
end

#priorityObject



18
19
20
# File 'lib/keyring/backends/gnome_keyring.rb', line 18

def priority
  1
end

#set_password(service, username, password) ⇒ Object



22
23
24
25
26
27
# File 'lib/keyring/backends/gnome_keyring.rb', line 22

def set_password(service, username, password)
  attrs = get_attrs_for(service, username)
  name = "#{service} (#{username})"
  status, item_id = ::GnomeKeyring.item_create_sync nil, :generic_secret, name, attrs, password, true
  item_id if status == :ok
end

#supported?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/keyring/backends/gnome_keyring.rb', line 15

def supported?
  defined?(::GnomeKeyring) && true
end