Sha256: 9c5a54878a74a6da4b4e3b06c99d8dcf1586e02b53c2cfe60ea0351884bb3def

Contents?: true

Size: 1.87 KB

Versions: 1

Compression:

Stored size: 1.87 KB

Contents

require "google/ads/google_ads/version_alternate"

require "google/ads/google_ads/factories/v14/resources"
require "google/ads/google_ads/factories/v14/services"
require "google/ads/google_ads/factories/v14/enums"
require "google/ads/google_ads/factories/v14/operations"

require "google/ads/google_ads/factories/v15/resources"
require "google/ads/google_ads/factories/v15/services"
require "google/ads/google_ads/factories/v15/enums"
require "google/ads/google_ads/factories/v15/operations"

module Google
  module Ads
    module GoogleAds
      module Factories
        Factory = Struct.new(:resources, :services, :enums, :operations)

        FACTORY_V14 = Factory.new(
          V14::Resources,
          V14::Services,
          V14::Enums,
          V14::Operations
        ).freeze

        FACTORY_V15 = Factory.new(
          V15::Resources,
          V15::Services,
          V15::Enums,
          V15::Operations
        ).freeze

        VERSIONS = [

          :V14,

          :V15

        ]

        HIGHEST_VERSION = :V15

        def self.version_alternate_for(type)
          unless [:resources, :services, :enums, :operations].include?(type)
            raise ArgumentError.new(
              "Dont have version alternate for #{type}, valid values are :resources, :services, :enums, :operations,  got #{type}"
            )
          end

          VersionAlternate.new(
            FACTORY_V15.public_send(type),
            {

              V14: FACTORY_V14.public_send(type),

              V15: FACTORY_V15.public_send(type)

            }
          )
        end

        def self.versions
        end

        def self.at_version(version)
          case version

          when :V14
            FACTORY_V14

          when :V15
            FACTORY_V15

          else
            raise ArgumentError.new("Got unkown version: #{version}")
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
google-ads-googleads-26.0.0 lib/google/ads/google_ads/factories.rb