Sha256: 85e1569b41986c018a7686db1e67a68eeadba652a68220a6f350ca27da0de923
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 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 = @records - desired_records records_to_update.first(desired_records.count) end def -(records) @records.reject { |record| records.any? { |r| r.content == record.content } } end def to_a @records.dup 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
glare-0.2.2 | lib/glare/cf_dns_records.rb |