wikipedia-client 1.10.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>