class Wikiranger::Wikipedia
Constants
- DEFAULT_API_BASE_URI
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 10 def initialize(options = {}) @options = options end
Public Instance Methods
user_contributions(user)
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 14 def user_contributions(user) uri = "#{api_base_uri}/w/api.php?action=query&format=json&list=usercontribs&uclimit=max&ucuser=#{URI.escape(user)}&ucdir=older&ucprop=&ucprop=ids|title|timestamp|comment|size|sizediff" response = request(uri) if response.code.to_i != 200 unexpected_response!("Unexpected response code: #{response.code} when retrieving user contributions for #{user}") end parsed_body = JSON.parse(response.body) contributions = [] parsed_body["query"]["usercontribs"].each do |contribution| contributions.push(Wikiranger::Wikipedia::UserContribution.new(contribution)) end contributions end
Private Instance Methods
api_base_uri()
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 42 def api_base_uri options[:api_base_uri] || DEFAULT_API_BASE_URI end
http_object(uri)
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 36 def http_object(uri) http = Net::HTTP.new(uri.host, uri.port).tap do |h| h.use_ssl = (uri.scheme == "https") end end
request(uri)
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 30 def request(uri) uri = URI.parse(uri) http = http_object(uri) http.get(uri.request_uri) end
unexpected_response!(message)
click to toggle source
# File lib/wikiranger/wikipedia.rb, line 46 def unexpected_response!(message) fail Wikiranger::Wikipedia::UnexpectedResponseError, message end