Class: GandiV5::Email::Mailbox::Responder

Inherits:
Object
  • Object
show all
Includes:
Data
Defined in:
lib/gandi_v5/email/mailbox/responder.rb

Overview

Status of a mailbox’s auto responder.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Data

#from_gandi, included, #to_gandi, #to_h, #values_at

Constructor Details

#initialize(mailbox: nil, **members) ⇒ GandiV5::Email::Slot

Create a new GandiV5::Email::Mailbox::Responder

Parameters:

  • mailbox (GandiV5::Email::Mailbox) (defaults to: nil)

    the mailbox this responder belongs to.

  • members (Hash<Symbol => Object>)


31
32
33
34
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 31

def initialize(mailbox: nil, **members)
  super(**members)
  @mailbox = mailbox
end

Instance Attribute Details

#enabledBoolean (readonly)

Returns:

  • (Boolean)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 18

class Responder
  include GandiV5::Data

  attr_reader :mailbox

  members :enabled, :message
  member :starts_at, converter: GandiV5::Data::Converter::Time
  member :ends_at, converter: GandiV5::Data::Converter::Time

  # Create a new GandiV5::Email::Mailbox::Responder
  # @param mailbox [GandiV5::Email::Mailbox] the mailbox this responder belongs to.
  # @param members [Hash<Symbol => Object>]
  # @return [GandiV5::Email::Slot]
  def initialize(mailbox: nil, **members)
    super(**members)
    @mailbox = mailbox
  end

  # Check if this responder is currently active.
  # @return [Boolean] whether the responder is enabled,
  #   started in the past and ends in the future.
  def active?
    enabled &&
      (starts_at.nil? || starts_at < Time.now) &&
      (ends_at.nil? || ends_at > Time.now)
  end

  # Enable the auto responder in Gandi.
  # @param message [String]
  # @param starts_at [Time]
  # @param ends_at [Time]
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def enable(message:, ends_at:, starts_at: Time.now)
    mailbox.update responder: {
      message: message,
      starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
      ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
      enabled: true
    }

    self.starts_at = starts_at
    self.ends_at = ends_at
    self.message = message
    self.enabled = true
  end

  # Disable the auto responder in Gandi.
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def disable
    mailbox.update responder: { enabled: false }

    self.starts_at = nil
    self.ends_at = nil
    self.message = nil
    self.enabled = false
  end
end

#ends_atnil, Time (readonly)

Returns:

  • (nil, Time)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 18

class Responder
  include GandiV5::Data

  attr_reader :mailbox

  members :enabled, :message
  member :starts_at, converter: GandiV5::Data::Converter::Time
  member :ends_at, converter: GandiV5::Data::Converter::Time

  # Create a new GandiV5::Email::Mailbox::Responder
  # @param mailbox [GandiV5::Email::Mailbox] the mailbox this responder belongs to.
  # @param members [Hash<Symbol => Object>]
  # @return [GandiV5::Email::Slot]
  def initialize(mailbox: nil, **members)
    super(**members)
    @mailbox = mailbox
  end

  # Check if this responder is currently active.
  # @return [Boolean] whether the responder is enabled,
  #   started in the past and ends in the future.
  def active?
    enabled &&
      (starts_at.nil? || starts_at < Time.now) &&
      (ends_at.nil? || ends_at > Time.now)
  end

  # Enable the auto responder in Gandi.
  # @param message [String]
  # @param starts_at [Time]
  # @param ends_at [Time]
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def enable(message:, ends_at:, starts_at: Time.now)
    mailbox.update responder: {
      message: message,
      starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
      ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
      enabled: true
    }

    self.starts_at = starts_at
    self.ends_at = ends_at
    self.message = message
    self.enabled = true
  end

  # Disable the auto responder in Gandi.
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def disable
    mailbox.update responder: { enabled: false }

    self.starts_at = nil
    self.ends_at = nil
    self.message = nil
    self.enabled = false
  end
end

#mailboxGandiV5::Email::Mailbox (readonly)

Returns the mailbox this repsonder belongs to.

Returns:



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 18

class Responder
  include GandiV5::Data

  attr_reader :mailbox

  members :enabled, :message
  member :starts_at, converter: GandiV5::Data::Converter::Time
  member :ends_at, converter: GandiV5::Data::Converter::Time

  # Create a new GandiV5::Email::Mailbox::Responder
  # @param mailbox [GandiV5::Email::Mailbox] the mailbox this responder belongs to.
  # @param members [Hash<Symbol => Object>]
  # @return [GandiV5::Email::Slot]
  def initialize(mailbox: nil, **members)
    super(**members)
    @mailbox = mailbox
  end

  # Check if this responder is currently active.
  # @return [Boolean] whether the responder is enabled,
  #   started in the past and ends in the future.
  def active?
    enabled &&
      (starts_at.nil? || starts_at < Time.now) &&
      (ends_at.nil? || ends_at > Time.now)
  end

  # Enable the auto responder in Gandi.
  # @param message [String]
  # @param starts_at [Time]
  # @param ends_at [Time]
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def enable(message:, ends_at:, starts_at: Time.now)
    mailbox.update responder: {
      message: message,
      starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
      ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
      enabled: true
    }

    self.starts_at = starts_at
    self.ends_at = ends_at
    self.message = message
    self.enabled = true
  end

  # Disable the auto responder in Gandi.
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def disable
    mailbox.update responder: { enabled: false }

    self.starts_at = nil
    self.ends_at = nil
    self.message = nil
    self.enabled = false
  end
end

#messagenil, String (readonly)

Returns:

  • (nil, String)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 18

class Responder
  include GandiV5::Data

  attr_reader :mailbox

  members :enabled, :message
  member :starts_at, converter: GandiV5::Data::Converter::Time
  member :ends_at, converter: GandiV5::Data::Converter::Time

  # Create a new GandiV5::Email::Mailbox::Responder
  # @param mailbox [GandiV5::Email::Mailbox] the mailbox this responder belongs to.
  # @param members [Hash<Symbol => Object>]
  # @return [GandiV5::Email::Slot]
  def initialize(mailbox: nil, **members)
    super(**members)
    @mailbox = mailbox
  end

  # Check if this responder is currently active.
  # @return [Boolean] whether the responder is enabled,
  #   started in the past and ends in the future.
  def active?
    enabled &&
      (starts_at.nil? || starts_at < Time.now) &&
      (ends_at.nil? || ends_at > Time.now)
  end

  # Enable the auto responder in Gandi.
  # @param message [String]
  # @param starts_at [Time]
  # @param ends_at [Time]
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def enable(message:, ends_at:, starts_at: Time.now)
    mailbox.update responder: {
      message: message,
      starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
      ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
      enabled: true
    }

    self.starts_at = starts_at
    self.ends_at = ends_at
    self.message = message
    self.enabled = true
  end

  # Disable the auto responder in Gandi.
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def disable
    mailbox.update responder: { enabled: false }

    self.starts_at = nil
    self.ends_at = nil
    self.message = nil
    self.enabled = false
  end
end

#starts_atnil, Time (readonly)

Returns:

  • (nil, Time)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 18

class Responder
  include GandiV5::Data

  attr_reader :mailbox

  members :enabled, :message
  member :starts_at, converter: GandiV5::Data::Converter::Time
  member :ends_at, converter: GandiV5::Data::Converter::Time

  # Create a new GandiV5::Email::Mailbox::Responder
  # @param mailbox [GandiV5::Email::Mailbox] the mailbox this responder belongs to.
  # @param members [Hash<Symbol => Object>]
  # @return [GandiV5::Email::Slot]
  def initialize(mailbox: nil, **members)
    super(**members)
    @mailbox = mailbox
  end

  # Check if this responder is currently active.
  # @return [Boolean] whether the responder is enabled,
  #   started in the past and ends in the future.
  def active?
    enabled &&
      (starts_at.nil? || starts_at < Time.now) &&
      (ends_at.nil? || ends_at > Time.now)
  end

  # Enable the auto responder in Gandi.
  # @param message [String]
  # @param starts_at [Time]
  # @param ends_at [Time]
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def enable(message:, ends_at:, starts_at: Time.now)
    mailbox.update responder: {
      message: message,
      starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
      ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
      enabled: true
    }

    self.starts_at = starts_at
    self.ends_at = ends_at
    self.message = message
    self.enabled = true
  end

  # Disable the auto responder in Gandi.
  # @raise [GandiV5::Error::GandiError] if Gandi returns an error.
  def disable
    mailbox.update responder: { enabled: false }

    self.starts_at = nil
    self.ends_at = nil
    self.message = nil
    self.enabled = false
  end
end

Instance Method Details

#active?Boolean

Check if this responder is currently active.

Returns:

  • (Boolean)

    whether the responder is enabled, started in the past and ends in the future.



39
40
41
42
43
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 39

def active?
  enabled &&
    (starts_at.nil? || starts_at < Time.now) &&
    (ends_at.nil? || ends_at > Time.now)
end

#disableObject

Disable the auto responder in Gandi.

Raises:



66
67
68
69
70
71
72
73
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 66

def disable
  mailbox.update responder: { enabled: false }

  self.starts_at = nil
  self.ends_at = nil
  self.message = nil
  self.enabled = false
end

#enable(message:, ends_at:, starts_at: Time.now) ⇒ Object

Enable the auto responder in Gandi.

Parameters:

  • message (String)
  • starts_at (Time) (defaults to: Time.now)
  • ends_at (Time)

Raises:



50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/gandi_v5/email/mailbox/responder.rb', line 50

def enable(message:, ends_at:, starts_at: Time.now)
  mailbox.update responder: {
    message: message,
    starts_at: GandiV5::Data::Converter::Time.to_gandi(starts_at),
    ends_at: GandiV5::Data::Converter::Time.to_gandi(ends_at),
    enabled: true
  }

  self.starts_at = starts_at
  self.ends_at = ends_at
  self.message = message
  self.enabled = true
end