Sha256: 03dd394c5bd6918f7528466c05305392d4c85e5266636961597ed1421bf658dd
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true module NovaposhtaApi class Client API_URL = 'https://api.novaposhta.ua/v2.0/json/' attr_reader :api_key def initialize(api_key: nil) @api_key = api_key end def self.resources { cities: Resources::CityResource, counterparties: Resources::CounterpartyResource, internet_documents: Resources::InternetDocumentResource, settlements: Resources::SettlementResource, warehouses: Resources::WarehouseResource } end def method_missing(name, *args, &block) if with_resource?(name) resources[name] ||= self.class.resources[name].new(connection: connection) resources[name] else super end end def respond_to_missing?(method_name, include_private = false) with_resource?(method_name) || super end def with_resource?(resource_name) self.class.resources.keys.include?(resource_name) end def resources @resources ||= {} end def connection @connection ||= NovaposhtaApi::HttpClient.new( uri: API_URL, api_key: api_key ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
novaposhta_api-0.1.2 | lib/novaposhta_api/client.rb |
novaposhta_api-0.1.1 | lib/novaposhta_api/client.rb |