class Google::Ads::GoogleAds::LookupUtil

Attributes

path_lookup_utils[R]
proto_lookup_utils[R]

Public Class Methods

new() click to toggle source
# File lib/google/ads/google_ads/lookup_util.rb, line 7
def initialize
  @proto_lookup_utils = {}
  @path_lookup_utils = {}
end

Public Instance Methods

path(version) click to toggle source

Returns a reference to the PathLookupUtil to generate resource names.

# File lib/google/ads/google_ads/lookup_util.rb, line 13
def path(version)
  path_lookup_util(version)
end

Private Instance Methods

class_for_path(path) click to toggle source

Converts complete class path into class object.

# File lib/google/ads/google_ads/lookup_util.rb, line 41
def class_for_path(path)
  path.split('::').inject(Kernel) do |scope, const_name|
    scope.const_get(const_name)
  end
end
path_lookup_util(version) click to toggle source

Load up the path lookup util for the given version, storing a copy of it if this is the first time we needed it.

# File lib/google/ads/google_ads/lookup_util.rb, line 23
def path_lookup_util(version)
  unless valid_version?(version)
    raise sprintf('Unknown version %s', version)
  end
  if path_lookup_utils[version].nil?
    path_version = version.downcase
    require sprintf('google/ads/google_ads/utils/%s/path_lookup_util',
        path_version)
    class_path = sprintf(
      'Google::Ads::GoogleAds::Utils::%s::PathLookupUtil',
      version
    )
    path_lookup_utils[version] = class_for_path(class_path).new
  end
  path_lookup_utils[version]
end
valid_version?(version) click to toggle source
# File lib/google/ads/google_ads/lookup_util.rb, line 47
def valid_version?(version)
  Google::Ads::GoogleAds.valid_version?(version)
end