module GoogleApis::Api::Base::InstanceMethods

Attributes

connection[RW]
discovered_api[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 8
def initialize(options = {})
  config, params = options.symbolize_keys.partition{|(k, v)| [:email_address, :private_key].include?(k)}.collect{|x| Hash[x]}

  @connection = config.empty? ? GoogleApis.connection : GoogleApis::Connection.new(config)
  raise Error, "Please ensure a Google API connection" unless @connection

  params = correct_params(GoogleApis.config.merge(params))

  @discovered_api = connection.discover_api self.class.api, self.class.version
  @default_params = params.select{|k, v| self.class.default_parameters.include?(k)}
end

Public Instance Methods

download(uri, to = nil) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 26
def download(uri, to = nil)
  connection.download self.class, uri, to
end
execute(api_method, *params) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 20
def execute(api_method, *params)
  params[0] = correct_params(params[0])
  params[0].reverse_merge! default_params(api_method)
  connection.execute self.class, api_method, *params
end
inspect() click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 30
def inspect
  "#<#{self.class}:#{object_hexid} #{discovered_api.version}:[#{discovered_api.discovered_resources.collect(&:name).sort.join(",")}] {#{default_params.collect{|k, v| "#{k}:#{v.inspect}"}.join(",")}}>"
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/google_apis/api/base/instance_methods.rb, line 34
def method_missing(name, *args)
  if resource = find(name)
    Resource.new self, resource
  else
    super
  end
end

Private Instance Methods

correct_params(params) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 49
def correct_params(params)
  params ? params.inject({}){|h, (k, v)| h[k.to_s.gsub(/_(.)/){$1.upcase}.to_sym] = v if v; h} : {}
end
default_params(api_method = nil) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 44
def default_params(api_method = nil)
  parameters = api_method.parameters.collect(&:to_sym) if api_method
  parameters ? @default_params.slice(*parameters) : @default_params
end
find(name) click to toggle source
# File lib/google_apis/api/base/instance_methods.rb, line 53
def find(name)
  discovered_api.discovered_resources.detect{|x| x.name == name.to_s}
end