class Exos::Commands::Keys::Key
Attributes
created_at[RW]
email[RW]
key[RW]
status[RW]
updated_at[RW]
Public Class Methods
new(attrs = {})
click to toggle source
# File lib/exos/commands/keys.rb, line 181 def initialize(attrs = {}) self.email = attrs.fetch(:email) self.key = attrs.fetch(:key, nil) self.status = attrs.fetch(:status, "active") self.created_at = attrs.fetch(:created_at, Time.now) self.updated_at = attrs.fetch(:updated_at, Time.now) end
parse(attrs_line, key_line)
click to toggle source
# File lib/exos/commands/keys.rb, line 162 def self.parse(attrs_line, key_line) if attrs_line.match(PATTERN_ATTRS_LINE) attrs = JSON.parse($1) new_key = new( email: attrs["email"], status: attrs["status"], created_at: attrs["created_at"], updated_at: attrs["updated_at"] ) if key_line.match(PATTERN_KEY_LINE) new_key.key = key_line.chomp end new_key end end
Public Instance Methods
activate()
click to toggle source
# File lib/exos/commands/keys.rb, line 222 def activate self.status = "active" self.key = uncomment(self.key) end
active?()
click to toggle source
# File lib/exos/commands/keys.rb, line 218 def active? self.status == "active" end
attributes()
click to toggle source
# File lib/exos/commands/keys.rb, line 201 def attributes { email: self.email, status: self.status, created_at: self.created_at, updated_at: self.updated_at } end
comment(key)
click to toggle source
# File lib/exos/commands/keys.rb, line 232 def comment(key); "# #{key}"; end
deactivate()
click to toggle source
# File lib/exos/commands/keys.rb, line 227 def deactivate self.status = "inactive" self.key = comment(self.key) end
escape(text)
click to toggle source
# File lib/exos/commands/keys.rb, line 239 def escape(text) text.gsub("'", "\'") end
key=(text)
click to toggle source
# File lib/exos/commands/keys.rb, line 189 def key=(text) if text && !text.match(/\A(# )?ssh-rsa .+/) abort "Invalid key." end @key = text end
key_fragment()
click to toggle source
# File lib/exos/commands/keys.rb, line 197 def key_fragment "..." + uncomment(self.key).split[1][-20..-1] if self.key end
to_s()
click to toggle source
# File lib/exos/commands/keys.rb, line 235 def to_s escape( ["", "### exos-key #{ JSON.dump(attributes) }", self.key, ""].join("\n") ) end
touch()
click to toggle source
# File lib/exos/commands/keys.rb, line 210 def touch self.updated_at = Time.now end
uncomment(key)
click to toggle source
# File lib/exos/commands/keys.rb, line 233 def uncomment(key); self.key.sub(/\A# /, ""); end
valid?()
click to toggle source
# File lib/exos/commands/keys.rb, line 214 def valid? !!self.email && !!self.key end