Sha256: 2f9c846ada94f52577261b2092216bf4cac0c2aea1143abb914d0fea60f20148
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
require 'httparty' require 'addressable/uri' require 'wp/api/endpoints' module WP::API class Client include HTTParty include Endpoints attr_accessor :host def initialize(host:, scheme: 'http') @scheme = scheme @host = host fail ':host is required' unless host.is_a?(String) && host.length > 0 end protected def get(resource, query = {}) path = url_for(resource, query) response = Client.get(path) if response.empty? raise WP::API::ResourceNotFoundError else [ response.parsed_response, response.headers ] # Already parsed. end end private def url_for(fragment, query) url = "#{@scheme}://#{@host}/wp-json/#{fragment}" url << ("?" + params(query)) unless query.empty? url end def params(query) uri = Addressable::URI.new filter_hash = {} query.each do |key, value| filter_hash["filter[#{key}]"] = value end uri.query_values = filter_hash uri.query end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wp-api-0.0.3 | lib/wp/api/client.rb |