Class: Wikipedia::Client
- Inherits:
-
Object
- Object
- Wikipedia::Client
- Defined in:
- lib/wikipedia/client.rb
Constant Summary collapse
- BASE_URL =
":protocol://:domain/:path?action=:action&format=json"
Instance Attribute Summary collapse
-
#follow_redirects ⇒ Object
Returns the value of attribute follow_redirects.
Instance Method Summary collapse
- #find(title, options = {}) ⇒ Object
- #find_image(title, options = {}) ⇒ Object
- #find_random(options = {}) ⇒ Object
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #request(options) ⇒ Object
-
#request_image(title, options = {}) ⇒ Object
.
- #request_page(title, options = {}) ⇒ Object
- #request_random(options = {}) ⇒ Object
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
8 9 10 |
# File 'lib/wikipedia/client.rb', line 8 def initialize self.follow_redirects = true end |
Instance Attribute Details
#follow_redirects ⇒ Object
Returns the value of attribute follow_redirects.
6 7 8 |
# File 'lib/wikipedia/client.rb', line 6 def follow_redirects @follow_redirects end |
Instance Method Details
#find(title, options = {}) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/wikipedia/client.rb', line 12 def find( title, = {} ) title = Url.new(title).title rescue title page = Page.new( request_page( title, ) ) while follow_redirects and page.redirect? page = Page.new( request_page( page.redirect_title, ) ) end page end |
#find_image(title, options = {}) ⇒ Object
21 22 23 24 |
# File 'lib/wikipedia/client.rb', line 21 def find_image( title, = {} ) title = Url.new(title).title rescue title Page.new( request_image( title, ) ) end |
#find_random(options = {}) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/wikipedia/client.rb', line 26 def find_random( = {} ) require 'json' data = JSON::load( request_random( ) ) title = data["query"]["pages"].values[0]["title"] find( title, ) end |
#request(options) ⇒ Object
65 66 67 68 |
# File 'lib/wikipedia/client.rb', line 65 def request( ) require 'open-uri' URI.parse( url_for( ) ).read( "User-Agent" => Configuration[:user_agent] ) end |
#request_image(title, options = {}) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/wikipedia/client.rb', line 46 def request_image( title, = {} ) request( { :action => "query", :prop => "imageinfo", :iiprop => "url", :titles => title }.merge( ) ) end |
#request_page(title, options = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/wikipedia/client.rb', line 34 def request_page( title, = {} ) request( { :action => "query", :prop => %w{ info revisions links extlinks images categories coordinates templates extracts }, :rvprop => "content", :inprop => "url", :explaintext => "", :titles => title }.merge( ) ) end |
#request_random(options = {}) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/wikipedia/client.rb', line 56 def request_random( = {} ) request( { :action => "query", :generator => "random", :grnnamespace => "0", :prop => "info" }.merge( ) ) end |