class OnePassword::Keychain

Public Class Methods

new(directory = '~/Dropbox/1Password.agilekeychain') click to toggle source
# File lib/one_password/keychain.rb, line 9
def initialize(directory = '~/Dropbox/1Password.agilekeychain')
  @directory       = Pathname(File.expand_path(directory))
  @master_password = nil
  profiles
end

Public Instance Methods

current_profile() click to toggle source

@return [Profile]

# File lib/one_password/keychain.rb, line 16
def current_profile
  @current_profile ||= profiles['default']
end
current_profile=(profile) click to toggle source

@param [String, Profile] profile

# File lib/one_password/keychain.rb, line 21
def current_profile=(profile)
  unless profile.is_a?(Profile)
    raise UndefinedProfile.new(profile) unless profiles.key?(profile)
    profile = profiles[profile]
  end
  @profile = profile
end
password=(password) click to toggle source
# File lib/one_password/keychain.rb, line 29
def password=(password)
  current_profile.password = password
end

Protected Instance Methods

data_directory() click to toggle source
# File lib/one_password/keychain.rb, line 35
def data_directory
  @directory.join('data')
end
profiles() click to toggle source
# File lib/one_password/keychain.rb, line 39
def profiles
  @profiles ||= Dir["#{data_directory}/*"].inject({}) do |result, dir|
    profile              = Profile.new(self, dir)
    result[profile.name] = profile
    result
  end
end