wikipedia-client 1.10.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2f57b0e20199f44cbca10f8257db1b647eb9ea8023a41f3a97372f39ccef57b
4
- data.tar.gz: f25d2d71dbd6ee65a0010ad27f4b39c302043c3ec8bc62a0c0a420cb123dd618
3
+ metadata.gz: af50d4fda3d70e5bd837bde17b2ca86ec4c653c92891a5088246772da4ca45b5
4
+ data.tar.gz: 6366ad0bf999ed51533fd49963b4fa6d36e7181d49fc9bab227407cc3f76300f
5
5
  SHA512:
6
- metadata.gz: 7f0ac0c87fab90725c3b2f4ce7ad850acd34e16e626f5038ce2026325d456d878f06020cd49b0582c33a041a5e74ae33a82a38e16b1392f15e6da790e2099ecf
7
- data.tar.gz: 8390e2053e615c4f599cd37fbaf1e6db33fa550a0ac78700390f47505bcd02015da87dcb0725f84481da7f18e58d9ef6e22cbe298eccdd244bd74759f33228a1
6
+ metadata.gz: d0f6e70ee49591fb4fb1238cd35ede198ff14e6efd89ddfbc972e4c7b03ff3aeabc2770c80f7981af5ec30d820ffbd5ca4a4870da944686d612134d34dacde87
7
+ data.tar.gz: 701089ac1c06f95ea5b67afba9b7d6754c967d0d4411f7b95b3f8a8f456b9adabc4ab67036be5024c70a1d21022144a5e88d4693c76d719ab3ad4bff0cd01e9d
@@ -0,0 +1,27 @@
1
+ name: Test
2
+ on:
3
+ pull_request:
4
+ push: { branches: master }
5
+
6
+ jobs:
7
+ test:
8
+ name: Ruby ${{ matrix.ruby }}
9
+ runs-on: ubuntu-latest
10
+ strategy:
11
+ matrix: { ruby: ['2.5', '2.6', '2.7', '3.0'] }
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v2
16
+
17
+ - name: Setup Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: '${{ matrix.ruby }}'
21
+ bundler-cache: true
22
+
23
+ - name: Run tests
24
+ run: bundle exec rspec
25
+
26
+ - name: Run rubocop
27
+ run: bundle exec rubocop
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  pkg/*
8
8
  coverage/
9
9
  rdoc/
10
+ Gemfile.lock
data/Gemfile CHANGED
@@ -1,2 +1,12 @@
1
1
  source 'https://rubygems.org'
2
+
3
+ gem 'jeweler'
4
+ gem 'pry'
5
+ gem 'rake'
6
+ gem 'rdoc'
7
+ gem 'rspec'
8
+ # FIXME: Remove rubocop version restriction and fix or disable cops
9
+ gem 'rubocop', '= 0.48.1'
10
+ gem 'thoughtbot-shoulda'
11
+
2
12
  gemspec
data/README.md ADDED
@@ -0,0 +1,191 @@
1
+ # Wikipedia API Client
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/wikipedia-client.svg)](https://badge.fury.io/rb/wikipedia-client)
4
+ [![Build Status](https://github.com/kenpratt/wikipedia-client/workflows/Test/badge.svg)](https://github.com/kenpratt/wikipedia-client/actions?query=workflow%3ATest)
5
+
6
+ Allows you to get wikipedia content through their API. This uses the
7
+ alpha API, not the deprecated query.php API type.
8
+
9
+ Wikipedia API reference: <http://en.wikipedia.org/w/api.php>
10
+
11
+ Adopted from: <http://code.google.com/p/wikipedia-client/>
12
+
13
+ ## Installation
14
+
15
+ ```
16
+ gem install wikipedia-client
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```ruby
22
+ require 'wikipedia'
23
+ page = Wikipedia.find( 'Getting Things Done' )
24
+ #=> #<Wikipedia:Page>
25
+
26
+ page.title
27
+ #=> 'Getting Things Done'
28
+
29
+ page.fullurl
30
+ #=> 'http://en.wikipedia.org/wiki/Getting_Things_Done'
31
+
32
+ page.text
33
+ #=> 'Getting Things Done is a time-management method...'
34
+
35
+ page.content
36
+ #=> all the wiki markup appears here...
37
+
38
+ page.summary
39
+ #=> only the wiki summary appears here...
40
+
41
+ page.categories
42
+ #=> [..., "Category:Self-help books", ...]
43
+
44
+ page.links
45
+ #=> [..., "Business", "Cult following", ...]
46
+
47
+ page.extlinks
48
+ # => [..., "http://www.example.com/", ...]
49
+
50
+ page.images
51
+ #=> ["File:Getting Things Done.jpg", ...]
52
+
53
+ page.image_urls
54
+ #=> ["http://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"]
55
+
56
+ page.image_thumburls
57
+ #=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/200px-Getting_Things_Done.jpg"]
58
+
59
+ # or with custom width argument:
60
+ page.image_thumburls(100)
61
+ #=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/100px-Getting_Things_Done.jpg"]
62
+
63
+ page.image_descriptionurls
64
+ #=> ["http://en.wikipedia.org/wiki/File:Getting_Things_Done.jpg"]
65
+
66
+ page.main_image_url
67
+ #=> "https://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"
68
+
69
+ page.coordinates
70
+ #=> [48.853, 2.3498, "", "earth"]
71
+
72
+ page.templates
73
+ #=> [..., "Template:About", ...]
74
+
75
+ page.langlinks
76
+ #=> {..., "de"=>"Getting Things Done", "eo"=>"Igi aferojn finitaj", "zh"=>"尽管去做", ...}
77
+ ```
78
+
79
+ ## Configuration
80
+
81
+ ### Global
82
+
83
+ This is by default configured like this:
84
+
85
+ ```ruby
86
+ Wikipedia.configure {
87
+ domain 'en.wikipedia.org'
88
+ path 'w/api.php'
89
+ }
90
+ ```
91
+
92
+ ### Local
93
+
94
+ If you need to query multiple wikis indiviual clients with individual configurations can be
95
+ used:
96
+
97
+ ```ruby
98
+ config_en = Wikipedia::Configuration.new(domain: 'en.wikipedia.org')
99
+ config_de = Wikipedia::Configuration.new(domain: 'de.wikipedia.org')
100
+
101
+ client_en = Wikipedia::Client.new(config_en)
102
+ client_de = Wikipedia::Client.new(config_de)
103
+ client_en.find( 'Getting Things Done' )
104
+ client_de.find( 'Buch' )
105
+ ```
106
+
107
+ ## Advanced
108
+
109
+ See the API spec at <http://en.wikipedia.org/w/api.php>.
110
+
111
+ If you need data that is not already present, you can override parameters.
112
+
113
+ For example, to retrieve only the page info:
114
+
115
+ ```ruby
116
+ page = Wikipedia.find( 'Getting Things Done', :prop => "info" )
117
+
118
+ page.title
119
+ #=> "Getting Things Done"
120
+
121
+ page.raw_data
122
+ #=> {"query"=>{"pages"=>{"959928"=>{"pageid"=>959928, "ns"=>0,
123
+ "title"=>"Getting Things Done", "touched"=>"2010-03-10T00:04:09Z",
124
+ "lastrevid"=>348481810, "counter"=>0, "length"=>7891}}}}
125
+ ```
126
+
127
+ ## Contributing
128
+
129
+ ### Getting the code, and running the tests
130
+
131
+ ```
132
+ git clone git@github.com:kenpratt/wikipedia-client.git
133
+ cd wikipedia-client
134
+ bundle install
135
+ bundle exec rspec
136
+ ```
137
+
138
+ ### Pushing a new release of the Gem
139
+
140
+ 1. Edit `lib/wikipedia/version.rb`, changing `VERSION`.
141
+ 2. Test that the current branch will work as a gem, by testing in an external directory:
142
+ 3. Make a test directory.
143
+ 4. Add a `Gemfile` with:
144
+
145
+ ```
146
+ source 'https://rubygems.org'
147
+
148
+ gem 'wikipedia-client', :path => '/path/to/local/wikipedia-client'
149
+ ```
150
+
151
+ 5. And a `test.rb` file with:
152
+
153
+ ```
154
+ require 'wikipedia'
155
+
156
+ page = Wikipedia.find('Ruby')
157
+ puts page.title
158
+ ```
159
+
160
+ 6. And then run `bundle install && bundle exec ruby test.rb`
161
+ 7. Build the gem: `bundle exec gem build wikipedia-client.gemspec`.
162
+ 8. Commit the changes: `git commit -a -m 'Version bump to 1.4.0' && git tag v1.4.0 && git push && git push --tag`
163
+ 9. Publish the result to RubyGems: `bundle exec gem push wikipedia-client-1.4.0.gem`.
164
+ 10. Test the released gem in an external directory:
165
+ 11. Make a test directory.
166
+ 12. Add a `Gemfile` with:
167
+
168
+ ```
169
+ source 'https://rubygems.org'
170
+
171
+ gem 'wikipedia-client'
172
+ ```
173
+
174
+ 13. And a `test.rb` file with:
175
+
176
+ ```
177
+ require 'wikipedia'
178
+
179
+ page = Wikipedia.find('Ruby')
180
+ puts page.title
181
+ ```
182
+
183
+ 14. And then run `bundle install && bundle exec ruby test.rb`
184
+
185
+ ## Thanks!
186
+
187
+ Copyright (c) 2008 Cyril David, released under the MIT license
188
+
189
+ Adopted by Ken Pratt (ken@kenpratt.net) in 2010/03
190
+
191
+ Thanks to all the [Contributors](https://github.com/kenpratt/wikipedia-client/graphs/contributors).
data/lib/wikipedia.rb CHANGED
@@ -1,7 +1,5 @@
1
1
  Dir[File.dirname(__FILE__) + '/wikipedia/**/*.rb'].each { |f| require f }
2
2
 
3
- require 'uri'
4
-
5
3
  module Wikipedia
6
4
  # Examples :
7
5
  # page = Wikipedia.find('Rails')
@@ -26,7 +24,7 @@ module Wikipedia
26
24
  end
27
25
 
28
26
  def self.configure(&block)
29
- Configuration.instance.instance_eval(&block)
27
+ @configuration.instance_eval(&block)
30
28
  end
31
29
 
32
30
  # rubocop:disable Style/MethodName
@@ -34,20 +32,12 @@ module Wikipedia
34
32
  configure(&block)
35
33
  end
36
34
 
37
- configure do
38
- protocol 'https'
39
- domain 'en.wikipedia.org'
40
- path 'w/api.php'
41
- user_agent(
42
- 'wikipedia-client/1.7 (https://github.com/kenpratt/wikipedia-client)'
43
- )
44
- end
45
-
46
35
  class << self
47
36
  private
48
37
 
49
38
  def client
50
- @client ||= Wikipedia::Client.new
39
+ @configuration ||= Wikipedia::Configuration.new
40
+ @client ||= Wikipedia::Client.new @configuration
51
41
  end
52
42
  end
53
43
  end
@@ -1,11 +1,18 @@
1
+ require 'addressable'
2
+ require 'cgi'
3
+ require 'open-uri'
4
+ require 'set'
5
+
1
6
  module Wikipedia
2
7
  class Client
3
8
  # see http://en.wikipedia.org/w/api.php
4
- BASE_URL = ':protocol://:domain/:path?action=:action&format=json'.freeze
9
+ BASE_URL_TEMPLATE = '%{protocol}://%{domain}/%{path}?action=%{action}&format=json'.freeze
10
+ BASE_URL_OPTIONS = Set.new([:protocol, :domain, :path, :action])
5
11
 
6
12
  attr_accessor :follow_redirects
7
13
 
8
- def initialize
14
+ def initialize(configuration = Wikipedia::Configuration.new)
15
+ @configuration = configuration
9
16
  self.follow_redirects = true
10
17
  end
11
18
 
@@ -66,50 +73,46 @@ module Wikipedia
66
73
  end
67
74
 
68
75
  def request( options )
69
- require 'open-uri'
70
- URI.parse( url_for( options ) ).read( 'User-Agent' => Configuration[:user_agent] )
76
+ URI.parse( url_for( options ) ).read( 'User-Agent' => @configuration[:user_agent] )
71
77
  end
72
78
 
73
79
  protected
74
80
 
75
81
  def configuration_options
76
82
  {
77
- protocol: Configuration[:protocol],
78
- domain: Configuration[:domain],
79
- path: Configuration[:path]
83
+ protocol: @configuration[:protocol],
84
+ domain: @configuration[:domain],
85
+ path: @configuration[:path]
80
86
  }
81
87
  end
82
88
 
83
- def url_for( options )
84
- url = BASE_URL.dup
89
+ def url_for(options)
85
90
  options = configuration_options.merge( options )
86
- options.each do |key, val|
87
- value = urlify_value( val )
88
- if url.include?( ":#{key}" )
89
- url.sub! ":#{key}", value
90
- else
91
- url << "&#{key}=#{value}"
92
- end
93
- end
94
- url
91
+
92
+ url_options, query_options = split_hash(options, BASE_URL_OPTIONS)
93
+ normalized_query_options = query_options.map { |k, v| [k, normalize_value(v)] }
94
+
95
+ base_url = BASE_URL_TEMPLATE % url_options
96
+ query_string = Addressable::URI.form_encode(normalized_query_options)
97
+ base_url + '&' + query_string
95
98
  end
96
99
 
97
- def urlify_value( val )
100
+ def normalize_value( val )
98
101
  case val
99
102
  when Array
100
- encode( val.flatten.join( '|' ) )
103
+ val.flatten.join( '|' )
101
104
  else
102
- encode( val )
105
+ val
103
106
  end
104
107
  end
105
108
 
106
- def encode( val )
107
- case val
108
- when String
109
- URI.encode( val, /#{URI::UNSAFE}|[\+&]/ )
110
- else
111
- val
109
+ def split_hash(hash, keys)
110
+ h1 = {}
111
+ h2 = {}
112
+ hash.each do |k, v|
113
+ (keys.include?(k) ? h1 : h2).store(k, v)
112
114
  end
115
+ [h1, h2]
113
116
  end
114
117
  end
115
118
  end
@@ -1,8 +1,19 @@
1
- require 'singleton'
2
-
3
1
  module Wikipedia
4
2
  class Configuration
5
- include Singleton
3
+ DEFAULT = {
4
+ protocol: 'https',
5
+ domain: 'en.wikipedia.org',
6
+ path: 'w/api.php',
7
+ user_agent: 'wikipedia-client/1.7 (https://github.com/kenpratt/wikipedia-client)'
8
+ }.freeze
9
+
10
+ def initialize(configuration = DEFAULT)
11
+ DEFAULT.merge(configuration).each { |args| send(*args) }
12
+ end
13
+
14
+ def [](directive)
15
+ send(directive)
16
+ end
6
17
 
7
18
  def self.directives(*directives)
8
19
  directives.each do |directive|
@@ -14,10 +25,6 @@ module Wikipedia
14
25
  end
15
26
  end
16
27
 
17
- def self.[](directive)
18
- instance.send(directive)
19
- end
20
-
21
28
  directives :protocol, :domain, :path, :user_agent
22
29
  end
23
30
  end
data/lib/wikipedia/url.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'uri'
2
+ require 'addressable'
3
+
1
4
  module Wikipedia
2
5
  class Url
3
6
  def initialize(wiki_url)
@@ -8,7 +11,7 @@ module Wikipedia
8
11
  return @title if @title
9
12
 
10
13
  uri = URI.parse( @wiki_url )
11
- @title = URI.decode( uri.path.sub(/\/wiki\//, '') )
14
+ @title = Addressable::URI.unencode( uri.path.sub(/\/wiki\//, '') )
12
15
  end
13
16
  end
14
17
  end
@@ -1,3 +1,3 @@
1
1
  module Wikipedia
2
- VERSION = '1.10.0'.freeze
2
+ VERSION = '1.15.0'.freeze
3
3
  end
@@ -161,14 +161,9 @@ describe Wikipedia::Client, '.find page (Edsger_Dijkstra)' do
161
161
  @client.follow_redirects = true
162
162
  @page = @client.find('Edsger Dijkstra')
163
163
  [
164
- '/en/4/4a/Commons-logo.svg',
165
- '/en/4/48/Folder_Hexagonal_Icon.svg',
166
164
  '/commons/5/57/Dijkstra_Animation.gif',
167
165
  '/commons/c/c9/Edsger_Dijkstra_1994.jpg',
168
- '/commons/d/d9/Edsger_Wybe_Dijkstra.jpg',
169
- '/en/4/4d/Centrum-wiskunde-informatica-logo.png',
170
- '/commons/7/7b/An_illustration_of_the_dining_philosophers_problem.png',
171
- '/commons/3/37/Detail_of_a_1Kb_ferrite_core_RAM-module_of_an_1960s_Electrologica_X1_computer.jpg'
166
+ '/commons/d/d9/Edsger_Wybe_Dijkstra.jpg'
172
167
  ].each do |image|
173
168
  expect(@page.image_urls).to include('https://upload.wikimedia.org/wikipedia' + image)
174
169
  end
@@ -178,12 +173,9 @@ describe Wikipedia::Client, '.find page (Edsger_Dijkstra)' do
178
173
  @client.follow_redirects = true
179
174
  @page = @client.find('Edsger Dijkstra')
180
175
  [
181
- '/en/thumb/4/4a/Commons-logo.svg/200px-Commons-logo.svg.png',
182
- '/en/thumb/4/48/Folder_Hexagonal_Icon.svg/200px-Folder_Hexagonal_Icon.svg.png',
183
176
  '/commons/thumb/5/57/Dijkstra_Animation.gif/200px-Dijkstra_Animation.gif',
184
177
  '/commons/thumb/c/c9/Edsger_Dijkstra_1994.jpg/200px-Edsger_Dijkstra_1994.jpg',
185
- '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/200px-Edsger_Wybe_Dijkstra.jpg',
186
- '/en/thumb/4/4d/Centrum-wiskunde-informatica-logo.png/200px-Centrum-wiskunde-informatica-logo.png'
178
+ '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/200px-Edsger_Wybe_Dijkstra.jpg'
187
179
  ].each do |image|
188
180
  expect(@page.image_thumburls).to include('https://upload.wikimedia.org/wikipedia' + image)
189
181
  end
@@ -193,12 +185,9 @@ describe Wikipedia::Client, '.find page (Edsger_Dijkstra)' do
193
185
  @client.follow_redirects = true
194
186
  @page = @client.find('Edsger Dijkstra')
195
187
  [
196
- '/en/thumb/4/4a/Commons-logo.svg/100px-Commons-logo.svg.png',
197
- '/en/thumb/4/48/Folder_Hexagonal_Icon.svg/100px-Folder_Hexagonal_Icon.svg.png',
198
188
  '/commons/thumb/5/57/Dijkstra_Animation.gif/100px-Dijkstra_Animation.gif',
199
189
  '/commons/thumb/c/c9/Edsger_Dijkstra_1994.jpg/100px-Edsger_Dijkstra_1994.jpg',
200
- '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/100px-Edsger_Wybe_Dijkstra.jpg',
201
- '/en/thumb/4/4d/Centrum-wiskunde-informatica-logo.png/100px-Centrum-wiskunde-informatica-logo.png'
190
+ '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/100px-Edsger_Wybe_Dijkstra.jpg'
202
191
  ].each do |image|
203
192
  expect(@page.image_thumburls(100)).to include('https://upload.wikimedia.org/wikipedia' + image)
204
193
  end
@@ -296,3 +285,21 @@ describe Wikipedia::Client, 'page.langlinks' do
296
285
  )
297
286
  end
298
287
  end
288
+
289
+ describe Wikipedia::Client, 'multiple configs' do
290
+ before(:each) do
291
+ config_en = Wikipedia::Configuration.new(domain: 'en.wikipedia.org')
292
+ config_de = Wikipedia::Configuration.new(domain: 'de.wikipedia.org')
293
+
294
+ @client_en = Wikipedia::Client.new(config_en)
295
+ @client_de = Wikipedia::Client.new(config_de)
296
+ end
297
+
298
+ it 'should return a page with the correct URL' do
299
+ @page_en = @client_en.find('Edsger_Dijkstra')
300
+ expect(@page_en.fullurl).to eq('https://en.wikipedia.org/wiki/Edsger_W._Dijkstra')
301
+
302
+ @page_de = @client_de.find('Edsger_Dijkstra')
303
+ expect(@page_de.fullurl).to eq('https://de.wikipedia.org/wiki/Edsger_W._Dijkstra')
304
+ end
305
+ end
@@ -4,7 +4,6 @@ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
4
4
  require 'wikipedia/version'
5
5
  require 'date'
6
6
 
7
- # rubocop:disable Metrics/BlockLength
8
7
  Gem::Specification.new do |s|
9
8
  s.name = 'wikipedia-client'
10
9
  s.version = Wikipedia::VERSION
@@ -19,34 +18,16 @@ Gem::Specification.new do |s|
19
18
  s.email = 'ken@kenpratt.net'
20
19
 
21
20
  s.homepage = 'http://github.com/kenpratt/wikipedia-client'
22
- s.rubygems_version = '1.8.23'
23
21
  s.summary = 'Ruby client for the Wikipedia API'
24
22
  s.platform = Gem::Platform::RUBY
25
23
  s.files = `git ls-files`.split("\n")
26
24
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
25
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
28
- s.has_rdoc = true
29
- s.extra_rdoc_files = ['README.textile']
26
+ s.extra_rdoc_files = ['README.md']
30
27
  s.bindir = 'bin'
31
28
 
32
29
  s.require_paths << 'lib'
33
30
  s.rdoc_options << '--title' << 'wikipedia-client' << '--main' << '-ri'
34
31
 
35
- s.add_development_dependency('rake', '~> 10.1')
36
- s.add_development_dependency('rspec', '~> 3.0')
37
- s.add_development_dependency('rdoc', '~> 4.0')
38
- s.add_development_dependency('jeweler', '~> 1.8')
39
- s.add_development_dependency('rubocop', '~> 0.48')
40
-
41
- if s.respond_to? :specification_version
42
- s.specification_version = 3
43
-
44
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0')
45
- s.add_development_dependency('thoughtbot-shoulda', '~> 2.11', ['>= 2.11'])
46
- else
47
- s.add_dependency('thoughtbot-shoulda', ['>= 0'])
48
- end
49
- else
50
- s.add_dependency('thoughtbot-shoulda', ['>= 0'])
51
- end
32
+ s.add_runtime_dependency 'addressable', '~> 2.7'
52
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikipedia-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril David
@@ -10,116 +10,39 @@ authors:
10
10
  - Aishwarya Subramanian
11
11
  - Pietro Menna
12
12
  - Sophie Rapoport
13
- autorequire:
13
+ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-03-25 00:00:00.000000000 Z
16
+ date: 2021-07-06 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: rake
19
+ name: addressable
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
22
  - - "~>"
23
23
  - !ruby/object:Gem::Version
24
- version: '10.1'
25
- type: :development
24
+ version: '2.7'
25
+ type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - "~>"
30
30
  - !ruby/object:Gem::Version
31
- version: '10.1'
32
- - !ruby/object:Gem::Dependency
33
- name: rspec
34
- requirement: !ruby/object:Gem::Requirement
35
- requirements:
36
- - - "~>"
37
- - !ruby/object:Gem::Version
38
- version: '3.0'
39
- type: :development
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- requirements:
43
- - - "~>"
44
- - !ruby/object:Gem::Version
45
- version: '3.0'
46
- - !ruby/object:Gem::Dependency
47
- name: rdoc
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '4.0'
53
- type: :development
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '4.0'
60
- - !ruby/object:Gem::Dependency
61
- name: jeweler
62
- requirement: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '1.8'
67
- type: :development
68
- prerelease: false
69
- version_requirements: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '1.8'
74
- - !ruby/object:Gem::Dependency
75
- name: rubocop
76
- requirement: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - "~>"
79
- - !ruby/object:Gem::Version
80
- version: '0.48'
81
- type: :development
82
- prerelease: false
83
- version_requirements: !ruby/object:Gem::Requirement
84
- requirements:
85
- - - "~>"
86
- - !ruby/object:Gem::Version
87
- version: '0.48'
88
- - !ruby/object:Gem::Dependency
89
- name: thoughtbot-shoulda
90
- requirement: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - "~>"
93
- - !ruby/object:Gem::Version
94
- version: '2.11'
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '2.11'
98
- type: :development
99
- prerelease: false
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '2.11'
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- version: '2.11'
31
+ version: '2.7'
108
32
  description: Ruby client for the Wikipedia API
109
33
  email: ken@kenpratt.net
110
34
  executables: []
111
35
  extensions: []
112
36
  extra_rdoc_files:
113
- - README.textile
37
+ - README.md
114
38
  files:
115
39
  - ".editorconfig"
40
+ - ".github/workflows/test.yml"
116
41
  - ".gitignore"
117
42
  - ".rubocop.yml"
118
- - ".travis.yml"
119
43
  - Gemfile
120
- - Gemfile.lock
121
44
  - MIT-LICENSE
122
- - README.textile
45
+ - README.md
123
46
  - Rakefile
124
47
  - init.rb
125
48
  - install.rb
@@ -175,7 +98,7 @@ homepage: http://github.com/kenpratt/wikipedia-client
175
98
  licenses:
176
99
  - MIT
177
100
  metadata: {}
178
- post_install_message:
101
+ post_install_message:
179
102
  rdoc_options:
180
103
  - "--title"
181
104
  - wikipedia-client
@@ -195,10 +118,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
118
  - !ruby/object:Gem::Version
196
119
  version: '0'
197
120
  requirements: []
198
- rubyforge_project:
199
- rubygems_version: 2.7.3
200
- signing_key:
201
- specification_version: 3
121
+ rubygems_version: 3.0.3
122
+ signing_key:
123
+ specification_version: 4
202
124
  summary: Ruby client for the Wikipedia API
203
125
  test_files:
204
126
  - spec/fixtures/Edsger_Dijkstra.json
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.0
4
- - 2.1
5
- - 2.2
6
- - 2.3
7
- - 2.4
8
- - 2.5
data/Gemfile.lock DELETED
@@ -1,93 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- wikipedia-client (1.10.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- addressable (2.3.5)
10
- ast (2.3.0)
11
- builder (3.2.2)
12
- diff-lcs (1.3)
13
- faraday (0.8.8)
14
- multipart-post (~> 1.2.0)
15
- git (1.2.6)
16
- github_api (0.10.1)
17
- addressable
18
- faraday (~> 0.8.1)
19
- hashie (>= 1.2)
20
- multi_json (~> 1.4)
21
- nokogiri (~> 1.5.2)
22
- oauth2
23
- hashie (2.0.5)
24
- highline (1.6.19)
25
- httpauth (0.2.0)
26
- jeweler (1.8.8)
27
- builder
28
- bundler (~> 1.0)
29
- git (>= 1.2.5)
30
- github_api (= 0.10.1)
31
- highline (>= 1.6.15)
32
- nokogiri (= 1.5.10)
33
- rake
34
- rdoc
35
- json (1.8.6)
36
- jwt (0.1.8)
37
- multi_json (>= 1.5)
38
- multi_json (1.8.1)
39
- multi_xml (0.5.5)
40
- multipart-post (1.2.0)
41
- nokogiri (1.5.10)
42
- oauth2 (0.9.2)
43
- faraday (~> 0.8)
44
- httpauth (~> 0.2)
45
- jwt (~> 0.1.4)
46
- multi_json (~> 1.0)
47
- multi_xml (~> 0.5)
48
- rack (~> 1.2)
49
- parser (2.4.0.0)
50
- ast (~> 2.2)
51
- powerpack (0.1.1)
52
- rack (1.5.2)
53
- rainbow (2.2.2)
54
- rake
55
- rake (10.1.0)
56
- rdoc (4.0.1)
57
- json (~> 1.4)
58
- rspec (3.0.0)
59
- rspec-core (~> 3.0.0)
60
- rspec-expectations (~> 3.0.0)
61
- rspec-mocks (~> 3.0.0)
62
- rspec-core (3.0.4)
63
- rspec-support (~> 3.0.0)
64
- rspec-expectations (3.0.4)
65
- diff-lcs (>= 1.2.0, < 2.0)
66
- rspec-support (~> 3.0.0)
67
- rspec-mocks (3.0.4)
68
- rspec-support (~> 3.0.0)
69
- rspec-support (3.0.4)
70
- rubocop (0.48.1)
71
- parser (>= 2.3.3.1, < 3.0)
72
- powerpack (~> 0.1)
73
- rainbow (>= 1.99.1, < 3.0)
74
- ruby-progressbar (~> 1.7)
75
- unicode-display_width (~> 1.0, >= 1.0.1)
76
- ruby-progressbar (1.8.1)
77
- thoughtbot-shoulda (2.11.1)
78
- unicode-display_width (1.2.1)
79
-
80
- PLATFORMS
81
- ruby
82
-
83
- DEPENDENCIES
84
- jeweler (~> 1.8)
85
- rake (~> 10.1)
86
- rdoc (~> 4.0)
87
- rspec (~> 3.0)
88
- rubocop (~> 0.48)
89
- thoughtbot-shoulda (~> 2.11, >= 2.11)
90
- wikipedia-client!
91
-
92
- BUNDLED WITH
93
- 1.15.1
data/README.textile DELETED
@@ -1,168 +0,0 @@
1
- h1. Wikipedia
2
-
3
- !https://badge.fury.io/rb/wikipedia-client.svg!:https://badge.fury.io/rb/wikipedia-client !https://travis-ci.org/kenpratt/wikipedia-client.svg?branch=master!:https://travis-ci.org/kenpratt/wikipedia-client
4
-
5
- Allows you to get wikipedia content through their API. This uses the
6
- alpha API, not the deprecated query.php API type
7
-
8
- Wikipedia API reference: "http://en.wikipedia.org/w/api.php":http://en.wikipedia.org/w/api.php
9
-
10
- Adopted from: "http://code.google.com/p/wikipedia-client/":http://code.google.com/p/wikipedia-client/
11
-
12
- h2. Installation
13
-
14
- <pre><code>gem install wikipedia-client</code></pre>
15
-
16
- h2. Examples
17
-
18
- <pre><code>require 'wikipedia'
19
- page = Wikipedia.find( 'Getting Things Done' )
20
-
21
- => #<Wikipedia:Page>
22
-
23
- page.title
24
-
25
- => 'Getting Things Done'
26
-
27
- page.fullurl
28
-
29
- => 'http://en.wikipedia.org/wiki/Getting_Things_Done'
30
-
31
- page.text
32
-
33
- => 'Getting Things Done is a time-management method...'
34
-
35
- page.content
36
-
37
- => # all the wiki markup appears here...
38
-
39
- page.summary
40
-
41
- => # only the wiki summary appears here...
42
-
43
- page.categories
44
-
45
- => [..., "Category:Self-help books", ...]
46
-
47
- page.links
48
-
49
- => [..., "Business", "Cult following", ...]
50
-
51
- page.extlinks
52
-
53
- => [..., "http://www.example.com/", ...]
54
-
55
- page.images
56
-
57
- => ["File:Getting Things Done.jpg", ...]
58
-
59
- page.image_urls
60
-
61
- => ["http://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"]
62
-
63
- default width: 200
64
-
65
- page.image_thumburls
66
-
67
- => ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/200px-Getting_Things_Done.jpg"]
68
-
69
- or with custom width argument:
70
-
71
- page.image_thumburls(100)
72
-
73
- => ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/100px-Getting_Things_Done.jpg"]
74
-
75
- page.image_descriptionurls
76
-
77
- => ["http://en.wikipedia.org/wiki/File:Getting_Things_Done.jpg"]
78
-
79
- page.main_image_url
80
-
81
- => "https://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"
82
-
83
- page.coordinates
84
-
85
- => [48.853, 2.3498, "", "earth"]
86
-
87
- page.templates
88
-
89
- => [..., "Template:About", ...]
90
-
91
- page.langlinks
92
-
93
- => {..., "de"=>"Getting Things Done", "eo"=>"Igi aferojn finitaj", "zh"=>"尽管去做", ...}</code></pre>
94
-
95
- h2. Configuration
96
-
97
- This is by default configured like this:
98
-
99
- <pre><code>Wikipedia.configure {
100
- domain 'en.wikipedia.org'
101
- path 'w/api.php'
102
- }</code></pre>
103
-
104
- h2. Advanced
105
-
106
- See the API spec at "http://en.wikipedia.org/w/api.php":http://en.wikipedia.org/w/api.php
107
-
108
- If you need data that is not already present, you can override parameters.
109
-
110
- For example, to retrieve only the page info:
111
-
112
- <pre><code>page = Wikipedia.find( 'Getting Things Done', :prop => "info" )
113
-
114
- page.title
115
-
116
- => "Getting Things Done"
117
-
118
- page.raw_data
119
-
120
- => {"query"=>{"pages"=>{"959928"=>{"pageid"=>959928, "ns"=>0,
121
- "title"=>"Getting Things Done", "touched"=>"2010-03-10T00:04:09Z",
122
- "lastrevid"=>348481810, "counter"=>0, "length"=>7891}}}}</code></pre>
123
-
124
- h2. Contributing
125
-
126
- h3. Getting the code, and running the tests
127
-
128
- <pre><code>git clone git@github.com:kenpratt/wikipedia-client.git
129
- cd wikipedia-client
130
- gem install bundler
131
- bundle exec rake spec</code></pre>
132
-
133
- h3. Pushing a new release of the Gem
134
-
135
- Edit <code>lib/wikipedia/version.rb</code>, changing <code>VERSION</code>.
136
-
137
- Build the gem: <code>bundle exec gem build wikipedia-client.gemspec</code>
138
-
139
- Commit the changes: <code>git commit -a -m 'Version bump to 1.4.0' && git push</code>
140
-
141
- Publish the result to RubyGems: <code>bundle exec gem push wikipedia-client-1.4.0.gem</code>
142
-
143
- h2. Thanks!
144
-
145
- Copyright (c) 2008 [Cyril David], released under the MIT license
146
-
147
- Adopted by Ken Pratt (ken@kenpratt.net) in 2010/03
148
-
149
- h3. Contributors
150
-
151
- Aishwarya Subramanian <aishwarya923@gmail.com>
152
- Bryce <brycedneal@gmail.com>
153
- cdr-data <b_rhettbarber@yahoo.com>
154
- Christian Hellsten <christian.hellsten@gmail.com>
155
- Christopher Quackenbush <christopher@quackenbush.me>
156
- Cyril David
157
- Francesco Serra <afnecors@gmail.com>
158
- Harman Singh
159
- ivobenedito <ivobenedito@gmail.com>
160
- Justin Harrison <justin@matthin.com>
161
- Ken Pratt <ken@kenpratt.net>
162
- Manu Manu <manuisfunny@gmail.com>
163
- Mike Haugland <mike.haugland@bravenet.com>
164
- Pietro F. Menna <pietromenna@yahoo.com>
165
- Sophie Rapoport <sfrapoport@gmail.com>
166
- tsukasaoishi <tsukasa.oishi@gmail.com>
167
- V <thevalentino@gmail.com>
168
- Ilgiz Mustafin <ilgimustafin@gmail.com>