mediawiki-gateway 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YWFlYzhhOWFmYmJiOWEwOTI5OTlhZGRhOGQ1NWM3MjgyYmE0YjJhMQ==
5
+ data.tar.gz: !binary |-
6
+ NzgzNDFiMTg2MzI4ZTM5MmQ4MzcxOTZjNzJlMGU5Zjg0ODFmMmI2Mw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NWQ4NGIxOWU4NTcwYjJiZjJiOTM5OGMxNmIyMWFjMjU3YmQ1ZjMzYjViMjMz
10
+ ZmJkODYwYTBhYzI3NTU2NzNkYzQ0YzNjZTFkNzcwZGM0YjI3NWI5MGZkNzYx
11
+ YTAyNTU4MjEzYjBhMGM5YzM1YTVhZGM5NGM0ZWM1MjhkN2JjZjg=
12
+ data.tar.gz: !binary |-
13
+ OTM1MTM5YmZmZDI4YTM3YmVhZjlmZDc4OTkwZjk2MDE0M2Y5Yjk2YzYyNzdh
14
+ MTUxNDJjNzdiYTc0OTQwMDM0MTEzYmFkMTA4MDg3NDA1NzgwYmRhN2JlODgx
15
+ YjY1OGRjMTU3N2JiODdmZGQxMmJiNGUzY2JhZDI4MWNhODE1MTc=
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p448
data/Gemfile CHANGED
@@ -1,6 +1,16 @@
1
- # A sample Gemfile
2
1
  source "https://rubygems.org"
3
2
 
4
- gemspec
3
+ gem 'rest-client', '>= 1.3.0'
4
+ gem 'activesupport'
5
5
 
6
- # gem "rails"
6
+ group :development do
7
+ gem 'atomic'
8
+ gem 'jeweler'
9
+ gem 'sham_rack'
10
+ gem 'rr'
11
+ gem 'simplecov'
12
+ gem 'rspec', '~> 1.3'
13
+ gem 'debugger'
14
+ gem 'sinatra'
15
+ gem 'activemodel'
16
+ end
data/Gemfile.lock CHANGED
@@ -1,11 +1,3 @@
1
- PATH
2
- remote: .
3
- specs:
4
- mediawiki-gateway (0.5.2)
5
- activesupport
6
- mediawiki-gateway
7
- rest-client (>= 1.3.0)
8
-
9
1
  GEM
10
2
  remote: https://rubygems.org/
11
3
  specs:
@@ -15,15 +7,15 @@ GEM
15
7
  activesupport (3.2.8)
16
8
  i18n (~> 0.6)
17
9
  multi_json (~> 1.0)
10
+ atomic (1.1.16)
18
11
  builder (3.0.0)
19
12
  columnize (0.3.6)
20
- debugger (1.2.0)
13
+ debugger (1.6.1)
21
14
  columnize (>= 0.3.1)
22
- debugger-linecache (~> 1.1.1)
23
- debugger-ruby_core_source (~> 1.1.3)
24
- debugger-linecache (1.1.2)
25
- debugger-ruby_core_source (>= 1.1.1)
26
- debugger-ruby_core_source (1.1.3)
15
+ debugger-linecache (~> 1.2.0)
16
+ debugger-ruby_core_source (~> 1.2.3)
17
+ debugger-linecache (1.2.0)
18
+ debugger-ruby_core_source (1.2.3)
27
19
  git (1.2.5)
28
20
  i18n (0.6.0)
29
21
  jeweler (1.8.4)
@@ -61,9 +53,11 @@ PLATFORMS
61
53
 
62
54
  DEPENDENCIES
63
55
  activemodel
56
+ activesupport
57
+ atomic
64
58
  debugger
65
59
  jeweler
66
- mediawiki-gateway!
60
+ rest-client (>= 1.3.0)
67
61
  rr
68
62
  rspec (~> 1.3)
69
63
  sham_rack
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) Jani Patokallio and Lonely Planet 2010-2013
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README CHANGED
@@ -29,8 +29,13 @@ To compile and test MediaWiki::Gateway locally, Bundler and Ruby 1.9+ are expect
29
29
 
30
30
  rvm install 1.9.3-p194
31
31
  bundle install
32
+
33
+ This will list the available options:
32
34
  bundle exec rake -T
33
35
 
36
+ To build and install the gem use:
37
+ bundle exec rake install
38
+
34
39
  == Status
35
40
 
36
41
  This gem is no longer in active development. Bugs will be fixed if reported, and pull requests that add new features are more than welcome, but asking for new features is unlikely to make them materialize out of thin air.
data/Rakefile CHANGED
@@ -35,16 +35,6 @@ begin
35
35
  gemspec.homepage = "http://github.com/jpatokal/mediawiki-gateway"
36
36
  gemspec.authors = ["Jani Patokallio"]
37
37
  gemspec.version = MediaWiki::VERSION
38
- gemspec.add_dependency 'rest-client', '>= 1.3.0'
39
- gemspec.add_dependency 'activesupport'
40
- gemspec.add_development_dependency 'jeweler'
41
- gemspec.add_development_dependency 'sham_rack'
42
- gemspec.add_development_dependency 'rr'
43
- gemspec.add_development_dependency 'simplecov'
44
- gemspec.add_development_dependency 'rspec', '~> 1.3'
45
- gemspec.add_development_dependency 'debugger'
46
- gemspec.add_development_dependency 'sinatra'
47
- gemspec.add_development_dependency 'activemodel'
48
38
  end
49
39
  rescue LoadError
50
40
  puts "Jeweler not available. Install it with: gem install jeweler"
data/lib/media_wiki.rb CHANGED
@@ -5,5 +5,5 @@ require File.dirname(__FILE__) + '/media_wiki/utils'
5
5
  require File.dirname(__FILE__) + '/media_wiki/gateway'
6
6
 
7
7
  module MediaWiki
8
- VERSION = "0.5.2"
8
+ VERSION = "0.6.0"
9
9
  end
@@ -132,8 +132,17 @@ module MediaWiki
132
132
  # * [:overwrite] Allow overwriting existing pages
133
133
  # * [:summary] Edit summary for history, string
134
134
  # * [:token] Use this existing edit token instead requesting a new one (useful for bulk loads)
135
+ # * [:minor] Mark this edit as "minor" if true, mark this edit as "major" if false, leave major/minor status by default if not specified
136
+ # * [:notminor] Mark this edit as "major" if true
137
+ # * [:bot] Set the bot parameter (see http://www.mediawiki.org/wiki/API:Edit#Parameters). Defaults to false.
135
138
  def create(title, content, options={})
136
139
  form_data = {'action' => 'edit', 'title' => title, 'text' => content, 'summary' => (options[:summary] || ""), 'token' => get_token('edit', title)}
140
+ if @options[:bot] or options[:bot]
141
+ form_data['bot'] = '1'
142
+ form_data['assert'] = 'bot'
143
+ end
144
+ form_data['minor'] = '1' if options[:minor]
145
+ form_data['notminor'] = '1' if options[:minor] == false or options[:notminor]
137
146
  form_data['createonly'] = "" unless options[:overwrite]
138
147
  form_data['section'] = options[:section].to_s if options[:section]
139
148
  make_api_request(form_data)
@@ -507,6 +516,52 @@ module MediaWiki
507
516
  nil
508
517
  end
509
518
  end
519
+
520
+ # Get list of interlanguage links for given article[s]. Follows redirects. Returns a hash like { 'id' => 'Yerusalem', 'en' => 'Jerusalem', ... }
521
+ #
522
+ # _article_or_pageid_ is the title or pageid of a single article
523
+ # _lllimit_ is the maximum number of langlinks to return (defaults to 500, the maximum)
524
+ #
525
+ # Example:
526
+ # langlinks = mw.langlinks('Jerusalem')
527
+ def langlinks(article_or_pageid, lllimit = 500)
528
+ form_data = {'action' => 'query', 'prop' => 'langlinks', 'lllimit' => lllimit, 'redirects' => true}
529
+ case article_or_pageid
530
+ when Fixnum
531
+ form_data['pageids'] = article_or_pageid
532
+ else
533
+ form_data['titles'] = article_or_pageid
534
+ end
535
+ xml, dummy = make_api_request(form_data)
536
+ page = xml.elements["query/pages/page"]
537
+ if valid_page? page
538
+ if xml.elements["query/redirects/r"]
539
+ # We're dealing with the redirect here.
540
+ langlinks(page.attributes["pageid"].to_i, lllimit)
541
+ else
542
+ langl = REXML::XPath.match(page, 'langlinks/ll')
543
+ if langl.nil?
544
+ nil
545
+ else
546
+ links = {}
547
+ langl.each{ |ll| links[ll.attributes["lang"]] = ll.children[0].to_s }
548
+ return links
549
+ end
550
+ end
551
+ else
552
+ nil
553
+ end
554
+ end
555
+
556
+ # Convenience wrapper for _langlinks_ returning the title in language _lang_ (ISO code) for a given article of pageid, if it exists, via the interlanguage link
557
+ #
558
+ # Example:
559
+ #
560
+ # langlink = mw.langlink_for_lang('Tycho Brahe', 'de')
561
+ def langlink_for_lang(article_or_pageid, lang)
562
+ return langlinks(article_or_pageid)[lang]
563
+ end
564
+
510
565
  # Requests image info from MediaWiki. Follows redirects.
511
566
  #
512
567
  # _file_name_or_page_id_ should be either:
@@ -665,6 +720,40 @@ module MediaWiki
665
720
  end
666
721
  end
667
722
 
723
+ # Create a new account
724
+ #
725
+ # [options] is +Hash+ passed as query arguments. See https://www.mediawiki.org/wiki/API:Account_creation#Parameters for more information.
726
+ def create_account(options)
727
+ form_data = options.merge({ 'action' => 'createaccount' })
728
+ res, dummy = make_api_request(form_data)
729
+ res
730
+ end
731
+
732
+ # Sets options for currenlty logged in user
733
+ #
734
+ # [changes] a +Hash+ that will be transformed into an equal sign and pipe-separated key value parameter
735
+ # [optionname] a +String+ indicating which option to change (optional)
736
+ # [optionvalue] the new value for optionname - allows pipe characters (optional)
737
+ # [reset] a +Boolean+ indicating if all preferences should be reset to site defaults (optional)
738
+ def options(changes = {}, optionname = nil, optionvalue = nil, reset = false)
739
+ form_data = { 'action' => 'options', 'token' => get_options_token }
740
+
741
+ if changes.present?
742
+ form_data['change'] = changes.map { |key, value| "#{key}=#{value}" }.join('|')
743
+ end
744
+
745
+ if optionname.present?
746
+ form_data[optionname] = optionvalue
747
+ end
748
+
749
+ if reset
750
+ form_data['reset'] = true
751
+ end
752
+
753
+ res, dummy = make_api_request(form_data)
754
+ res
755
+ end
756
+
668
757
  # Set groups for a user
669
758
  #
670
759
  # [user] Username of user to modify
@@ -729,6 +818,12 @@ module MediaWiki
729
818
  token
730
819
  end
731
820
 
821
+ def get_options_token
822
+ form_data = { 'action' => 'tokens', 'type' => 'options' }
823
+ res, dummy = make_api_request(form_data)
824
+ res.elements['tokens'].attributes['optionstoken']
825
+ end
826
+
732
827
  def userrights(user, token, groups_to_add, groups_to_remove, reason)
733
828
  # groups_to_add and groups_to_remove can be a string or an array. Turn them into MediaWiki's pipe-delimited list format.
734
829
  if groups_to_add.is_a? Array
@@ -784,7 +879,6 @@ module MediaWiki
784
879
  if form_data.kind_of? Hash
785
880
  form_data['format'] = 'xml'
786
881
  form_data['maxlag'] = @options[:maxlag]
787
- form_data['bot']="1" if @options[:bot]
788
882
  end
789
883
  http_send(@wiki_url, form_data, @headers.merge({:cookies => @cookies})) do |response, &block|
790
884
  if response.code == 503 and retry_count < @options[:retry_count]
@@ -795,15 +889,32 @@ module MediaWiki
795
889
  # Check response for errors and return XML
796
890
  raise MediaWiki::Exception.new "Bad response: #{response}" unless response.code >= 200 and response.code < 300
797
891
  doc = get_response(response.dup)
798
- if(form_data['action'] == 'login')
799
- login_result = doc.elements["login"].attributes['result']
892
+ action = form_data['action']
893
+
894
+ # login and createaccount actions require a second request with a token received on the first request
895
+ if %w(login createaccount).include?(action)
896
+ action_result = doc.elements[action].attributes['result']
800
897
  @cookies.merge!(response.cookies)
801
- case login_result
802
- when "Success" then # do nothing
803
- when "NeedToken" then make_api_request(form_data.merge('lgtoken' => doc.elements["login"].attributes["token"]))
804
- else raise Unauthorized.new "Login failed: " + login_result
805
- end
898
+
899
+ case action_result.downcase
900
+ when "success" then
901
+ return [doc, false]
902
+ when "needtoken"
903
+ token = doc.elements[action].attributes["token"]
904
+ if action == 'login'
905
+ return make_api_request(form_data.merge('lgtoken' => token))
906
+ elsif action == 'createaccount'
907
+ return make_api_request(form_data.merge('token' => token))
908
+ end
909
+ else
910
+ if action == 'login'
911
+ raise Unauthorized.new("Login failed: #{action_result}")
912
+ elsif action == 'createaccount'
913
+ raise Unauthorized.new("Account creation failed: #{action_result}")
914
+ end
915
+ end
806
916
  end
917
+
807
918
  continue = (continue_xpath and doc.elements['query-continue']) ? REXML::XPath.first(doc, continue_xpath).value : nil
808
919
  return [doc, continue]
809
920
  end
@@ -2,23 +2,28 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: mediawiki-gateway 0.6.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "mediawiki-gateway"
8
- s.version = "0.5.2"
9
+ s.version = "0.6.0"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Jani Patokallio"]
12
- s.date = "2013-07-29"
14
+ s.date = "2014-03-25"
13
15
  s.description = ""
14
16
  s.email = "jpatokal@iki.fi"
15
17
  s.extra_rdoc_files = [
18
+ "LICENSE",
16
19
  "README"
17
20
  ]
18
21
  s.files = [
22
+ ".ruby-version",
19
23
  ".rvmrc",
20
24
  "Gemfile",
21
25
  "Gemfile.lock",
26
+ "LICENSE",
22
27
  "README",
23
28
  "Rakefile",
24
29
  "config/hosts.yml",
@@ -50,25 +55,16 @@ Gem::Specification.new do |s|
50
55
  "spec/utils_spec.rb"
51
56
  ]
52
57
  s.homepage = "http://github.com/jpatokal/mediawiki-gateway"
53
- s.require_paths = ["lib"]
54
- s.rubygems_version = "1.8.10"
58
+ s.rubygems_version = "2.2.2"
55
59
  s.summary = "Connect to the mediawiki API"
56
60
 
57
61
  if s.respond_to? :specification_version then
58
- s.specification_version = 3
62
+ s.specification_version = 4
59
63
 
60
64
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_runtime_dependency(%q<mediawiki-gateway>, [">= 0"])
62
- s.add_development_dependency(%q<jeweler>, [">= 0"])
63
- s.add_development_dependency(%q<sham_rack>, [">= 0"])
64
- s.add_development_dependency(%q<rr>, [">= 0"])
65
- s.add_development_dependency(%q<simplecov>, [">= 0"])
66
- s.add_development_dependency(%q<rspec>, ["~> 1.3"])
67
- s.add_development_dependency(%q<debugger>, [">= 0"])
68
- s.add_development_dependency(%q<sinatra>, [">= 0"])
69
- s.add_development_dependency(%q<activemodel>, [">= 0"])
70
65
  s.add_runtime_dependency(%q<rest-client>, [">= 1.3.0"])
71
66
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
67
+ s.add_development_dependency(%q<atomic>, [">= 0"])
72
68
  s.add_development_dependency(%q<jeweler>, [">= 0"])
73
69
  s.add_development_dependency(%q<sham_rack>, [">= 0"])
74
70
  s.add_development_dependency(%q<rr>, [">= 0"])
@@ -78,17 +74,9 @@ Gem::Specification.new do |s|
78
74
  s.add_development_dependency(%q<sinatra>, [">= 0"])
79
75
  s.add_development_dependency(%q<activemodel>, [">= 0"])
80
76
  else
81
- s.add_dependency(%q<mediawiki-gateway>, [">= 0"])
82
- s.add_dependency(%q<jeweler>, [">= 0"])
83
- s.add_dependency(%q<sham_rack>, [">= 0"])
84
- s.add_dependency(%q<rr>, [">= 0"])
85
- s.add_dependency(%q<simplecov>, [">= 0"])
86
- s.add_dependency(%q<rspec>, ["~> 1.3"])
87
- s.add_dependency(%q<debugger>, [">= 0"])
88
- s.add_dependency(%q<sinatra>, [">= 0"])
89
- s.add_dependency(%q<activemodel>, [">= 0"])
90
77
  s.add_dependency(%q<rest-client>, [">= 1.3.0"])
91
78
  s.add_dependency(%q<activesupport>, [">= 0"])
79
+ s.add_dependency(%q<atomic>, [">= 0"])
92
80
  s.add_dependency(%q<jeweler>, [">= 0"])
93
81
  s.add_dependency(%q<sham_rack>, [">= 0"])
94
82
  s.add_dependency(%q<rr>, [">= 0"])
@@ -99,17 +87,9 @@ Gem::Specification.new do |s|
99
87
  s.add_dependency(%q<activemodel>, [">= 0"])
100
88
  end
101
89
  else
102
- s.add_dependency(%q<mediawiki-gateway>, [">= 0"])
103
- s.add_dependency(%q<jeweler>, [">= 0"])
104
- s.add_dependency(%q<sham_rack>, [">= 0"])
105
- s.add_dependency(%q<rr>, [">= 0"])
106
- s.add_dependency(%q<simplecov>, [">= 0"])
107
- s.add_dependency(%q<rspec>, ["~> 1.3"])
108
- s.add_dependency(%q<debugger>, [">= 0"])
109
- s.add_dependency(%q<sinatra>, [">= 0"])
110
- s.add_dependency(%q<activemodel>, [">= 0"])
111
90
  s.add_dependency(%q<rest-client>, [">= 1.3.0"])
112
91
  s.add_dependency(%q<activesupport>, [">= 0"])
92
+ s.add_dependency(%q<atomic>, [">= 0"])
113
93
  s.add_dependency(%q<jeweler>, [">= 0"])
114
94
  s.add_dependency(%q<sham_rack>, [">= 0"])
115
95
  s.add_dependency(%q<rr>, [">= 0"])
@@ -109,6 +109,7 @@ module FakeMediaWiki
109
109
  alias_method :deletetoken, :importtoken
110
110
  alias_method :undeletetoken, :importtoken
111
111
  alias_method :userrightstoken, :importtoken
112
+ alias_method :createusertoken, :importtoken
112
113
 
113
114
  def edittoken
114
115
  if @user
@@ -117,6 +118,7 @@ module FakeMediaWiki
117
118
  BLANK_TOKEN
118
119
  end
119
120
  end
121
+ alias_method :optionstoken, :edittoken
120
122
  end
121
123
 
122
124
  class ApiError < StandardError
@@ -172,10 +172,12 @@ module FakeMediaWiki
172
172
 
173
173
  include QueryHandling
174
174
 
175
- def api_response
175
+ def api_response(api_attr = {}, &block)
176
176
  builder do |_|
177
- _.api do |_|
178
- yield(_)
177
+ if block_given?
178
+ _.api(api_attr, &block)
179
+ else
180
+ _.api(api_attr)
179
181
  end
180
182
  end
181
183
  end
@@ -237,6 +239,14 @@ module FakeMediaWiki
237
239
  params[:titles].split("|")
238
240
  end
239
241
 
242
+ def tokens
243
+ @token.request(user)
244
+
245
+ api_response do |_|
246
+ _.tokens(:optionstoken => @token.optionstoken)
247
+ end
248
+ end
249
+
240
250
  def get_token
241
251
  token_str = @token.request(user)
242
252
  query_pages do |_, title, page|
@@ -300,6 +310,24 @@ module FakeMediaWiki
300
310
  end
301
311
  end
302
312
 
313
+ def createaccount
314
+ api_response do |_|
315
+ @token.request(user)
316
+
317
+ if params[:token].present?
318
+ @token.validate_admin
319
+ add_user(params[:name], params[:password], 'local', false)
320
+ _.createaccount(:token => @token.createusertoken, :userid => @users.length, :username => params[:name], :result => 'success')
321
+ else
322
+ _.createaccount(:token => @token.createusertoken, :result => 'needtoken')
323
+ end
324
+ end
325
+ end
326
+
327
+ def options
328
+ api_response(:options => 'success')
329
+ end
330
+
303
331
  def userrights
304
332
  api_response do |_|
305
333
  _.userrights({:user => params[:user]}) do
data/spec/gateway_spec.rb CHANGED
@@ -749,6 +749,55 @@ describe MediaWiki::Gateway do
749
749
  @gateway.send(:make_api_request, form_data)
750
750
  end
751
751
 
752
+ describe "#create_account" do
753
+
754
+ describe "when logged in as admin" do
755
+ before do
756
+ @gateway.login("atlasmw", "wombat")
757
+ end
758
+
759
+ it 'should get expected result' do
760
+ expected = <<-XML
761
+ <api>
762
+ <createaccount result='success' token='admin_token+\\' userid='4' username='FooBar'/>
763
+ </api>
764
+ XML
765
+
766
+ Hash.from_xml(@gateway.create_account({ 'name' => 'FooBar', 'password' => 'BarBaz' }).to_s).should == Hash.from_xml(expected)
767
+ end
768
+
769
+ end
770
+
771
+ end
772
+
773
+ describe '#options' do
774
+
775
+ describe 'when logged in' do
776
+ before do
777
+ @gateway.login("atlasmw", "wombat")
778
+ end
779
+
780
+ describe 'requesting an options token' do
781
+ before do
782
+ @token = @gateway.send(:get_options_token)
783
+ end
784
+
785
+ it "should return a token" do
786
+ @token.should_not == nil
787
+ @token.should_not == "+\\"
788
+ end
789
+
790
+ end
791
+
792
+ it 'should return the expected response' do
793
+ expected = '<api options="success" />'
794
+ Hash.from_xml(@gateway.options({ :realname => 'Bar Baz' }).to_s).should == Hash.from_xml(expected)
795
+ end
796
+
797
+ end
798
+
799
+ end
800
+
752
801
  describe "#user_rights" do
753
802
 
754
803
  describe "when logged in as admin" do
metadata CHANGED
@@ -1,323 +1,182 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki-gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
5
- prerelease:
4
+ version: 0.6.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jani Patokallio
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-29 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: mediawiki-gateway
16
- requirement: &2157655800 !ruby/object:Gem::Requirement
17
- none: false
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: 1.3.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *2157655800
25
- - !ruby/object:Gem::Dependency
26
- name: jeweler
27
- requirement: &2157654600 !ruby/object:Gem::Requirement
28
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
29
23
  requirements:
30
24
  - - ! '>='
31
25
  - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: *2157654600
26
+ version: 1.3.0
36
27
  - !ruby/object:Gem::Dependency
37
- name: sham_rack
38
- requirement: &2157652460 !ruby/object:Gem::Requirement
39
- none: false
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
40
30
  requirements:
41
31
  - - ! '>='
42
32
  - !ruby/object:Gem::Version
43
33
  version: '0'
44
- type: :development
34
+ type: :runtime
45
35
  prerelease: false
46
- version_requirements: *2157652460
47
- - !ruby/object:Gem::Dependency
48
- name: rr
49
- requirement: &2157650880 !ruby/object:Gem::Requirement
50
- none: false
36
+ version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ! '>='
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
- type: :development
56
- prerelease: false
57
- version_requirements: *2157650880
58
41
  - !ruby/object:Gem::Dependency
59
- name: simplecov
60
- requirement: &2157666280 !ruby/object:Gem::Requirement
61
- none: false
42
+ name: atomic
43
+ requirement: !ruby/object:Gem::Requirement
62
44
  requirements:
63
45
  - - ! '>='
64
46
  - !ruby/object:Gem::Version
65
47
  version: '0'
66
48
  type: :development
67
49
  prerelease: false
68
- version_requirements: *2157666280
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: &2157665280 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ~>
75
- - !ruby/object:Gem::Version
76
- version: '1.3'
77
- type: :development
78
- prerelease: false
79
- version_requirements: *2157665280
80
- - !ruby/object:Gem::Dependency
81
- name: debugger
82
- requirement: &2157664380 !ruby/object:Gem::Requirement
83
- none: false
50
+ version_requirements: !ruby/object:Gem::Requirement
84
51
  requirements:
85
52
  - - ! '>='
86
53
  - !ruby/object:Gem::Version
87
54
  version: '0'
88
- type: :development
89
- prerelease: false
90
- version_requirements: *2157664380
91
55
  - !ruby/object:Gem::Dependency
92
- name: sinatra
93
- requirement: &2157663500 !ruby/object:Gem::Requirement
94
- none: false
56
+ name: jeweler
57
+ requirement: !ruby/object:Gem::Requirement
95
58
  requirements:
96
59
  - - ! '>='
97
60
  - !ruby/object:Gem::Version
98
61
  version: '0'
99
62
  type: :development
100
63
  prerelease: false
101
- version_requirements: *2157663500
102
- - !ruby/object:Gem::Dependency
103
- name: activemodel
104
- requirement: &2157662780 !ruby/object:Gem::Requirement
105
- none: false
64
+ version_requirements: !ruby/object:Gem::Requirement
106
65
  requirements:
107
66
  - - ! '>='
108
67
  - !ruby/object:Gem::Version
109
68
  version: '0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: *2157662780
113
69
  - !ruby/object:Gem::Dependency
114
- name: jeweler
115
- requirement: &2157661900 !ruby/object:Gem::Requirement
116
- none: false
70
+ name: sham_rack
71
+ requirement: !ruby/object:Gem::Requirement
117
72
  requirements:
118
73
  - - ! '>='
119
74
  - !ruby/object:Gem::Version
120
75
  version: '0'
121
76
  type: :development
122
77
  prerelease: false
123
- version_requirements: *2157661900
124
- - !ruby/object:Gem::Dependency
125
- name: sham_rack
126
- requirement: &2157659740 !ruby/object:Gem::Requirement
127
- none: false
78
+ version_requirements: !ruby/object:Gem::Requirement
128
79
  requirements:
129
80
  - - ! '>='
130
81
  - !ruby/object:Gem::Version
131
82
  version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: *2157659740
135
83
  - !ruby/object:Gem::Dependency
136
84
  name: rr
137
- requirement: &2157658740 !ruby/object:Gem::Requirement
138
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
139
86
  requirements:
140
87
  - - ! '>='
141
88
  - !ruby/object:Gem::Version
142
89
  version: '0'
143
90
  type: :development
144
91
  prerelease: false
145
- version_requirements: *2157658740
146
- - !ruby/object:Gem::Dependency
147
- name: simplecov
148
- requirement: &2157137500 !ruby/object:Gem::Requirement
149
- none: false
92
+ version_requirements: !ruby/object:Gem::Requirement
150
93
  requirements:
151
94
  - - ! '>='
152
95
  - !ruby/object:Gem::Version
153
96
  version: '0'
154
- type: :development
155
- prerelease: false
156
- version_requirements: *2157137500
157
- - !ruby/object:Gem::Dependency
158
- name: rspec
159
- requirement: &2157135860 !ruby/object:Gem::Requirement
160
- none: false
161
- requirements:
162
- - - ~>
163
- - !ruby/object:Gem::Version
164
- version: '1.3'
165
- type: :development
166
- prerelease: false
167
- version_requirements: *2157135860
168
97
  - !ruby/object:Gem::Dependency
169
- name: debugger
170
- requirement: &2157135020 !ruby/object:Gem::Requirement
171
- none: false
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
172
100
  requirements:
173
101
  - - ! '>='
174
102
  - !ruby/object:Gem::Version
175
103
  version: '0'
176
104
  type: :development
177
105
  prerelease: false
178
- version_requirements: *2157135020
179
- - !ruby/object:Gem::Dependency
180
- name: sinatra
181
- requirement: &2157133780 !ruby/object:Gem::Requirement
182
- none: false
106
+ version_requirements: !ruby/object:Gem::Requirement
183
107
  requirements:
184
108
  - - ! '>='
185
109
  - !ruby/object:Gem::Version
186
110
  version: '0'
187
- type: :development
188
- prerelease: false
189
- version_requirements: *2157133780
190
111
  - !ruby/object:Gem::Dependency
191
- name: activemodel
192
- requirement: &2157133160 !ruby/object:Gem::Requirement
193
- none: false
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
194
114
  requirements:
195
- - - ! '>='
115
+ - - ~>
196
116
  - !ruby/object:Gem::Version
197
- version: '0'
117
+ version: '1.3'
198
118
  type: :development
199
119
  prerelease: false
200
- version_requirements: *2157133160
201
- - !ruby/object:Gem::Dependency
202
- name: rest-client
203
- requirement: &2157131580 !ruby/object:Gem::Requirement
204
- none: false
120
+ version_requirements: !ruby/object:Gem::Requirement
205
121
  requirements:
206
- - - ! '>='
207
- - !ruby/object:Gem::Version
208
- version: 1.3.0
209
- type: :runtime
210
- prerelease: false
211
- version_requirements: *2157131580
212
- - !ruby/object:Gem::Dependency
213
- name: activesupport
214
- requirement: &2157129920 !ruby/object:Gem::Requirement
215
- none: false
216
- requirements:
217
- - - ! '>='
218
- - !ruby/object:Gem::Version
219
- version: '0'
220
- type: :runtime
221
- prerelease: false
222
- version_requirements: *2157129920
223
- - !ruby/object:Gem::Dependency
224
- name: jeweler
225
- requirement: &2157679720 !ruby/object:Gem::Requirement
226
- none: false
227
- requirements:
228
- - - ! '>='
122
+ - - ~>
229
123
  - !ruby/object:Gem::Version
230
- version: '0'
231
- type: :development
232
- prerelease: false
233
- version_requirements: *2157679720
124
+ version: '1.3'
234
125
  - !ruby/object:Gem::Dependency
235
- name: sham_rack
236
- requirement: &2157678140 !ruby/object:Gem::Requirement
237
- none: false
126
+ name: debugger
127
+ requirement: !ruby/object:Gem::Requirement
238
128
  requirements:
239
129
  - - ! '>='
240
130
  - !ruby/object:Gem::Version
241
131
  version: '0'
242
132
  type: :development
243
133
  prerelease: false
244
- version_requirements: *2157678140
245
- - !ruby/object:Gem::Dependency
246
- name: rr
247
- requirement: &2157677380 !ruby/object:Gem::Requirement
248
- none: false
134
+ version_requirements: !ruby/object:Gem::Requirement
249
135
  requirements:
250
136
  - - ! '>='
251
137
  - !ruby/object:Gem::Version
252
138
  version: '0'
253
- type: :development
254
- prerelease: false
255
- version_requirements: *2157677380
256
139
  - !ruby/object:Gem::Dependency
257
- name: simplecov
258
- requirement: &2157676620 !ruby/object:Gem::Requirement
259
- none: false
140
+ name: sinatra
141
+ requirement: !ruby/object:Gem::Requirement
260
142
  requirements:
261
143
  - - ! '>='
262
144
  - !ruby/object:Gem::Version
263
145
  version: '0'
264
146
  type: :development
265
147
  prerelease: false
266
- version_requirements: *2157676620
267
- - !ruby/object:Gem::Dependency
268
- name: rspec
269
- requirement: &2157675900 !ruby/object:Gem::Requirement
270
- none: false
271
- requirements:
272
- - - ~>
273
- - !ruby/object:Gem::Version
274
- version: '1.3'
275
- type: :development
276
- prerelease: false
277
- version_requirements: *2157675900
278
- - !ruby/object:Gem::Dependency
279
- name: debugger
280
- requirement: &2157675100 !ruby/object:Gem::Requirement
281
- none: false
148
+ version_requirements: !ruby/object:Gem::Requirement
282
149
  requirements:
283
150
  - - ! '>='
284
151
  - !ruby/object:Gem::Version
285
152
  version: '0'
286
- type: :development
287
- prerelease: false
288
- version_requirements: *2157675100
289
153
  - !ruby/object:Gem::Dependency
290
- name: sinatra
291
- requirement: &2157674320 !ruby/object:Gem::Requirement
292
- none: false
154
+ name: activemodel
155
+ requirement: !ruby/object:Gem::Requirement
293
156
  requirements:
294
157
  - - ! '>='
295
158
  - !ruby/object:Gem::Version
296
159
  version: '0'
297
160
  type: :development
298
161
  prerelease: false
299
- version_requirements: *2157674320
300
- - !ruby/object:Gem::Dependency
301
- name: activemodel
302
- requirement: &2157673340 !ruby/object:Gem::Requirement
303
- none: false
162
+ version_requirements: !ruby/object:Gem::Requirement
304
163
  requirements:
305
164
  - - ! '>='
306
165
  - !ruby/object:Gem::Version
307
166
  version: '0'
308
- type: :development
309
- prerelease: false
310
- version_requirements: *2157673340
311
167
  description: ''
312
168
  email: jpatokal@iki.fi
313
169
  executables: []
314
170
  extensions: []
315
171
  extra_rdoc_files:
172
+ - LICENSE
316
173
  - README
317
174
  files:
175
+ - .ruby-version
318
176
  - .rvmrc
319
177
  - Gemfile
320
178
  - Gemfile.lock
179
+ - LICENSE
321
180
  - README
322
181
  - Rakefile
323
182
  - config/hosts.yml
@@ -349,29 +208,25 @@ files:
349
208
  - spec/utils_spec.rb
350
209
  homepage: http://github.com/jpatokal/mediawiki-gateway
351
210
  licenses: []
211
+ metadata: {}
352
212
  post_install_message:
353
213
  rdoc_options: []
354
214
  require_paths:
355
215
  - lib
356
216
  required_ruby_version: !ruby/object:Gem::Requirement
357
- none: false
358
217
  requirements:
359
218
  - - ! '>='
360
219
  - !ruby/object:Gem::Version
361
220
  version: '0'
362
- segments:
363
- - 0
364
- hash: 575989764206727344
365
221
  required_rubygems_version: !ruby/object:Gem::Requirement
366
- none: false
367
222
  requirements:
368
223
  - - ! '>='
369
224
  - !ruby/object:Gem::Version
370
225
  version: '0'
371
226
  requirements: []
372
227
  rubyforge_project:
373
- rubygems_version: 1.8.10
228
+ rubygems_version: 2.2.2
374
229
  signing_key:
375
- specification_version: 3
230
+ specification_version: 4
376
231
  summary: Connect to the mediawiki API
377
232
  test_files: []