wikipedia-client 1.9.1 → 1.14.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: 718a9f989e3e18694e4e8fb8fce03059fb946f3ddc0ef840605ccd277719efad
4
- data.tar.gz: f067e92c80d44a8e86de2c92b97b21b4b5a50b8a7eee1330c0506dd23b558ab8
3
+ metadata.gz: c57749d6568f7bb54afd4bd4e76046f0929e4a9d65a41f361fdf173acc5b8eb7
4
+ data.tar.gz: 4847192d06827db273c03a24729045afa385503992bb054ea1473340b43bb85b
5
5
  SHA512:
6
- metadata.gz: ecdaba7629a485706d95b43e2c99496a0ad93e579f4be8cf528e756ffd96f9d1e29a0e9c274069bb5e35aad7cfb61ba33b5dff4e368f28aa8c60ec48789559c9
7
- data.tar.gz: d6ffd55fd345ed1f0c52973125efcb14ec1913c29e6b5d046373d8c18bbe18b11220766ce3a6dffe32d2d0feab9248673de5f7566b6d7ad77362fd18cf3a8cba
6
+ metadata.gz: 298686f89d1f5fe977efb1764844dbeb8432cd4bcf3f1c7143e7597c8d5a316d0b7951a6ad603f4804bcab1f2101e41cd1d90ae86bb261c962c345d528e609b7
7
+ data.tar.gz: eb81094561f2f6b9a1d72a97723014018775fdbf165fe123d7f258b71eea1a2e5f2dc5b27f50fb474966d25e4436e90c7d86b7cc022db6d479bf5daa524285e0
@@ -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,171 @@
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
+
7
+ Allows you to get wikipedia content through their API. This uses the
8
+ alpha API, not the deprecated query.php API type.
9
+
10
+ Wikipedia API reference: <http://en.wikipedia.org/w/api.php>
11
+
12
+ Adopted from: <http://code.google.com/p/wikipedia-client/>
13
+
14
+ ## Installation
15
+
16
+ ```
17
+ gem install wikipedia-client
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```ruby
23
+ require 'wikipedia'
24
+ page = Wikipedia.find( 'Getting Things Done' )
25
+ #=> #<Wikipedia:Page>
26
+
27
+ page.title
28
+ #=> 'Getting Things Done'
29
+
30
+ page.fullurl
31
+ #=> 'http://en.wikipedia.org/wiki/Getting_Things_Done'
32
+
33
+ page.text
34
+ #=> 'Getting Things Done is a time-management method...'
35
+
36
+ page.content
37
+ #=> all the wiki markup appears here...
38
+
39
+ page.summary
40
+ #=> only the wiki summary appears here...
41
+
42
+ page.categories
43
+ #=> [..., "Category:Self-help books", ...]
44
+
45
+ page.links
46
+ #=> [..., "Business", "Cult following", ...]
47
+
48
+ page.extlinks
49
+ # => [..., "http://www.example.com/", ...]
50
+
51
+ page.images
52
+ #=> ["File:Getting Things Done.jpg", ...]
53
+
54
+ page.image_urls
55
+ #=> ["http://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"]
56
+
57
+ page.image_thumburls
58
+ #=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/200px-Getting_Things_Done.jpg"]
59
+
60
+ # or with custom width argument:
61
+ page.image_thumburls(100)
62
+ #=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/100px-Getting_Things_Done.jpg"]
63
+
64
+ page.image_descriptionurls
65
+ #=> ["http://en.wikipedia.org/wiki/File:Getting_Things_Done.jpg"]
66
+
67
+ page.main_image_url
68
+ #=> "https://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"
69
+
70
+ page.coordinates
71
+ #=> [48.853, 2.3498, "", "earth"]
72
+
73
+ page.templates
74
+ #=> [..., "Template:About", ...]
75
+
76
+ page.langlinks
77
+ #=> {..., "de"=>"Getting Things Done", "eo"=>"Igi aferojn finitaj", "zh"=>"尽管去做", ...}
78
+ ```
79
+
80
+ ## Configuration
81
+
82
+ This is by default configured like this:
83
+
84
+ ```ruby
85
+ Wikipedia.configure {
86
+ domain 'en.wikipedia.org'
87
+ path 'w/api.php'
88
+ }
89
+ ```
90
+
91
+ ## Advanced
92
+
93
+ See the API spec at <http://en.wikipedia.org/w/api.php>.
94
+
95
+ If you need data that is not already present, you can override parameters.
96
+
97
+ For example, to retrieve only the page info:
98
+
99
+ ```ruby
100
+ page = Wikipedia.find( 'Getting Things Done', :prop => "info" )
101
+
102
+ page.title
103
+ #=> "Getting Things Done"
104
+
105
+ page.raw_data
106
+ #=> {"query"=>{"pages"=>{"959928"=>{"pageid"=>959928, "ns"=>0,
107
+ "title"=>"Getting Things Done", "touched"=>"2010-03-10T00:04:09Z",
108
+ "lastrevid"=>348481810, "counter"=>0, "length"=>7891}}}}
109
+ ```
110
+
111
+ ## Contributing
112
+
113
+ ### Getting the code, and running the tests
114
+
115
+ ```
116
+ git clone git@github.com:kenpratt/wikipedia-client.git
117
+ cd wikipedia-client
118
+ bundle install
119
+ bundle exec spec
120
+ ```
121
+
122
+ ### Pushing a new release of the Gem
123
+
124
+ 1. Edit `lib/wikipedia/version.rb`, changing `VERSION`.
125
+ 2. Test that the current branch will work as a gem, by testing in an external directory:
126
+ 1. Make a test directory.
127
+ 2. Add a `Gemfile` with:
128
+ ```
129
+ source 'https://rubygems.org'
130
+
131
+ gem 'wikipedia-client', :path => '/path/to/local/wikipedia-client'
132
+ ```
133
+
134
+ 3. And a `test.rb` file with:
135
+ ```
136
+ require 'wikipedia'
137
+
138
+ page = Wikipedia.find('Ruby')
139
+ puts page.title
140
+ ```
141
+
142
+ 4. And then run `bundle install && bundle exec ruby test.rb`
143
+ 3. Build the gem: `bundle exec gem build wikipedia-client.gemspec`.
144
+ 4. Commit the changes: `git commit -a -m 'Version bump to 1.4.0' && git tag v1.4.0 && git push && git push --tag`
145
+ 5. Publish the result to RubyGems: `bundle exec gem push wikipedia-client-1.4.0.gem`.
146
+ 6. Test the released gem in an external directory:
147
+ 1. Make a test directory.
148
+ 2. Add a `Gemfile` with:
149
+ ```
150
+ source 'https://rubygems.org'
151
+
152
+ gem 'wikipedia-client'
153
+ ```
154
+
155
+ 3. And a `test.rb` file with:
156
+ ```
157
+ require 'wikipedia'
158
+
159
+ page = Wikipedia.find('Ruby')
160
+ puts page.title
161
+ ```
162
+
163
+ 4. And then run `bundle install && bundle exec ruby test.rb`
164
+
165
+ ## Thanks!
166
+
167
+ Copyright (c) 2008 Cyril David, released under the MIT license
168
+
169
+ Adopted by Ken Pratt (ken@kenpratt.net) in 2010/03
170
+
171
+ 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')
@@ -1,7 +1,13 @@
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
 
@@ -34,11 +40,12 @@ module Wikipedia
34
40
  def request_page( title, options = {} )
35
41
  request( {
36
42
  action: 'query',
37
- prop: %w[info revisions links extlinks images categories coordinates templates extracts pageimages],
43
+ prop: %w[info revisions links extlinks images categories coordinates templates extracts pageimages langlinks],
38
44
  rvprop: 'content',
39
45
  inprop: 'url',
40
46
  pithumbsize: 200,
41
47
  explaintext: '',
48
+ lllimit: 500,
42
49
  titles: title
43
50
  }.merge( options ) )
44
51
  end
@@ -65,7 +72,6 @@ module Wikipedia
65
72
  end
66
73
 
67
74
  def request( options )
68
- require 'open-uri'
69
75
  URI.parse( url_for( options ) ).read( 'User-Agent' => Configuration[:user_agent] )
70
76
  end
71
77
 
@@ -79,36 +85,33 @@ module Wikipedia
79
85
  }
80
86
  end
81
87
 
82
- def url_for( options )
83
- url = BASE_URL.dup
88
+ def url_for(options)
84
89
  options = configuration_options.merge( options )
85
- options.each do |key, val|
86
- value = urlify_value( val )
87
- if url.include?( ":#{key}" )
88
- url.sub! ":#{key}", value
89
- else
90
- url << "&#{key}=#{value}"
91
- end
92
- end
93
- url
90
+
91
+ url_options, query_options = split_hash(options, BASE_URL_OPTIONS)
92
+ normalized_query_options = query_options.map { |k, v| [k, normalize_value(v)] }
93
+
94
+ base_url = BASE_URL_TEMPLATE % url_options
95
+ query_string = Addressable::URI.form_encode(normalized_query_options)
96
+ base_url + '&' + query_string
94
97
  end
95
98
 
96
- def urlify_value( val )
99
+ def normalize_value( val )
97
100
  case val
98
101
  when Array
99
- encode( val.flatten.join( '|' ) )
102
+ val.flatten.join( '|' )
100
103
  else
101
- encode( val )
104
+ val
102
105
  end
103
106
  end
104
107
 
105
- def encode( val )
106
- case val
107
- when String
108
- URI.encode( val, /#{URI::UNSAFE}|[\+&]/ )
109
- else
110
- val
108
+ def split_hash(hash, keys)
109
+ h1 = {}
110
+ h2 = {}
111
+ hash.each do |k, v|
112
+ (keys.include?(k) ? h1 : h2).store(k, v)
111
113
  end
114
+ [h1, h2]
112
115
  end
113
116
  end
114
117
  end
@@ -60,6 +60,10 @@ module Wikipedia
60
60
  page['extlinks'].map { |c| c['*'] } if page['extlinks']
61
61
  end
62
62
 
63
+ def langlinks
64
+ Hash[page['langlinks'].collect { |c| [c['lang'], c['*']] }] if page['langlinks']
65
+ end
66
+
63
67
  def images
64
68
  page['images'].map { |c| c['title'] } if page['images']
65
69
  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.9.1'.freeze
2
+ VERSION = '1.14.0'.freeze
3
3
  end
@@ -0,0 +1 @@
1
+ {"continue":{"plcontinue":"46867293|0|Alkeyevsky_District","tlcontinue":"46867293|10|Infobox_Russian_town","continue":"||info|revisions|extlinks|images|categories|coordinates|extracts|pageimages|langlinks"},"warnings":{"extracts":{"*":"\"exlimit\" was too large for a whole article extracts request, lowered to 1."}},"query":{"pages":{"46867293":{"pageid":46867293,"ns":0,"title":"Innopolis","contentmodel":"wikitext","pagelanguage":"en","pagelanguagehtmlcode":"en","pagelanguagedir":"ltr","touched":"2018-03-17T20:09:26Z","lastrevid":826758180,"length":7900,"fullurl":"https://en.wikipedia.org/wiki/Innopolis","editurl":"https://en.wikipedia.org/w/index.php?title=Innopolis&action=edit","canonicalurl":"https://en.wikipedia.org/wiki/Innopolis","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Distinguish|Innopoli}}\n\n{{Infobox Russian town\n|en_name=Innopolis\n|ru_name=\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441\n|loc_name1=\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441\n|loc_lang1=Tatar\n|image_skyline=\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441. \u0422\u0435\u0445\u043d\u043e\u043f\u0430\u0440\u043a \u0438\u043c. \u0410.\u0421. \u041f\u043e\u043f\u043e\u0432\u0430.JPG\n|image_caption=A.S.&nbsp;Popov [[science park|technology park]] in Innopolis\n|coordinates = {{coord|55|44|N|48|44|E|display=inline,title}}\n|map_label_position=right\n|image_coa=\n|coa_caption=\n|image_flag=\n|flag_caption=\n|anthem=\n|anthem_ref=\n|holiday=\n|holiday_ref=\n|federal_subject=[[Republic of Tatarstan]]\n|federal_subject_ref=<ref name=\"RTatarstan_admlist\" />\n|adm_data_as_of=March 2015\n|adm_district_jur=[[Verkhneuslonsky District]]\n|adm_district_jur_ref=<ref name=\"RTatarstan_admlist\" />\n|inhabloc_cat=Town\n|inhabloc_cat_ref=<ref name=\"RTatarstan_admlist\" />\n|inhabloc_type=\n|inhabloc_type_ref=\n|mun_data_as_of=December 2014\n|mun_district_jur=Verkhneuslonsky Municipal District\n|mun_district_jur_ref=<ref name=\"RTatarstanVerkhneuslonskyD_mun\" />\n|urban_settlement_jur=Innopolis Urban Settlement\n|urban_settlement_jur_ref=<ref name=\"RTatarstanVerkhneuslonskyD_mun\" />\n|mun_admctr_of=Innopolis Urban Settlement\n|mun_admctr_of_ref=<ref name=\"RTatarstanVerkhneuslonskyD_mun\" />\n|leader_title=\n|leader_title_ref=\n|leader_name=\n|leader_name_ref=\n|representative_body=\n|representative_body_ref=\n|area_of_what=\n|area_as_of=\n|area_km2=\n|area_km2_ref=\n<!--\n|pop_2010census=did not exist in 2010\n|pop_2010census_ref=-->\n|pop_density=\n|pop_density_as_of=\n|pop_density_ref=\n|pop_latest=96\n|pop_latest_date=2016\n|pop_latest_ref=<ref name=\"2016Est\" />\n|established_date=December&nbsp;24, 2012\n|established_title=\n|established_date_ref=<ref name=\"Established\" />\n|current_cat_date=December&nbsp;16, 2014\n|current_cat_date_ref=<ref name=\"TownStatus\" />\n|postal_codes=420500\n|dialing_codes=\n|dialing_codes_ref=\n|website=http://www.innopolis.ru\n|website_ref=\n|date=June 2015\n}}\n'''Innopolis''' ({{lang-ru|\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441}}; {{lang-tt|\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441|Innopolis}}) is a [[types of inhabited localities in Russia|town]] in [[Verkhneuslonsky District]] of the [[Republic of Tatarstan]], [[Russia]], a [[satellite town|satellite]] of [[Kazan]], the [[capital city|capital]] of the republic.\n\nThis is the smallest town in Russia<ref>http://www.photokzn.ru/news/0/8880-innopolis</ref> with 96&nbsp;inhabitants according to the 2016 estimate.<ref name=\"2016Est\">Republic of Tatarstan Territorial Branch of the [[Russian Federal State Statistics Service|Federal State Statistics Service]]. [http://tatstat.gks.ru/wps/wcm/connect/rosstat_ts/tatstat/resources/4f3274804c0d84f9ab87abc621b350d8/%D0%9C%D0%9E%D1%87%D0%B8%D1%81%D0%BB2016.pdf \u0427\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e 2016&nbsp;\u0433.] {{ru icon}}</ref>\n\n==History==\n[[File:Medvedev, Nikiforov, Minnihanov in Kazan Innopolis (groundbreaking ceremony).jpeg|thumb|left|Inauguration of the Innopolis' foundation, June 2012. Left to right: [[Rustam Minnikhanov]], the [[President of the Republic of Tatarstan]]; [[Dmitry Medvedev]], the [[Prime Minister of Russia]]; [[Nikolay Nikiforov]], [[Ministry of Communications and Mass Media (Russia)|Minister of Communications and Mass Media]]]]\n\n[[File:Residental area.jpg|thumb|left|Residential area]]\n[[File:Innopolis University.jpg|thumb|left|The main building of the University of Innopolis]]\n\nInnopolis was established on December&nbsp;24, 2012<ref name=\"Established\">Resolution #2622-IV-GS</ref> as a technology park. Town status was granted to it on December&nbsp;16, 2014.<ref name=\"TownStatus\">Law #115-ZRT</ref>\n\n==Administrative and municipal status==\nWithin the [[subdivisions of Russia#Administrative divisions|framework of administrative divisions]], the [[types of inhabited localities in Russia|town]] of Innopolis is subordinated to [[Verkhneuslonsky District]].<ref name=\"RTatarstan_admlist\">Order #01-02/9</ref> As a [[subdivisions of Russia#Municipal divisions|municipal division]], Innopolis is incorporated within Verkhneuslonsky Municipal District as '''Innopolis Urban Settlement'''.<ref name=\"RTatarstanVerkhneuslonskyD_mun\">Law #19-ZRT</ref>\n\n\n==Urban Infrastructure==\nThe basis of the housing stock of Innopolis is 4 blocks of multi-storey apartment houses - 16 houses for 840 apartments - built by the State Housing Fund under the President of the Republic of Tatarstan and intended for leasing to residents of Innopolis and students.\n\nAs of the end of 2016, there was a kindergarten, a school, an IT lyceum, a sports and medical center, post offices, client offices of AK Bars and Sberbank, a beauty salon, a coffee shop and a supermarket in Innopolis.\n\n==References==\n===Notes===\n{{Reflist}}\n\n===Sources===\n*{{RussiaAdmMunRef|ta|adm|list}}\n*{{RussiaAdmMunRef|ta|mun|list|verkhneuslonsky}}\n*{{Cite Russian law\n|ru_entity=\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0421\u043e\u0432\u0435\u0442 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\n|ru_type=\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\n|ru_number=2622-IV-\u0413\u0421\n|ru_date=24 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2012 \u0433.\n|ru_title=\u041e\u0431 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430&nbsp;\u2014 \u043f\u043e\u0441\u0451\u043b\u043a\u0430 \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441 \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\n|ru_effective_date=\n|ru_published_in=\"\u0412\u0435\u0434\u043e\u043c\u043e\u0441\u0442\u0438 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0421\u043e\u0432\u0435\u0442\u0430 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\u0430\", \u211612 (III&nbsp;\u0447\u0430\u0441\u0442\u044c), \u0441\u0442.&nbsp;1926\n|ru_published_date=2012\n|ru_url=\n|en_entity=[[State Council of the Republic of Tatarstan]]\n|en_type=Resolution\n|en_number=2622-IV-GS\n|en_date=December&nbsp;24, 2012\n|en_title=On Establishing an Inhabited Locality\u2014the Settlement of Innopolis\u2014on the Territory of Verkhneuslonsky District of the Republic of Tatarstan\n|en_effective_date=\n|en_url=\n}}\n*{{Cite Russian law\n|ru_entity=\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0421\u043e\u0432\u0435\u0442 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\n|ru_type=\u0417\u0430\u043a\u043e\u043d\n|ru_number=115-\u0417\u0420\u0422\n|ru_date=13 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2014 \u0433.\n|ru_title=\u041e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0451\u043b\u043a\u0430 \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441 \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0412\u0432\u0435\u0434\u0435\u043d\u0441\u043a\u043e-\u0421\u043b\u043e\u0431\u043e\u0434\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0417\u0430\u043a\u043e\u043d \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d \"\u041e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \"\u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u0438\u0439 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d\" \u0438 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435\"\n|ru_effective_date=\u0441\u043e \u0434\u043d\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0438\u044f\n|ru_published_in=\"\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\", \u2116183\n|ru_published_date=16 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2014 \u0433\n|ru_url=\n|en_entity=[[State Council of the Republic of Tatarstan]]\n|en_type=Law\n|en_number=115-ZRT\n|en_date=December&nbsp;13, 2014\n|en_title=On the Transformation of the Settlement of Innopolis in Verkhneuslonsky District, on Changing the Borders of Several Municipal Formations, and on Transforming Vvedensko-Slobodskoye Rural Settlement in Verkhneuslonsky Municipal District, as well as Amending the Law of the Republic of Tatarstan \"On Establishing the Borders of the Territories and the Status of the Municipal Formation of \"Verkhneuslonsky Municipal District\" and of the Municipal Formations It Comprises\"\n|en_effective_date=the day of the official publication\n|en_url=\n}}\n\n{{Republic of Tatarstan}}\n{{Use mdy dates|date=June 2015}}\n\n[[Category:Cities and towns in Tatarstan]]\n[[Category:Populated places established in 2012]]\n[[Category:Naukograds]]\n[[Category:Information technology places]]"}],"links":[{"ns":0,"title":"Administrative centre"},{"ns":0,"title":"Administrative divisions of the Republic of Tatarstan"},{"ns":0,"title":"Agryz"},{"ns":0,"title":"Agryzsky District"},{"ns":0,"title":"Aksubayevo"},{"ns":0,"title":"Aksubayevsky District"},{"ns":0,"title":"Aktanyshsky District"},{"ns":0,"title":"Aktyubinsky, Republic of Tatarstan"},{"ns":0,"title":"Alexeyevskoye, Republic of Tatarstan"},{"ns":0,"title":"Alexeyevsky District, Republic of Tatarstan"}],"extlinks":[{"*":"//tools.wmflabs.org/geohack/geohack.php?pagename=Innopolis&params=55_44_N_48_44_E_region:RU-TA_type:city"},{"*":"http://pravo.tatarstan.ru"},{"*":"http://tatstat.gks.ru/wps/wcm/connect/rosstat_ts/tatstat/resources/4f3274804c0d84f9ab87abc621b350d8/%D0%9C%D0%9E%D1%87%D0%B8%D1%81%D0%BB2016.pdf"},{"*":"http://translate.google.com/translate?hl=en&sl=ru&tl=en&u=http://www.consultant.ru/cons/cgi/online.cgi?req=doc&base=LAW&n=201180"},{"*":"http://vinfo.russianpost.ru/servlet/department"},{"*":"http://www.consultant.ru/cons/cgi/online.cgi?req=doc&base=LAW&n=201180"},{"*":"http://www.innopolis.ru"},{"*":"http://www.photokzn.ru/news/0/8880-innopolis"}],"images":[{"ns":6,"title":"File:Coat of Arms of Tatarstan.svg"},{"ns":6,"title":"File:Flag of Tatarstan.svg"},{"ns":6,"title":"File:Innopolis University.jpg"},{"ns":6,"title":"File:Map of Russia - Republic of Tatarstan (2008-03).svg"},{"ns":6,"title":"File:Medvedev, Nikiforov, Minnihanov in Kazan Innopolis (groundbreaking ceremony).jpeg"},{"ns":6,"title":"File:Outline Map of Tatarstan.svg"},{"ns":6,"title":"File:Red pog.svg"},{"ns":6,"title":"File:Residental area.jpg"},{"ns":6,"title":"File:\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441. \u0422\u0435\u0445\u043d\u043e\u043f\u0430\u0440\u043a \u0438\u043c. \u0410.\u0421. \u041f\u043e\u043f\u043e\u0432\u0430.JPG"}],"categories":[{"ns":14,"title":"Category:Articles containing Russian-language text"},{"ns":14,"title":"Category:Articles containing Tatar-language text"},{"ns":14,"title":"Category:Articles with Russian-language external links"},{"ns":14,"title":"Category:Cities and towns in Tatarstan"},{"ns":14,"title":"Category:Coordinates on Wikidata"},{"ns":14,"title":"Category:Information technology places"},{"ns":14,"title":"Category:Naukograds"},{"ns":14,"title":"Category:Populated places established in 2012"},{"ns":14,"title":"Category:Use mdy dates from June 2015"}],"coordinates":[{"lat":55.73333333,"lon":48.73333333,"primary":"","globe":"earth"}],"templates":[{"ns":10,"title":"Template:Category handler"},{"ns":10,"title":"Template:Cite Russian law"},{"ns":10,"title":"Template:Coord"},{"ns":10,"title":"Template:DMCA"},{"ns":10,"title":"Template:Dated maintenance category"},{"ns":10,"title":"Template:Distinguish"},{"ns":10,"title":"Template:FULLROOTPAGENAME"},{"ns":10,"title":"Template:ISO 639 name ru"},{"ns":10,"title":"Template:Infobox"},{"ns":10,"title":"Template:Infobox Russian inhabited locality"}],"extract":"Innopolis (Russian: \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441; Tatar: Cyrillic \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441, Latin Innopolis) is a town in Verkhneuslonsky District of the Republic of Tatarstan, Russia, a satellite of Kazan, the capital of the republic.\nThis is the smallest town in Russia with 96 inhabitants according to the 2016 estimate.\n\n\n== History ==\n\nInnopolis was established on December 24, 2012 as a technology park. Town status was granted to it on December 16, 2014.\n\n\n== Administrative and municipal status ==\nWithin the framework of administrative divisions, the town of Innopolis is subordinated to Verkhneuslonsky District. As a municipal division, Innopolis is incorporated within Verkhneuslonsky Municipal District as Innopolis Urban Settlement.\n\n\n== Urban Infrastructure ==\nThe basis of the housing stock of Innopolis is 4 blocks of multi-storey apartment houses - 16 houses for 840 apartments - built by the State Housing Fund under the President of the Republic of Tatarstan and intended for leasing to residents of Innopolis and students.\nAs of the end of 2016, there was a kindergarten, a school, an IT lyceum, a sports and medical center, post offices, client offices of AK Bars and Sberbank, a beauty salon, a coffee shop and a supermarket in Innopolis.\n\n\n== References ==\n\n\n=== Notes ===\n\n\n=== Sources ===\n\u041c\u0438\u043d\u0438\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u043e \u044e\u0441\u0442\u0438\u0446\u0438\u0438 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d. \u041f\u0440\u0438\u043a\u0430\u0437 \u211601-02/9 \u043e\u0442 4 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2014 \u0433. \u00ab\u041e\u0431 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e-\u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438 \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0432 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0435 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\u00bb, \u0432 \u0440\u0435\u0434. \u041f\u0440\u0438\u043a\u0430\u0437\u0430 \u211601-02/160 \u043e\u0442 11 \u043c\u0430\u0440\u0442\u0430 2015 \u0433. \u00ab\u041e \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u041f\u0440\u0438\u043a\u0430\u0437 \u041c\u0438\u043d\u0438\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u0430 \u044e\u0441\u0442\u0438\u0446\u0438\u0438 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d \u043e\u0442 04.02.2014 \u211601-02/9 \"\u041e\u0431 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e-\u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438 \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0432 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0435 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\"\u00bb. \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d: \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u043f\u0440\u0430\u0432\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u041c\u0438\u043d\u0438\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u0430 \u044e\u0441\u0442\u0438\u0446\u0438\u0438 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d (http://pravo.tatarstan.ru), 27 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2014 \u0433. (Ministry of Justice of the Republic of Tatarstan. Order #01-02/9 of February 4, 2014 On the Adoption of the Registry of the Administrative-Territorial Units and Inhabited Localities in the Republic of Tatarstan, as amended by the Order #01-02/160 of March 11, 2015 On Amending the Order of the Ministry of Justice of the Republic of Tatarstan #01-02/9 of February 4, 2014 \"On the Adoption of the Registry of the Administrative-Territorial Units and Inhabited Localities in the Republic of Tatarstan\". ).\n\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0421\u043e\u0432\u0435\u0442 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d. \u0417\u0430\u043a\u043e\u043d \u211619-\u0417\u0420\u0422 \u043e\u0442 31 \u044f\u043d\u0432\u0430\u0440\u044f 2005 \u0433. \u00ab\u041e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \"\u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u0438\u0439 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d\" \u0438 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435\u00bb, \u0432 \u0440\u0435\u0434. \u0417\u0430\u043a\u043e\u043d\u0430 \u2116115-\u0417\u0420\u0422 \u043e\u0442 13 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2014 \u0433. \u00ab\u041e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0451\u043b\u043a\u0430 \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441 \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0412\u0432\u0435\u0434\u0435\u043d\u0441\u043a\u043e-\u0421\u043b\u043e\u0431\u043e\u0434\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0417\u0430\u043a\u043e\u043d \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d \"\u041e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \"\u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u0438\u0439 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d\" \u0438 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435\"\u00bb. \u0412\u0441\u0442\u0443\u043f\u0438\u043b \u0432 \u0441\u0438\u043b\u0443 \u0441\u043e \u0434\u043d\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d: \"\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\", \u2116\u211618\u201319, 1 \u0444\u0435\u0432\u0440\u0430\u043b\u044f 2005 \u0433. (State Council of the Republic of Tatarstan. Law #19-ZRT of January 31, 2005 On Establishing the Borders of the Territories and the Status of the Municipal Formation of \"Verkhneuslonsky Municipal District\" and of the Municipal Formations It Comprises, as amended by the Law #115-ZRT of December 13, 2014 On the Transformation of the Settlement of Innopolis in Verkhneuslonsky District, on Changing the Borders of Several Municipal Formations, and on Transforming Vvedensko-Slobodskoye Rural Settlement in Verkhneuslonsky Municipal District, as well as Amending the Law of the Republic of Tatarstan \"On Establishing the Borders of the Territories and the Status of the Municipal Formation of \"Verkhneuslonsky Municipal District\" and of the Municipal Formations It Comprises\". Effective as of the day of the official publication.).\n\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0421\u043e\u0432\u0435\u0442 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d. \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u21162622-IV-\u0413\u0421 \u043e\u0442 24 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2012 \u0433. \u00ab\u041e\u0431 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u2014 \u043f\u043e\u0441\u0451\u043b\u043a\u0430 \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441 \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\u00bb. \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d: \"\u0412\u0435\u0434\u043e\u043c\u043e\u0441\u0442\u0438 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0421\u043e\u0432\u0435\u0442\u0430 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\u0430\", \u211612 (III \u0447\u0430\u0441\u0442\u044c), \u0441\u0442. 1926, 2012. (State Council of the Republic of Tatarstan. Resolution #2622-IV-GS of December 24, 2012 On Establishing an Inhabited Locality\u2014the Settlement of Innopolis\u2014on the Territory of Verkhneuslonsky District of the Republic of Tatarstan. ).\n\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0421\u043e\u0432\u0435\u0442 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d. \u0417\u0430\u043a\u043e\u043d \u2116115-\u0417\u0420\u0422 \u043e\u0442 13 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2014 \u0433. \u00ab\u041e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0451\u043b\u043a\u0430 \u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441 \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0412\u0432\u0435\u0434\u0435\u043d\u0441\u043a\u043e-\u0421\u043b\u043e\u0431\u043e\u0434\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u044f \u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u043e\u0433\u043e \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0417\u0430\u043a\u043e\u043d \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d \"\u041e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \"\u0412\u0435\u0440\u0445\u043d\u0435\u0443\u0441\u043b\u043e\u043d\u0441\u043a\u0438\u0439 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d\" \u0438 \u043c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435\"\u00bb. \u0412\u0441\u0442\u0443\u043f\u0438\u043b \u0432 \u0441\u0438\u043b\u0443 \u0441\u043e \u0434\u043d\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d: \"\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0422\u0430\u0442\u0430\u0440\u0441\u0442\u0430\u043d\", \u2116183, 16 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2014 \u0433. (State Council of the Republic of Tatarstan. Law #115-ZRT of December 13, 2014 On the Transformation of the Settlement of Innopolis in Verkhneuslonsky District, on Changing the Borders of Several Municipal Formations, and on Transforming Vvedensko-Slobodskoye Rural Settlement in Verkhneuslonsky Municipal District, as well as Amending the Law of the Republic of Tatarstan \"On Establishing the Borders of the Territories and the Status of the Municipal Formation of \"Verkhneuslonsky Municipal District\" and of the Municipal Formations It Comprises\". Effective as of the day of the official publication.).","thumbnail":{"source":"https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/%D0%98%D0%BD%D0%BD%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%81._%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BF%D0%B0%D1%80%D0%BA_%D0%B8%D0%BC._%D0%90.%D0%A1._%D0%9F%D0%BE%D0%BF%D0%BE%D0%B2%D0%B0.JPG/200px-%D0%98%D0%BD%D0%BD%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%81._%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BF%D0%B0%D1%80%D0%BA_%D0%B8%D0%BC._%D0%90.%D0%A1._%D0%9F%D0%BE%D0%BF%D0%BE%D0%B2%D0%B0.JPG","width":200,"height":133},"pageimage":"\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441._\u0422\u0435\u0445\u043d\u043e\u043f\u0430\u0440\u043a_\u0438\u043c._\u0410.\u0421._\u041f\u043e\u043f\u043e\u0432\u0430.JPG","langlinks":[{"lang":"ba","*":"\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441"},{"lang":"bg","*":"\u0418\u043d\u043e\u043f\u043e\u043b\u0438\u0441"},{"lang":"he","*":"\u05d0\u05d9\u05e0\u05d5\u05e4\u05d5\u05dc\u05d9\u05e1"},{"lang":"hsb","*":"Innopolis"},{"lang":"lb","*":"Innopolis"},{"lang":"ru","*":"\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441"},{"lang":"tt","*":"\u0418\u043d\u043d\u043e\u043f\u043e\u043b\u0438\u0441"},{"lang":"wo","*":"Innopolis"}]}}}}
@@ -161,15 +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
- '/commons/0/00/Complex-adaptive-system.jpg',
170
- '/en/4/4d/Centrum-wiskunde-informatica-logo.png',
171
- '/commons/7/7b/An_illustration_of_the_dining_philosophers_problem.png',
172
- '/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'
173
167
  ].each do |image|
174
168
  expect(@page.image_urls).to include('https://upload.wikimedia.org/wikipedia' + image)
175
169
  end
@@ -179,13 +173,9 @@ describe Wikipedia::Client, '.find page (Edsger_Dijkstra)' do
179
173
  @client.follow_redirects = true
180
174
  @page = @client.find('Edsger Dijkstra')
181
175
  [
182
- '/en/thumb/4/4a/Commons-logo.svg/200px-Commons-logo.svg.png',
183
- '/en/thumb/4/48/Folder_Hexagonal_Icon.svg/200px-Folder_Hexagonal_Icon.svg.png',
184
176
  '/commons/thumb/5/57/Dijkstra_Animation.gif/200px-Dijkstra_Animation.gif',
185
177
  '/commons/thumb/c/c9/Edsger_Dijkstra_1994.jpg/200px-Edsger_Dijkstra_1994.jpg',
186
- '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/200px-Edsger_Wybe_Dijkstra.jpg',
187
- '/commons/thumb/0/00/Complex-adaptive-system.jpg/200px-Complex-adaptive-system.jpg',
188
- '/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'
189
179
  ].each do |image|
190
180
  expect(@page.image_thumburls).to include('https://upload.wikimedia.org/wikipedia' + image)
191
181
  end
@@ -195,13 +185,9 @@ describe Wikipedia::Client, '.find page (Edsger_Dijkstra)' do
195
185
  @client.follow_redirects = true
196
186
  @page = @client.find('Edsger Dijkstra')
197
187
  [
198
- '/en/thumb/4/4a/Commons-logo.svg/100px-Commons-logo.svg.png',
199
- '/en/thumb/4/48/Folder_Hexagonal_Icon.svg/100px-Folder_Hexagonal_Icon.svg.png',
200
188
  '/commons/thumb/5/57/Dijkstra_Animation.gif/100px-Dijkstra_Animation.gif',
201
189
  '/commons/thumb/c/c9/Edsger_Dijkstra_1994.jpg/100px-Edsger_Dijkstra_1994.jpg',
202
- '/commons/thumb/d/d9/Edsger_Wybe_Dijkstra.jpg/100px-Edsger_Wybe_Dijkstra.jpg',
203
- '/commons/thumb/0/00/Complex-adaptive-system.jpg/100px-Complex-adaptive-system.jpg',
204
- '/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'
205
191
  ].each do |image|
206
192
  expect(@page.image_thumburls(100)).to include('https://upload.wikimedia.org/wikipedia' + image)
207
193
  end
@@ -277,3 +263,25 @@ describe Wikipedia::Client, '.find page (mocked)' do
277
263
  expect(@page.image_urls).to eq(nil)
278
264
  end
279
265
  end
266
+
267
+ describe Wikipedia::Client, 'page.langlinks' do
268
+ before(:each) do
269
+ @client = Wikipedia::Client.new
270
+ @innopolis = File.read(File.dirname(__FILE__) + '/../fixtures/Innopolis.json')
271
+ expect(@client).to receive(:request).and_return(@innopolis)
272
+ end
273
+
274
+ it 'should contain langlinks' do
275
+ @page = @client.find('Innopolis')
276
+ expect(@page.langlinks).to include(
277
+ 'ba' => 'Иннополис',
278
+ 'bg' => 'Инополис',
279
+ 'he' => 'אינופוליס',
280
+ 'hsb' => 'Innopolis',
281
+ 'lb' => 'Innopolis',
282
+ 'ru' => 'Иннополис',
283
+ 'tt' => 'Иннополис',
284
+ 'wo' => 'Innopolis'
285
+ )
286
+ end
287
+ 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.9.1
4
+ version: 1.14.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-01 00:00:00.000000000 Z
16
+ date: 2021-04-29 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
@@ -135,6 +58,7 @@ files:
135
58
  - spec/fixtures/Edsger_Dijkstra_section_0.json
136
59
  - spec/fixtures/Edsger_content.txt
137
60
  - spec/fixtures/File_Edsger_Wybe_Dijkstra_jpg.json
61
+ - spec/fixtures/Innopolis.json
138
62
  - spec/fixtures/Sealand_Dynasty.json
139
63
  - spec/fixtures/sanitization_samples/Ceawlin_of_Wessex-raw.txt
140
64
  - spec/fixtures/sanitization_samples/Ceawlin_of_Wessex-sanitized.txt
@@ -174,7 +98,7 @@ homepage: http://github.com/kenpratt/wikipedia-client
174
98
  licenses:
175
99
  - MIT
176
100
  metadata: {}
177
- post_install_message:
101
+ post_install_message:
178
102
  rdoc_options:
179
103
  - "--title"
180
104
  - wikipedia-client
@@ -194,10 +118,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
118
  - !ruby/object:Gem::Version
195
119
  version: '0'
196
120
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.7.3
199
- signing_key:
200
- specification_version: 3
121
+ rubygems_version: 3.0.3
122
+ signing_key:
123
+ specification_version: 4
201
124
  summary: Ruby client for the Wikipedia API
202
125
  test_files:
203
126
  - spec/fixtures/Edsger_Dijkstra.json
@@ -205,6 +128,7 @@ test_files:
205
128
  - spec/fixtures/Edsger_Dijkstra_section_0.json
206
129
  - spec/fixtures/Edsger_content.txt
207
130
  - spec/fixtures/File_Edsger_Wybe_Dijkstra_jpg.json
131
+ - spec/fixtures/Innopolis.json
208
132
  - spec/fixtures/Sealand_Dynasty.json
209
133
  - spec/fixtures/sanitization_samples/Ceawlin_of_Wessex-raw.txt
210
134
  - spec/fixtures/sanitization_samples/Ceawlin_of_Wessex-sanitized.txt
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.9.1)
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,163 +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", ...]</code></pre>
90
-
91
- h2. Configuration
92
-
93
- This is by default configured like this:
94
-
95
- <pre><code>Wikipedia.configure {
96
- domain 'en.wikipedia.org'
97
- path 'w/api.php'
98
- }</code></pre>
99
-
100
- h2. Advanced
101
-
102
- See the API spec at "http://en.wikipedia.org/w/api.php":http://en.wikipedia.org/w/api.php
103
-
104
- If you need data that is not already present, you can override parameters.
105
-
106
- For example, to retrieve only the page info:
107
-
108
- <pre><code>page = Wikipedia.find( 'Getting Things Done', :prop => "info" )
109
-
110
- page.title
111
-
112
- => "Getting Things Done"
113
-
114
- page.raw_data
115
-
116
- => {"query"=>{"pages"=>{"959928"=>{"pageid"=>959928, "ns"=>0,
117
- "title"=>"Getting Things Done", "touched"=>"2010-03-10T00:04:09Z",
118
- "lastrevid"=>348481810, "counter"=>0, "length"=>7891}}}}</code></pre>
119
-
120
- h2. Contributing
121
-
122
- h3. Getting the code, and running the tests
123
-
124
- <pre><code>git clone git@github.com:kenpratt/wikipedia-client.git
125
- cd wikipedia-client
126
- gem install bundler
127
- bundle exec rake spec</code></pre>
128
-
129
- h3. Pushing a new release of the Gem
130
-
131
- Edit <code>lib/wikipedia/version.rb</code>, changing <code>VERSION</code>.
132
-
133
- Build the gem: <code>bundle exec gem build wikipedia-client.gemspec</code>
134
-
135
- Commit the changes: <code>git commit -a -m 'Version bump to 1.4.0' && git push</code>
136
-
137
- Publish the result to RubyGems: <code>bundle exec gem push wikipedia-client-1.4.0.gem</code>
138
-
139
- h2. Thanks!
140
-
141
- Copyright (c) 2008 [Cyril David], released under the MIT license
142
-
143
- Adopted by Ken Pratt (ken@kenpratt.net) in 2010/03
144
-
145
- h3. Contributors
146
-
147
- Aishwarya Subramanian <aishwarya923@gmail.com>
148
- Bryce <brycedneal@gmail.com>
149
- cdr-data <b_rhettbarber@yahoo.com>
150
- Christian Hellsten <christian.hellsten@gmail.com>
151
- Christopher Quackenbush <christopher@quackenbush.me>
152
- Cyril David
153
- Francesco Serra <afnecors@gmail.com>
154
- Harman Singh
155
- ivobenedito <ivobenedito@gmail.com>
156
- Justin Harrison <justin@matthin.com>
157
- Ken Pratt <ken@kenpratt.net>
158
- Manu Manu <manuisfunny@gmail.com>
159
- Mike Haugland <mike.haugland@bravenet.com>
160
- Pietro F. Menna <pietromenna@yahoo.com>
161
- Sophie Rapoport <sfrapoport@gmail.com>
162
- tsukasaoishi <tsukasa.oishi@gmail.com>
163
- V <thevalentino@gmail.com>