Sha256: 2405aaad4a1f82b1ad67c2302b538052ae57a34ddfe47893515ea41c76f2cf19
Contents?: true
Size: 1012 Bytes
Versions: 3
Compression:
Stored size: 1012 Bytes
Contents
require_relative 'persistence' module ArisControl class Bookkeeper attr_reader :persistence, :users def initialize(persistence = default_persistence) @persistence = persistence @users = persistence.load_users end def list users end def add(name, opts = {}) user = users[name] || {} ssh_key = opts[:ssh_key] env_vars = opts[:env_vars] _opts = Hash.new.tap do |h| h[:email] = opts[:email] || user.fetch(:email) h[:ssh_key] = ssh_key if ssh_key h[:env_vars] = with_upcased_keys(env_vars) if env_vars end users[name] = user.merge(_opts) persistence.store_users(users) end def delete(name) users.delete(name) persistence.store_users(users) end def default_persistence ArisControl::Persistence.new end private def with_upcased_keys(hash) hash or return hash.each_with_object({}) {|(k,v),h| h[k.to_s.upcase] = v } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aris-control-2.0.1 | lib/aris-control/bookkeeper.rb |
aris-control-2.0.0 | lib/aris-control/bookkeeper.rb |
aris-control-1.2.1 | lib/aris-control/bookkeeper.rb |