class Google::DummyAPIFactory

Public Class Methods

new(name, version, method_chains) click to toggle source

Creates a new class for the API. This anonymous class should be garbage collected in ruby > 2.1 so there’s no need to worry about garbage collection.

# File lib/google/dummy_client.rb, line 52
def self.new(name, version, method_chains)
  Class.new {
    method_chains.each do |method, child_methods|
      define_method method do
        methods = Hash[child_methods.map do |m|
          [m, OpenStruct.new(request_schema: OpenStruct, name: "#{name}.#{method}.#{m}")]
        end]

        OpenStruct.new(methods.merge(name: method))
      end
    end

    define_method "discovered_resources" do
      method_chains.map { |method, _| public_send(method) }
    end
  }.new
end