Sha256: ec51b39b44be3d9a083b726c8889c59c24f60386ef5843d5c91dfd91a58ae658

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

require "google/ads/google_ads/version_alternate"

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

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

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

        FACTORY_V9 = Factory.new(
          V9::Resources,
          V9::Services,
          V9::Enums,
          V9::Operations
        ).freeze

        FACTORY_V10 = Factory.new(
          V10::Resources,
          V10::Services,
          V10::Enums,
          V10::Operations
        ).freeze

        VERSIONS = [

          :V9,

          :V10

        ]

        HIGHEST_VERSION = :V10

        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_V10.public_send(type),
            {

              V9: FACTORY_V9.public_send(type),

              V10: FACTORY_V10.public_send(type)

            }
          )
        end

        def self.versions
        end

        def self.at_version(version)
          case version

          when :V9
            FACTORY_V9

          when :V10
            FACTORY_V10

          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-17.0.0 lib/google/ads/google_ads/factories.rb