Class: Waddup::Source::AppleMail

Inherits:
Waddup::Source show all
Extended by:
Extension::AppleScript, Extension::FileSystem
Includes:
Extension::AppleScript
Defined in:
lib/waddup/sources/apple_mail.rb

Constant Summary collapse

ALIAS =
'mail'
ICON =
"\xE2\x9C\x89\xEF\xB8\x8F "
SENT_MAIL_SCRIPT =
folder_of(__FILE__) + 'apple_mail/sent_mail.applescript'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Extension::AppleScript

applescript, applescript?

Methods included from Extension::System

#os, #osx?, #run

Methods included from Extension::FileSystem

folder_of

Methods inherited from Waddup::Source

usable, #usable?

Methods included from Registry

#inherited, #registry

Class Method Details

.usable?Boolean

Requires AppleScript to be available

Returns:

  • (Boolean)


35
36
37
# File 'lib/waddup/sources/apple_mail.rb', line 35

def self.usable?
  applescript?
end

Instance Method Details

#events(from, to) ⇒ Object

Aggregates sent mail events

Arguments:

:from (datetime)
:to   (datetime)


20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/waddup/sources/apple_mail.rb', line 20

def events(from, to)
  results = applescript SENT_MAIL_SCRIPT,
    as_ruby: true,
    args:    [from.strftime('%d/%m/%Y %H:%M'), to.strftime('%d/%m/%Y %H:%M')]

  results.map do |result|
    Waddup::Event.new do |e|
      e.label  = result[:subject]
      e.at     = Time.parse(result[:datetime])
      e.source = self
    end
  end
end