module VkontakteApi::Resolver

A mixin for classes that will resolve other classes' objects via `#method_missing`.

Private Class Methods

included(base_class) click to toggle source

When this module is included, it undefines the `:send` instance method in the `base_class` so it can be resolved via `method_missing`.

# File lib/vkontakte_api/resolver.rb, line 26
def included(base_class)
  base_class.class_eval do
    undef_method :send
  end
end

Public Instance Methods

resolver() click to toggle source

A `Hashie::Mash` structure holding the name and token of current instance. @return [Hashie::Mash]

# File lib/vkontakte_api/resolver.rb, line 6
def resolver
  @resolver ||= Hashie::Mash.new(name: @name, token: token)
end

Private Instance Methods

call_method(args, &block) click to toggle source
# File lib/vkontakte_api/resolver.rb, line 19
def call_method(args, &block)
  create_method(args.shift).call(args.first || {}, &block)
end
create_method(name) click to toggle source
# File lib/vkontakte_api/resolver.rb, line 15
def create_method(name)
  Method.new(name, resolver: resolver)
end
create_namespace(name) click to toggle source
# File lib/vkontakte_api/resolver.rb, line 11
def create_namespace(name)
  Namespace.new(name, resolver: resolver)
end