# frozen_string_literal: true require 'notmuch' require 'pry' require_relative 'some/database' require_relative 'some/config' require_relative 'some/message' require_relative 'some/messages' require_relative 'some/helpers' require_relative 'some/ruleset' module Some class << self attr_accessor :config attr_reader :db, :rule_sets def configure(&block) @config ||= Config.new @rule_sets = [] instance_eval(&block) @db = Database.new(path: config.database_path) end def rule_set(name, &block) @rule_sets << RuleSet.new(name, block) end end end def eval_rules Some.rule_sets.each do |rule_set| rule_set.run end end CONFIG_FILEPATH = 'some/config.rb' XDG_HOME = ENV.fetch('XDG_CONFIG_HOME', "#{Dir.home}/.config") def start_some config_file = File.read("#{XDG_HOME}/#{CONFIG_FILEPATH}") instance_eval(config_file) eval_rules end start_some