Sha256: 7e756298bd35db88ae3dbe3347dd528b35ce6408c7e65e35a2afd681c4d61e60
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module Glare class CfDnsRecord def initialize(id:, name:, type:, content:) @id = id @name = name @type = type @content = content end attr_reader :id, :name, :type, :content end class CfDnsRecords class << self def from_result(api_response) result = api_response.result records = result.map do |item| CfDnsRecord.new( id: item['id'], name: item['name'], type: item['type'], content: item['content'] ) end new(records) end def empty new([]) end end def initialize(records) @records = records end def to_update(desired_records) records_to_update = desired_records.count records = @records.first(records_to_update) records.reject do |record| desired_records.any? { |r| r.content == record.content } end end def count @records.count end def contents @records.map(&:content) end def each @records.each { |record| yield(record) } end def to_delete(target_number) records_to_delete = count - target_number return CfDnsRecords.empty if records_to_delete < 0 @records.last(records_to_delete) end def to_create(desired_records) desired_records.drop(count) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
glare-0.2.1 | lib/glare/cf_dns_records.rb |
glare-0.2.0 | lib/glare/cf_dns_records.rb |