Class: SprinkleDNS::HostedZoneEntry
- Inherits:
-
Object
- Object
- SprinkleDNS::HostedZoneEntry
- Defined in:
- lib/sprinkle_dns/hosted_zone_entry.rb
Instance Attribute Summary collapse
-
#changed_name ⇒ Object
Returns the value of attribute changed_name.
-
#changed_ttl ⇒ Object
Returns the value of attribute changed_ttl.
-
#changed_type ⇒ Object
Returns the value of attribute changed_type.
-
#changed_value ⇒ Object
Returns the value of attribute changed_value.
-
#hosted_zone ⇒ Object
Returns the value of attribute hosted_zone.
-
#name ⇒ Object
Returns the value of attribute name.
-
#new_entry ⇒ Object
Returns the value of attribute new_entry.
-
#persisted ⇒ Object
Returns the value of attribute persisted.
-
#referenced ⇒ Object
Returns the value of attribute referenced.
-
#ttl ⇒ Object
Returns the value of attribute ttl.
-
#type ⇒ Object
Returns the value of attribute type.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #changed? ⇒ Boolean
-
#initialize(type, name, value, ttl, hosted_zone) ⇒ HostedZoneEntry
constructor
A new instance of HostedZoneEntry.
- #mark_new! ⇒ Object
- #mark_referenced! ⇒ Object
- #new? ⇒ Boolean
- #new_value(new_entry) ⇒ Object
- #persisted! ⇒ Object
- #persisted? ⇒ Boolean
- #referenced? ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(type, name, value, ttl, hosted_zone) ⇒ HostedZoneEntry
Returns a new instance of HostedZoneEntry.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 8 def initialize(type, name, value, ttl, hosted_zone) @type = type @name = zonify!(name) @value = Array.wrap(value) @ttl = ttl @hosted_zone = hosted_zone @new_entry = nil raise if [@type, @name, @value, @ttl, @hosted_zone].any?(&:nil?) raise SprinkleDNS::RecordNotAString.new('Record-type should be a string') unless @type.is_a?(String) raise SprinkleDNS::RecordNotValid.new("Record #{@type} is not supported") if !valid_record_types.include?(@type) raise SprinkleDNS::TtlNotInteger.new('TTL should be an integer') unless @ttl.is_a?(Integer) @changed_type = false @changed_name = false @changed_value = false @changed_ttl = false @referenced = false @persisted = false if ['CNAME', 'MX'].include?(type) @value = @value.map!{|v| zonify!(v)} end end |
Instance Attribute Details
#changed_name ⇒ Object
Returns the value of attribute changed_name.
4 5 6 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 4 def changed_name @changed_name end |
#changed_ttl ⇒ Object
Returns the value of attribute changed_ttl.
4 5 6 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 4 def changed_ttl @changed_ttl end |
#changed_type ⇒ Object
Returns the value of attribute changed_type.
4 5 6 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 4 def changed_type @changed_type end |
#changed_value ⇒ Object
Returns the value of attribute changed_value.
4 5 6 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 4 def changed_value @changed_value end |
#hosted_zone ⇒ Object
Returns the value of attribute hosted_zone.
3 4 5 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 3 def hosted_zone @hosted_zone end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 3 def name @name end |
#new_entry ⇒ Object
Returns the value of attribute new_entry.
6 7 8 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 6 def new_entry @new_entry end |
#persisted ⇒ Object
Returns the value of attribute persisted.
5 6 7 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 5 def persisted @persisted end |
#referenced ⇒ Object
Returns the value of attribute referenced.
5 6 7 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 5 def referenced @referenced end |
#ttl ⇒ Object
Returns the value of attribute ttl.
3 4 5 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 3 def ttl @ttl end |
#type ⇒ Object
Returns the value of attribute type.
3 4 5 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 3 def type @type end |
#value ⇒ Object
Returns the value of attribute value.
3 4 5 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 3 def value @value end |
Instance Method Details
#changed? ⇒ Boolean
50 51 52 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 50 def changed? [@changed_type, @changed_name, @changed_value, @changed_ttl].any? end |
#mark_new! ⇒ Object
34 35 36 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 34 def mark_new! @changed_type, @changed_name, @changed_value, @changed_ttl = [true, true, true, true] end |
#mark_referenced! ⇒ Object
54 55 56 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 54 def mark_referenced! @referenced = true end |
#new? ⇒ Boolean
38 39 40 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 38 def new? [@changed_type, @changed_name, @changed_value, @changed_ttl].all? end |
#new_value(new_entry) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 62 def new_value(new_entry) if new_entry.class == SprinkleDNS::HostedZoneEntry @changed_value = true if @value.sort != new_entry.value.sort @changed_ttl = true if @ttl != new_entry.ttl else @changed_value = true @changed_ttl = true end # TODO test this if @changed_value || @changed_ttl @new_entry = new_entry end self.changed? end |
#persisted! ⇒ Object
42 43 44 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 42 def persisted! @persisted = true end |
#persisted? ⇒ Boolean
46 47 48 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 46 def persisted? @persisted end |
#referenced? ⇒ Boolean
58 59 60 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 58 def referenced? @referenced end |
#to_s ⇒ Object
79 80 81 82 83 84 85 86 87 88 |
# File 'lib/sprinkle_dns/hosted_zone_entry.rb', line 79 def to_s [ "Entry", sprintf("%4s", type), sprintf("%30s", name), sprintf("%50s", value.join(", ")), sprintf("%6s", ttl), sprintf("%6s", hosted_zone), ].join(" ") end |