Sha256: 871eeaa9041bbd1c8b01378100504d151429c006f52f018c98229c2fd05c38f4
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module Del # This is used to contain all configuration. class Configuration SOCKET_FILE = '/tmp/del.sock' attr_accessor :router attr_accessor :users attr_writer :default_rooms attr_writer :host attr_writer :jid attr_writer :logger attr_writer :muc_domain attr_writer :name attr_writer :password attr_writer :socket_file def initialize(settings = {}) @settings = settings @router = DefaultRouter.new @users = Repository.new(mapper: User) end def jid @jid ||= settings.fetch(:jid) end def host @host ||= settings.fetch(:host, 'chat.hipchat.com') end def muc_domain @muc_domain ||= settings.fetch(:muc_domain, 'conf.hipchat.com') end def name @name ||= settings.fetch(:full_name) end def password @password ||= settings.fetch(:password) end def logger @logger ||= begin x = Logger.new(STDOUT) x.level = settings.fetch(:log_level, Logger::INFO).to_i x end end def socket_file @socket_file ||= settings.fetch(:socket_file, SOCKET_FILE) end def default_rooms @default_rooms ||= settings.fetch(:rooms, []) end def load(file) return if file.nil? return Kernel.load(file) if File.exist?(file) download(file) end private attr_reader :settings def download(url) Net::Hippie.logger = logger response = Net::Hippie::Client.new.yield_self do |x| x.with_retry { |y| y.get(url) } end path = Tempfile.new('del').path IO.write(path, response.body) load(path) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
del-0.1.19 | lib/del/configuration.rb |