Class: GandiV5::LiveDNS::RecordSet

Inherits:
Object
  • Object
show all
Includes:
Data
Defined in:
lib/gandi_v5/live_dns/record_set.rb

Overview

A record set which comes from either a domain or zone.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Data

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

Instance Attribute Details

#nameString (readonly)

Returns:

  • (String)


14
15
16
17
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
75
76
77
# File 'lib/gandi_v5/live_dns/record_set.rb', line 14

class RecordSet
  include GandiV5::Data

  member :type, gandi_key: 'rrset_type'
  member :ttl, gandi_key: 'rrset_ttl'
  member :name, gandi_key: 'rrset_name'
  member :values, gandi_key: 'rrset_values'

  # Generate zone file lines for the record.
  # @return [String]
  def to_s
    values.map do |value|
      "#{name}\t#{ttl}\tIN\t#{type}\t#{value}"
    end.join("\n")
  end

  GandiV5::LiveDNS::RECORD_TYPES.each do |t|
    # Check the record type.
    # @return [Boolean]
    define_method "#{t.downcase}?" do
      type.eql?(t)
    end
  end

  # Check the TTL's value in seconds.
  # @param number [Integer] the number of second(s) to check against.
  # @return [Boolean]
  def second?(number = 1)
    ttl == number
  end
  alias seconds? second?

  # Check the TTL's value in minutes.
  # @param number [Integer] the number of minute(s) to check against.
  # @return [Boolean]
  def minute?(number = 1)
    ttl == number * 60
  end
  alias minutes? minute?

  # Check the TTL's value in hours.
  # @param number [Integer] the number of hour(s) to check against.
  # @return [Boolean]
  def hour?(number = 1)
    ttl == number * 3_600
  end
  alias hours? hour?

  # Check the TTL's value in days.
  # @param number [Integer] the number of day(s) to check against.
  # @return [Boolean]
  def day?(number = 1)
    ttl == number * 86_400
  end
  alias days? day?

  # Check the TTL's value in weeks.
  # @param number [Integer] the number of week(s) to check against.
  # @return [Boolean]
  def week?(number = 1)
    ttl == number * 604_800
  end
  alias weeks? day?
end

#ttlInteger (readonly)

Returns:

  • (Integer)


14
15
16
17
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
75
76
77
# File 'lib/gandi_v5/live_dns/record_set.rb', line 14

class RecordSet
  include GandiV5::Data

  member :type, gandi_key: 'rrset_type'
  member :ttl, gandi_key: 'rrset_ttl'
  member :name, gandi_key: 'rrset_name'
  member :values, gandi_key: 'rrset_values'

  # Generate zone file lines for the record.
  # @return [String]
  def to_s
    values.map do |value|
      "#{name}\t#{ttl}\tIN\t#{type}\t#{value}"
    end.join("\n")
  end

  GandiV5::LiveDNS::RECORD_TYPES.each do |t|
    # Check the record type.
    # @return [Boolean]
    define_method "#{t.downcase}?" do
      type.eql?(t)
    end
  end

  # Check the TTL's value in seconds.
  # @param number [Integer] the number of second(s) to check against.
  # @return [Boolean]
  def second?(number = 1)
    ttl == number
  end
  alias seconds? second?

  # Check the TTL's value in minutes.
  # @param number [Integer] the number of minute(s) to check against.
  # @return [Boolean]
  def minute?(number = 1)
    ttl == number * 60
  end
  alias minutes? minute?

  # Check the TTL's value in hours.
  # @param number [Integer] the number of hour(s) to check against.
  # @return [Boolean]
  def hour?(number = 1)
    ttl == number * 3_600
  end
  alias hours? hour?

  # Check the TTL's value in days.
  # @param number [Integer] the number of day(s) to check against.
  # @return [Boolean]
  def day?(number = 1)
    ttl == number * 86_400
  end
  alias days? day?

  # Check the TTL's value in weeks.
  # @param number [Integer] the number of week(s) to check against.
  # @return [Boolean]
  def week?(number = 1)
    ttl == number * 604_800
  end
  alias weeks? day?
end

#typeString (readonly)

Returns:

  • (String)


14
15
16
17
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
75
76
77
# File 'lib/gandi_v5/live_dns/record_set.rb', line 14

class RecordSet
  include GandiV5::Data

  member :type, gandi_key: 'rrset_type'
  member :ttl, gandi_key: 'rrset_ttl'
  member :name, gandi_key: 'rrset_name'
  member :values, gandi_key: 'rrset_values'

  # Generate zone file lines for the record.
  # @return [String]
  def to_s
    values.map do |value|
      "#{name}\t#{ttl}\tIN\t#{type}\t#{value}"
    end.join("\n")
  end

  GandiV5::LiveDNS::RECORD_TYPES.each do |t|
    # Check the record type.
    # @return [Boolean]
    define_method "#{t.downcase}?" do
      type.eql?(t)
    end
  end

  # Check the TTL's value in seconds.
  # @param number [Integer] the number of second(s) to check against.
  # @return [Boolean]
  def second?(number = 1)
    ttl == number
  end
  alias seconds? second?

  # Check the TTL's value in minutes.
  # @param number [Integer] the number of minute(s) to check against.
  # @return [Boolean]
  def minute?(number = 1)
    ttl == number * 60
  end
  alias minutes? minute?

  # Check the TTL's value in hours.
  # @param number [Integer] the number of hour(s) to check against.
  # @return [Boolean]
  def hour?(number = 1)
    ttl == number * 3_600
  end
  alias hours? hour?

  # Check the TTL's value in days.
  # @param number [Integer] the number of day(s) to check against.
  # @return [Boolean]
  def day?(number = 1)
    ttl == number * 86_400
  end
  alias days? day?

  # Check the TTL's value in weeks.
  # @param number [Integer] the number of week(s) to check against.
  # @return [Boolean]
  def week?(number = 1)
    ttl == number * 604_800
  end
  alias weeks? day?
end

#valuesArray<String> (readonly)

Returns:

  • (Array<String>)


14
15
16
17
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
75
76
77
# File 'lib/gandi_v5/live_dns/record_set.rb', line 14

class RecordSet
  include GandiV5::Data

  member :type, gandi_key: 'rrset_type'
  member :ttl, gandi_key: 'rrset_ttl'
  member :name, gandi_key: 'rrset_name'
  member :values, gandi_key: 'rrset_values'

  # Generate zone file lines for the record.
  # @return [String]
  def to_s
    values.map do |value|
      "#{name}\t#{ttl}\tIN\t#{type}\t#{value}"
    end.join("\n")
  end

  GandiV5::LiveDNS::RECORD_TYPES.each do |t|
    # Check the record type.
    # @return [Boolean]
    define_method "#{t.downcase}?" do
      type.eql?(t)
    end
  end

  # Check the TTL's value in seconds.
  # @param number [Integer] the number of second(s) to check against.
  # @return [Boolean]
  def second?(number = 1)
    ttl == number
  end
  alias seconds? second?

  # Check the TTL's value in minutes.
  # @param number [Integer] the number of minute(s) to check against.
  # @return [Boolean]
  def minute?(number = 1)
    ttl == number * 60
  end
  alias minutes? minute?

  # Check the TTL's value in hours.
  # @param number [Integer] the number of hour(s) to check against.
  # @return [Boolean]
  def hour?(number = 1)
    ttl == number * 3_600
  end
  alias hours? hour?

  # Check the TTL's value in days.
  # @param number [Integer] the number of day(s) to check against.
  # @return [Boolean]
  def day?(number = 1)
    ttl == number * 86_400
  end
  alias days? day?

  # Check the TTL's value in weeks.
  # @param number [Integer] the number of week(s) to check against.
  # @return [Boolean]
  def week?(number = 1)
    ttl == number * 604_800
  end
  alias weeks? day?
end

Instance Method Details

#day?(number = 1) ⇒ Boolean Also known as: days?, weeks?

Check the TTL’s value in days.

Parameters:

  • number (Integer) (defaults to: 1)

    the number of day(s) to check against.

Returns:

  • (Boolean)


65
66
67
# File 'lib/gandi_v5/live_dns/record_set.rb', line 65

def day?(number = 1)
  ttl == number * 86_400
end

#hour?(number = 1) ⇒ Boolean Also known as: hours?

Check the TTL’s value in hours.

Parameters:

  • number (Integer) (defaults to: 1)

    the number of hour(s) to check against.

Returns:

  • (Boolean)


57
58
59
# File 'lib/gandi_v5/live_dns/record_set.rb', line 57

def hour?(number = 1)
  ttl == number * 3_600
end

#minute?(number = 1) ⇒ Boolean Also known as: minutes?

Check the TTL’s value in minutes.

Parameters:

  • number (Integer) (defaults to: 1)

    the number of minute(s) to check against.

Returns:

  • (Boolean)


49
50
51
# File 'lib/gandi_v5/live_dns/record_set.rb', line 49

def minute?(number = 1)
  ttl == number * 60
end

#second?(number = 1) ⇒ Boolean Also known as: seconds?

Check the TTL’s value in seconds.

Parameters:

  • number (Integer) (defaults to: 1)

    the number of second(s) to check against.

Returns:

  • (Boolean)


41
42
43
# File 'lib/gandi_v5/live_dns/record_set.rb', line 41

def second?(number = 1)
  ttl == number
end

#to_sString

Generate zone file lines for the record.

Returns:

  • (String)


24
25
26
27
28
# File 'lib/gandi_v5/live_dns/record_set.rb', line 24

def to_s
  values.map do |value|
    "#{name}\t#{ttl}\tIN\t#{type}\t#{value}"
  end.join("\n")
end

#week?(number = 1) ⇒ Boolean

Check the TTL’s value in weeks.

Parameters:

  • number (Integer) (defaults to: 1)

    the number of week(s) to check against.

Returns:

  • (Boolean)


73
74
75
# File 'lib/gandi_v5/live_dns/record_set.rb', line 73

def week?(number = 1)
  ttl == number * 604_800
end