Class: ProviderDSL::Zone
- Inherits:
-
Object
- Object
- ProviderDSL::Zone
- Defined in:
- lib/provider_dsl/zone.rb
Overview
Manage a DNS zone
Instance Attribute Summary collapse
-
#records ⇒ Object
readonly
Returns the value of attribute records.
Instance Method Summary collapse
- #a(ip_addresses) ⇒ Object
- #aaaa(ip_addresses) ⇒ Object
- #changed? ⇒ Boolean
- #cname(value) ⇒ Object
- #create(&block) ⇒ Object
-
#initialize(original_records, parameters = {}) ⇒ Zone
constructor
A new instance of Zone.
- #mx(values) ⇒ Object
- #name(name = nil, &block) ⇒ Object
- #new_or_changed_records ⇒ Object
- #removed_records ⇒ Object
- #to_s(prefix = '', suffix = '') ⇒ Object
- #ttl(ttl = 3600) ⇒ Object
- #txt(values) ⇒ Object
Constructor Details
#initialize(original_records, parameters = {}) ⇒ Zone
Returns a new instance of Zone.
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/provider_dsl/zone.rb', line 10 def initialize(original_records, parameters = {}) @logger = Log.instance @original_records = [] @records = [] original_records.each do |record| @original_records = add(@original_records, record) @records = add(@records, record) if parameters[:inherit_records] end @names = [] name ttl end |
Instance Attribute Details
#records ⇒ Object (readonly)
Returns the value of attribute records.
8 9 10 |
# File 'lib/provider_dsl/zone.rb', line 8 def records @records end |
Instance Method Details
#a(ip_addresses) ⇒ Object
47 48 49 |
# File 'lib/provider_dsl/zone.rb', line 47 def a(ip_addresses) record('A', ip_addresses) end |
#aaaa(ip_addresses) ⇒ Object
43 44 45 |
# File 'lib/provider_dsl/zone.rb', line 43 def aaaa(ip_addresses) record('AAAA', ip_addresses) end |
#changed? ⇒ Boolean
73 74 75 |
# File 'lib/provider_dsl/zone.rb', line 73 def changed? !(new_or_changed_records + removed_records).count.zero? end |
#cname(value) ⇒ Object
51 52 53 |
# File 'lib/provider_dsl/zone.rb', line 51 def cname(value) record('CNAME', value) end |
#create(&block) ⇒ Object
23 24 25 |
# File 'lib/provider_dsl/zone.rb', line 23 def create(&block) instance_eval(&block) end |
#mx(values) ⇒ Object
55 56 57 |
# File 'lib/provider_dsl/zone.rb', line 55 def mx(values) record('MX', values) end |
#name(name = nil, &block) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/provider_dsl/zone.rb', line 27 def name(name = nil, &block) new_names = name.nil? ? @names : [name] + @names effective_name(new_names) if block_given? saved_names = @names @names = new_names instance_eval(&block) @names = saved_names effective_name(@names) end end |
#new_or_changed_records ⇒ Object
63 64 65 |
# File 'lib/provider_dsl/zone.rb', line 63 def new_or_changed_records records.select { |record| @original_records.select { |original| original == record }.count.zero? } end |
#removed_records ⇒ Object
67 68 69 70 71 |
# File 'lib/provider_dsl/zone.rb', line 67 def removed_records @original_records.select do |original| records.select { |record| original == record }.count.zero? end end |
#to_s(prefix = '', suffix = '') ⇒ Object
77 78 79 |
# File 'lib/provider_dsl/zone.rb', line 77 def to_s(prefix = '', suffix = '') "#{prefix}#{records.join("#{suffix}\n#{prefix}")}#{suffix}" end |
#ttl(ttl = 3600) ⇒ Object
39 40 41 |
# File 'lib/provider_dsl/zone.rb', line 39 def ttl(ttl = 3600) @ttl = ttl end |
#txt(values) ⇒ Object
59 60 61 |
# File 'lib/provider_dsl/zone.rb', line 59 def txt(values) record('TXT', values) end |