Commit a8e3360

mokha <mokha@cisco.com>
2019-04-15 23:24:59
create an singleton per root_dir
1 parent 0c5c4eb
Changed files (3)
lib/minbox/inbox.rb
@@ -2,10 +2,14 @@
 
 module Minbox
   class Inbox
-    include Singleton
     include Enumerable
 
-    def initialize(root_dir: 'tmp')
+    def self.instance(root_dir:)
+      @instances ||= {}
+      @instances[root_dir] ||= new(root_dir: root_dir)
+    end
+
+    def initialize(root_dir:)
       empty!
       ::Listen.to(File.expand_path(root_dir), only: /\.eml$/) do |modified, added, removed|
         added.each do |file|
lib/minbox.rb
@@ -5,7 +5,6 @@ require 'concurrent'
 require 'hashie'
 require 'listen'
 require 'logger'
-require 'singleton'
 require 'socket'
 
 require 'minbox/client'
spec/minbox/inbox_spec.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 RSpec.describe Minbox::Inbox do
-  subject! { described_class.instance }
+  subject! { described_class.instance(root_dir: 'tmp') }
 
   before do
     IO.write("tmp/1.eml", Mail.new do