Sha256: 4023e5cb27da185e030379322bf87d538a9b5a5763d9fd0523b3e252d21d4d0a

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require 'glare/cf_dns_record'
require 'glare/cf_dns_records/updater'

module Glare
  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 calculate(desired_records)
      Updater.new(@records.dup, desired_records.dup).calculate
    end

    def dup
      CfDnsRecords.new(@records.dup)
    end

    def contents
      @records.map(&:content)
    end

    def each
      @records.each { |record| yield(record) }
    end

    def map
      @records.map { |record| yield(record) }
    end

    def any?
      @records.any? { |record| yield(record) }
    end

    def delete_if
      @records.delete_if { |record| yield(record) }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
glare-0.4.0 lib/glare/cf_dns_records.rb