Sha256: bf587cbd2a11a7c5b5aac7f04e8d0cc2a48fe190090f194d46bc926f4c7c3126
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true module RubyLokaliseApi module Endpoints class BaseEndpoint using RubyLokaliseApi::Utils::Classes include RubyLokaliseApi::Request attr_reader :client, :req_params, :uri BASE_URL = '' PARTIAL_URI_TEMPLATE = '{/segments*}' HTTP_METHODS = %i[get post put delete patch].freeze def initialize(client, params = {}) @query_params = params[:query].to_array @client = client @req_params = params[:req] @uri = nil end def reinitialize(query_params: nil, req_params: {}) @query_params = query_params || @query_params @req_params = req_params || @req_params @uri = partial_uri(base_query(*@query_params)) self end def base_url self.class.const_get(:BASE_URL) end def full_uri base_url + uri end # Creates methods like `do_post`, `do_get` that proxy calls to the # corresponding methods in the `Request` module HTTP_METHODS.each do |method_postfix| define_method "do_#{method_postfix}" do send method_postfix, self end end private def base_query(*_args); end def partial_uri(*_args) Addressable::Template.new partial_uri_template end def partial_uri_template self.class.const_get(:PARTIAL_URI_TEMPLATE) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby-lokalise-api-9.0.0 | lib/ruby_lokalise_api/endpoints/base_endpoint.rb |
ruby-lokalise-api-8.0.1 | lib/ruby_lokalise_api/endpoints/base_endpoint.rb |