Sha256: d68529f0de81626f1311e8d119df3690585f03acfb129b98db581adf90ee2a55
Contents?: true
Size: 926 Bytes
Versions: 8
Compression:
Stored size: 926 Bytes
Contents
module WialonApi # A mixin for classes that will resolve other classes' objects via `#method_missing`. module Resolver # A `Hashie::Mash` structure holding the name and sid of current instance. # @return [Hashie::Mash] def resolver @resolver ||= Hashie::Mash.new(name: @name, sid: sid) end private def create_namespace(name) WialonApi::Namespace.new(name, resolver: resolver) end def create_method(name) WialonApi::Method.new(name, resolver: resolver) end def call_method(args, &block) create_method(args.shift).call(args.first || {}, &block) end class << self # When this module is included, it undefines the `:send` instance method in the `base_class` # so it can be resolved via `method_missing`. def included(base_class) base_class.class_eval do undef_method :send end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems