Sha256: ebcc91c3ac0a6b6372f5302c2fdd8b9a6e52e4c619ada75346806ceb82413766

Contents?: true

Size: 689 Bytes

Versions: 1

Compression:

Stored size: 689 Bytes

Contents

require "ya/api/direct/constants"

module Ya::API::Direct
  class DirectServiceBase
    attr_reader :method_items, :version
    def initialize(client, methods)
      @client = client
      @method_items = methods
      init_methods
    end

    protected
    def init_methods
      @method_items.each do |method|
        self.class.send :define_method, method do |params = {}|
          result = exec_request(method, params || {})
          callback_by_result result
          result[:data]
        end
      end
    end

    def exec_request(method, request_body)
      client.gateway.request method, request_body, @version
    end

    def callback_by_result(result={})
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ya-api-direct-0.2.2 lib/ya/api/direct/direct_service_base.rb