Sha256: 200b94b70299dabd5b3ce41a33a23d493e48f25cf8290e79a849f394db2e82e5
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true require 'addressable/uri' require 'addressable/template' require 'faraday' require 'faraday_middleware' module MediaWiktory::Wikipedia # Internal low-level client class, used by {Api}. # # Uses [Faraday](https://github.com/lostisland/faraday) library inside (and will expose it's settings # in future). # # You should not use it directly, all you need is in {Api}. class Client # Default MediaWiktory User-Agent header. # # You can set yours as an option to {#initialize} UA = 'MediaWiktory/0.1.0 '\ '(https://github.com/molybdenum-99/mediawiktory; zverok.offline@gmail.com)' class << self # User agent getter/setter. # # Default value is {UA}. # # You can also use per-instance option, see {#initialize} attr_accessor :user_agent end attr_reader :url def initialize(url, **options) @url = Addressable::URI.parse(url) @options = options @faraday = Faraday.new(url) do |f| f.request :url_encoded f.use FaradayMiddleware::FollowRedirects, limit: 5 f.adapter Faraday.default_adapter end @faraday.headers.merge!(headers) end def user_agent @options[:user_agent] || @options[:ua] || self.class.user_agent || UA end def get(params) @faraday.get('', params).body end def post(params) @faraday.post('', params).body end private def headers {'User-Agent' => user_agent} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mediawiktory-0.1.2 | lib/mediawiktory/wikipedia/client.rb |