1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/rackspace/models/dns/records.rb
Paul Thornthwaite 2e0b7e545a Standardise empty lines throughout codebase
Done with `rubocop --auto-correct --only EmptyLineBetweenDefs,EmptyLines,EmptyLinesAroundBody`
2014-05-26 14:20:02 +01:00

58 lines
1.4 KiB
Ruby

require 'fog/core/collection'
require 'fog/rackspace/models/dns/record'
module Fog
module DNS
class Rackspace
class Records < Fog::Collection
attribute :zone
attribute :total_entries, :aliases => 'totalEntries'
model Fog::DNS::Rackspace::Record
def all
requires :zone
data = service.list_records(zone.identity)
load(data.body['records'])
end
alias :each_record_this_page :each
def each
requires :zone
return self unless block_given?
entries = 0
begin
body = service.list_records(zone.id, :offset => entries).body
entries += body['records'].size
self.merge_attributes(body)
subset = dup.load(body['records'])
subset.each_record_this_page {|record| yield record }
end while entries < total_entries
self
end
def get(record_id)
requires :zone
data = service.list_record_details(zone.identity, record_id).body
new(data)
#nil or empty string will trigger an argument error
rescue ArgumentError
nil
rescue Fog::DNS::Rackspace::NotFound
nil
end
def new(attributes = {})
requires :zone
super({ :zone => zone }.merge!(attributes))
end
end
end
end
end