Commit 37f5791
Changed files (4)
lib
lib/del/cli.rb
@@ -1,18 +1,17 @@
require "del"
require "pathname"
require "thor"
-require 'yaml'
module Del
class CLI < Thor
DEFAULT_RC=Pathname.new(Dir.home).join(".delrc")
- class_option :dotenv_file, default: ENV.fetch("DELRC", DEFAULT_RC)
+ class_option :configuration_file, default: ENV.fetch("DELRC", DEFAULT_RC)
class_option :socket_file, default: Del::Configuration::SOCKET_FILE
desc "server <routes.rb>", "start server"
def server(startup_file = nil)
Del.start(
- dotenv_file: options[:dotenv_file],
+ configuration_file: options[:configuration_file],
socket_file: options[:socket_file],
startup_file: startup_file,
)
@@ -34,18 +33,18 @@ module Del
desc "setup", "setup your $HOME/.delrc"
def setup
- configuration = {}
- configuration[:host] = ask("Where is your xmpp server? (E.g. 'chat.hipchat.com')")
- configuration[:jid] = ask("What is your jabber Id?")
- configuration[:muc_domain] = ask("What is your MUC domain? (E.g. 'conf.hipchat.com')")
- configuration[:full_name] = ask("What is your name?")
- configuration[:password] = ask("What is your password?", echo: false)
+ settings = {}
+ settings[:host] = ask("Where is your xmpp server? (E.g. 'chat.hipchat.com')")
+ settings[:jid] = ask("What is your jabber Id?")
+ settings[:muc_domain] = ask("What is your MUC domain? (E.g. 'conf.hipchat.com')")
+ settings[:full_name] = ask("What is your name?")
+ settings[:password] = ask("What is your password?", echo: false)
say ""
- say "Writing your configuration to: #{DEFAULT_RC}", :green
- yaml = YAML.dump(configuration)
- IO.write(DEFAULT_RC, yaml)
- File.chmod(0600, DEFAULT_RC)
+ say "Writing your configuration to: #{options[:configuration_file]}", :green
+ yaml = YAML.dump(settings)
+ IO.write(options[:configuration_file], yaml)
+ File.chmod(0600, options[:configuration_file])
end
desc "version", "Print the version of this gem"
lib/del/configuration.rb
@@ -14,15 +14,15 @@ module Del
attr_accessor :users
attr_accessor :socket_file
- def initialize
- @default_rooms = ENV.fetch("DEL_ROOMS", '').split(',')
- @host = ENV.fetch("DEL_HOST", 'chat.hipchat.com')
- @jid = ENV.fetch("DEL_JID")
+ def initialize(settings = {})
+ @default_rooms = settings[:rooms]
+ @host = settings.fetch(:host, 'chat.hipchat.com')
+ @jid = settings.fetch(:jid)
@logger = Logger.new(STDOUT)
- @logger.level = ENV.fetch('LOG_LEVEL', Logger::INFO).to_i
- @muc_domain = ENV.fetch("DEL_MUC_DOMAIN", "conf.hipchat.com")
- @name = ENV.fetch("DEL_FULL_NAME")
- @password = ENV.fetch("DEL_PASSWORD")
+ @logger.level = settings.fetch(:log_level, Logger::INFO).to_i
+ @muc_domain = settings.fetch(:muc_domain, "conf.hipchat.com")
+ @name = settings.fetch(:full_name)
+ @password = settings.fetch(:password)
@rooms = Repository.new
@router = DefaultRouter.new
@socket_file = SOCKET_FILE
lib/del.rb
@@ -1,4 +1,3 @@
-require "dotenv"
require "json"
require "logger"
require "socket"
@@ -6,6 +5,7 @@ require "xmpp4r"
require "xmpp4r/muc/helper/mucbrowser"
require "xmpp4r/muc/helper/simplemucclient"
require "xmpp4r/roster/helper/roster"
+require "yaml"
require "del/configuration"
require "del/connection"
@@ -20,9 +20,9 @@ require "del/user"
require "del/version"
module Del
- def self.start(dotenv_file:, startup_file: nil, start_server: true, socket_file: nil)
- puts "Loading... #{dotenv_file}"
- Dotenv.load(dotenv_file.to_s)
+ def self.start(configuration_file:, startup_file: nil, start_server: true, socket_file: nil)
+ puts "Loading... #{configuration_file}"
+ @configuration ||= Configuration.new(YAML.load(IO.read(configuration_file)))
Del.configure do |config|
config.socket_file = socket_file if socket_file
config.router.register(/.*/) do |message|
@@ -39,7 +39,7 @@ module Del
end
def self.configuration
- @configuration ||= Configuration.new
+ @configuration ||= Configuration.new({})
end
def self.logger
del.gemspec
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
- spec.add_dependency "dotenv", "~> 2.4"
spec.add_dependency "xmpp4r", "~> 0.5"
spec.add_dependency "thor", "~> 0.20"
spec.add_development_dependency "bundler", "~> 1.16"