Class: MonkeyMailer::Loaders::DataMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/mm-data_mapper.rb

Instance Method Summary collapse

Constructor Details

#initialize(sources) ⇒ DataMapper

Returns a new instance of DataMapper.

Raises:

  • (ArgumentError)


32
33
34
35
36
37
38
39
40
# File 'lib/mm-data_mapper.rb', line 32

def initialize(sources)
  ::DataMapper::Logger.new(STDOUT, 'fatal')
  raise ArgumentError, 'One of the database names must be default' unless [:default, 'default'].any? {|source| sources.include? source}
  sources.each_pair do |name, opts|
    ::DataMapper.setup(name.to_sym, opts)
  end

  ::DataMapper.finalize
end

Instance Method Details

#delete_email(email) ⇒ Object



52
53
54
# File 'lib/mm-data_mapper.rb', line 52

def delete_email(email)
  email.destroy
end

#find_emails(priority, quota) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/mm-data_mapper.rb', line 42

def find_emails(priority, quota)
  emails = []
  MonkeyMailer.configuration.loader_options.each_key do |database|
    new_emails = ::DataMapper.repository(database.to_sym) {MailQueue.all(:priority => priority, :limit => quota)}
    quota -= new_emails.size
    emails.concat(new_emails)
  end
  emails
end