lib/whirled_peas.rb in whirled_peas-0.3.0 vs lib/whirled_peas.rb in whirled_peas-0.4.0

- old
+ new

@@ -1,47 +1,27 @@ require 'logger' +require 'whirled_peas/errors' + +require 'whirled_peas/config' require 'whirled_peas/frame' +require 'whirled_peas/template' require 'whirled_peas/ui' +require 'whirled_peas/utils' require 'whirled_peas/version' module WhirledPeas - class Error < StandardError; end + def self.config + @config ||= Config.new + end - DEFAULT_REFRESH_RATE = 30 - - LOGGER_ID = 'MAIN' - - def self.start(driver, template_factory, log_level: Logger::INFO, refresh_rate: DEFAULT_REFRESH_RATE) - logger = Logger.new(File.open('whirled_peas.log', 'a')) - logger.level = log_level - logger.formatter = proc do |severity, datetime, progname, msg| - if msg.is_a?(Exception) - msg = %Q(#{msg.class}: #{msg.to_s}\n #{msg.backtrace.join("\n ")}) - end - "[#{severity}] #{datetime.strftime('%Y-%m-%dT%H:%M:%S.%L')} (#{progname}) - #{msg}\n" - end - - event_loop = Frame::EventLoop.new(template_factory, refresh_rate, logger) - event_loop_thread = Thread.new do - Thread.current.report_on_exception = false - event_loop.start - end - - Frame::Producer.produce(event_loop: event_loop, logger: logger) do |producer| - begin - driver.start(producer) - rescue => e - logger.warn(LOGGER_ID) { 'Driver exited with error, terminating producer...' } - logger.error(LOGGER_ID) { e } - raise - end - end - - event_loop_thread.join + def self.configure(&block) + yield config end def self.template(&block) + require 'whirled_peas/template/element' + template = UI::Template.new yield template, template.settings template end end