class Meshchat::Configuration::Settings
Constants
- DEFAULT_SETTINGS
- FILENAME
Public Class Methods
new()
click to toggle source
Calls superclass method
Meshchat::Configuration::HashFile::new
# File lib/meshchat/configuration/settings.rb, line 84 def initialize @default_settings = DEFAULT_SETTINGS @filename = FILENAME super end
Public Instance Methods
debug?()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 19 def debug? %w(true 1 yes y t).include?(self['debug'].try(:downcase)) end
errors()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 94 def errors messages = [] messages << 'must have an alias' unless self['alias'].present? messages << 'must have ip set' unless self['ip'].present? messages << 'must have port set' unless self['port'].present? messages << 'must have uid set' unless self['uid'].present? messages end
generate_keys()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 62 def generate_keys @key_pair = OpenSSL::PKey::RSA.new(2048) self['publickey'] = @key_pair.public_key.to_pem self['privatekey'] = @key_pair.to_pem Display.success 'new keys generated' end
generate_uid()
click to toggle source
generates 32 bytes
# File lib/meshchat/configuration/settings.rb, line 57 def generate_uid self['uid'] = SecureRandom.hex(32) Display.success 'new uid set' end
identity()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 76 def identity "#{self['alias']}@#{location}##{self['uid']}" end
identity_as_json()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 23 def identity_as_json { 'alias' => self['alias'], 'location' => location, 'uid' => self['uid'], 'publickey' => public_key } end
is_complete?()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 103 def is_complete? valid? && self['privatekey'] && self['publickey'] end
key_pair()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 69 def key_pair if !@key_pair && keys_exist? @key_pair = OpenSSL::PKey::RSA.new(self['privatekey'] + self['publickey']) end @key_pair end
keys_exist?()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 40 def keys_exist? public_key.present? && private_key.present? end
location()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 80 def location "#{self['ip']}:#{self['port']}" end
private_key()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 52 def private_key self['privatkey'] end
public_key()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 48 def public_key self['publickey'] end
uid_exists?()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 44 def uid_exists? self['uid'].present? end
valid?()
click to toggle source
# File lib/meshchat/configuration/settings.rb, line 90 def valid? errors.empty? end