mediawiki_api 0.1.3 → 0.1.4

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
  SHA1:
3
- metadata.gz: d8395abe251559d9bdf235ea57ac6f03e53bc6f0
4
- data.tar.gz: ad8ff2632ce626ee44fbaee68e0188ed2a7da3b8
3
+ metadata.gz: 61335636d79746833c9ce6320e349c4ddc3b0eb0
4
+ data.tar.gz: 50ff419bf6cff5deacd013c516e8dbfe611b8b57
5
5
  SHA512:
6
- metadata.gz: c93261cc228782ebac21aa2193824dcc65aa739eb254ec55ba0e7a217ee6f754e964f47f6faf543ccc36d7805dc67b084c9f28a3a16441c017532ca4998ab1cb
7
- data.tar.gz: 724a2f1c2d41578427ed0bae7ed3bef54541d406f014bf274e45eccc9a8a6267bee9ca48538e740a4a8b2c4a51389b73dc3cd0bf08b78a7d3df1094b6a78e33f
6
+ metadata.gz: 8e49ec787cc5313d0db2206062202e350b6c06f4497681a85aed857252518515fde8f5b1c6dedcb113bb246d599d366b1b1fcec4b3ec0114bf935e506e5d2695
7
+ data.tar.gz: e674171587b3975ad3d5b14ab0a3527b4160d03336ee8b07cf107f88b6bf98a1190197b79e2357d2967da88fa4a1e38196631e662ca76a0cdf2b9cf402c1759e
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- #ruby=ruby-2.1.1
1
+ #ruby=ruby-2.1.2
2
2
  #ruby-gemset=mediawiki_api
3
3
 
4
4
  source "https://rubygems.org"
@@ -1,18 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mediawiki_api (0.1.2)
4
+ mediawiki_api (0.1.4)
5
5
  faraday (~> 0.9, >= 0.9.0)
6
6
  faraday-cookie_jar (~> 0.0, >= 0.0.6)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.3.5)
11
+ addressable (2.3.6)
12
12
  crack (0.4.2)
13
13
  safe_yaml (~> 1.0.0)
14
14
  diff-lcs (1.2.5)
15
- domain_name (0.5.18)
15
+ domain_name (0.5.19)
16
16
  unf (>= 0.0.5, < 1.0.0)
17
17
  faraday (0.9.0)
18
18
  multipart-post (>= 1.2, < 3)
@@ -23,20 +23,24 @@ GEM
23
23
  domain_name (~> 0.5)
24
24
  multipart-post (2.0.0)
25
25
  rake (0.9.6)
26
- rspec (2.14.1)
27
- rspec-core (~> 2.14.0)
28
- rspec-expectations (~> 2.14.0)
29
- rspec-mocks (~> 2.14.0)
30
- rspec-core (2.14.8)
31
- rspec-expectations (2.14.5)
32
- diff-lcs (>= 1.1.3, < 2.0)
33
- rspec-mocks (2.14.6)
34
- safe_yaml (1.0.1)
26
+ rspec (3.0.0)
27
+ rspec-core (~> 3.0.0)
28
+ rspec-expectations (~> 3.0.0)
29
+ rspec-mocks (~> 3.0.0)
30
+ rspec-core (3.0.2)
31
+ rspec-support (~> 3.0.0)
32
+ rspec-expectations (3.0.2)
33
+ diff-lcs (>= 1.2.0, < 2.0)
34
+ rspec-support (~> 3.0.0)
35
+ rspec-mocks (3.0.2)
36
+ rspec-support (~> 3.0.0)
37
+ rspec-support (3.0.2)
38
+ safe_yaml (1.0.3)
35
39
  unf (0.1.4)
36
40
  unf_ext
37
41
  unf_ext (0.0.6)
38
- webmock (1.17.4)
39
- addressable (>= 2.2.7)
42
+ webmock (1.18.0)
43
+ addressable (>= 2.3.6)
40
44
  crack (>= 0.3.2)
41
45
 
42
46
  PLATFORMS
@@ -46,5 +50,5 @@ DEPENDENCIES
46
50
  bundler (~> 1.3)
47
51
  mediawiki_api!
48
52
  rake (~> 0)
49
- rspec (~> 2.14, >= 2.14.1)
53
+ rspec (~> 3.0, >= 3.0.0)
50
54
  webmock (~> 1.17, >= 1.17.2)
data/README.md CHANGED
@@ -19,14 +19,19 @@ Or install it yourself as:
19
19
 
20
20
  ## Usage
21
21
 
22
+ Assuming you have MediaWiki installed via [MediaWiki-Vagrant](https://www.mediawiki.org/wiki/MediaWiki-Vagrant).
23
+
22
24
  ```ruby
23
25
  require "mediawiki_api"
24
26
 
25
- client = MediawikiApi::Client.new("http://127.0.0.1/w/api.php")
26
- client.create_account("username", "password")
27
- client.log_in("username", "password")
28
- client.create_page("title", "content")
29
- client.delete_page("title", "reason")
27
+ client = MediawikiApi::Client.new "http://127.0.0.1:8080/w/api.php"
28
+ client.log_in "username", "password" # default Vagrant username and password are "Admin", "vagrant"
29
+ client.create_account "username", "password"
30
+ client.create_page "title", "content"
31
+ client.get_wikitext "title"
32
+ client.protect_page "title", "reason", "protections" # protections are optional, default is "edit=sysop|move=sysop"
33
+ client.delete_page "title", "reason"
34
+ client.upload_image "filename", "path", "comment", "ignorewarnings"
30
35
  ```
31
36
 
32
37
  ## Links
@@ -41,3 +46,37 @@ MediaWiki API gem at: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/m
41
46
  3. Commit your changes (`git commit -am "Add some feature"`)
42
47
  4. Push to the branch (`git push origin my-new-feature`)
43
48
  5. Create new Pull Request
49
+
50
+ ## Release notes
51
+
52
+ ### 0.1.4 2014-07-??
53
+
54
+ - Added MediawikiApi::Client#protect_page.
55
+ - Updated documentation.
56
+
57
+ ### 0.1.3 2014-06-28
58
+
59
+ - Added MediawikiApi::Client#upload_image.
60
+
61
+ ### 0.1.2 2014-04-11
62
+
63
+ - Added MediawikiApi::Client#get_wikitext.
64
+
65
+ ### 0.1.1 2014-04-01
66
+
67
+ - Updated documentation.
68
+
69
+ ### 0.1.0 2014-03-13
70
+
71
+ - Complete refactoring.
72
+ - Removed MediawikiApi#create_article, #create_user and #delete_article.
73
+ - Added MediawikiApi::Client#new, #log_in, #create_page, #delete_page, #create_account.
74
+ - Added unit tests.
75
+
76
+ ### 0.0.2 2014-02-11
77
+
78
+ - Added MediawikiApi#delete_article.
79
+
80
+ ### 0.0.1 2014-02-07
81
+
82
+ - Added MediawikiApi#create_article and #create_user.
@@ -15,13 +15,11 @@ module MediawikiApi
15
15
  class Client
16
16
  attr_accessor :logged_in
17
17
 
18
- def initialize(url, log=false)
18
+ def initialize(url, log = false)
19
19
  @conn = Faraday.new(url: url) do |faraday|
20
20
  faraday.request :multipart
21
21
  faraday.request :url_encoded
22
- if log then
23
- faraday.response :logger
24
- end
22
+ faraday.response :logger if log
25
23
  faraday.use :cookie_jar
26
24
  faraday.adapter Faraday.default_adapter
27
25
  end
@@ -64,21 +62,26 @@ module MediawikiApi
64
62
 
65
63
  def create_page(title, content)
66
64
  token = get_token "edit"
67
- resp = @conn.post "", { action: "edit", title: title, text: content, token: token, format: "json" }
65
+ @conn.post "", action: "edit", title: title, text: content, token: token, format: "json"
68
66
  end
69
67
 
70
68
  def delete_page(title, reason)
71
69
  token = get_token "delete"
72
- resp = @conn.post "", { action: "delete", title: title, reason: reason, token: token, format: "json" }
70
+ @conn.post "", action: "delete", title: title, reason: reason, token: token, format: "json"
73
71
  end
74
72
 
75
- def upload_image(filename ,path , comment, ignorewarnings)
73
+ def upload_image(filename, path, comment, ignorewarnings)
76
74
  token = get_token "edit"
77
- @conn.post "", { action: "upload", filename: filename, file: Faraday::UploadIO.new(path, 'image/png'), token: token, comment: comment, ignorewarnings: ignorewarnings, format: "json"}
75
+ @conn.post "", action: "upload", filename: filename, file: Faraday::UploadIO.new(path, 'image/png'), token: token, comment: comment, ignorewarnings: ignorewarnings, format: "json"
78
76
  end
79
77
 
80
78
  def get_wikitext(title)
81
- resp = @conn.get "/w/index.php", { action: "raw", title: title }
79
+ @conn.get "/w/index.php", { action: "raw", title: title }
80
+ end
81
+
82
+ def protect_page(title, reason, protections="edit=sysop|move=sysop")
83
+ token = get_token "protect"
84
+ @conn.post "", action: "protect", title: title, reason: reason, token: token, format: "json", protections: protections
82
85
  end
83
86
 
84
87
  protected
@@ -1,3 +1,3 @@
1
1
  module MediawikiApi
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
24
  spec.add_development_dependency "rake", "~> 0"
25
- spec.add_development_dependency "rspec", "~> 2.14", ">= 2.14.1"
25
+ spec.add_development_dependency "rspec", "~> 3.0", ">= 3.0.0"
26
26
  spec.add_development_dependency "webmock", "~> 1.17", ">= 1.17.2"
27
27
  end
@@ -12,7 +12,7 @@ describe MediawikiApi::Client do
12
12
  to_return(body: { login: body_base.merge({ result: "Success" }) }.to_json )
13
13
 
14
14
  subject.log_in "Test", "qwe123"
15
- subject.logged_in.should be true
15
+ expect(subject.logged_in).to be true
16
16
  end
17
17
 
18
18
  context "when API returns NeedToken" do
@@ -34,12 +34,12 @@ describe MediawikiApi::Client do
34
34
 
35
35
  it "logs in" do
36
36
  subject.log_in "Test", "qwe123"
37
- subject.logged_in.should be true
37
+ expect(subject.logged_in).to be true
38
38
  end
39
39
 
40
40
  it "sends second request with token and cookies" do
41
41
  subject.log_in "Test", "qwe123"
42
- @success_req.should have_been_requested
42
+ expect(@success_req).to have_been_requested
43
43
  end
44
44
  end
45
45
 
@@ -52,7 +52,7 @@ describe MediawikiApi::Client do
52
52
 
53
53
  it "does not log in" do
54
54
  expect { subject.log_in "Test", "qwe123" }.to raise_error
55
- subject.logged_in.should be false
55
+ expect(subject.logged_in).to be false
56
56
  end
57
57
 
58
58
  it "raises error with proper message" do
@@ -72,7 +72,7 @@ describe MediawikiApi::Client do
72
72
 
73
73
  it "creates a page using an edit token" do
74
74
  subject.create_page("Test", "test123")
75
- @edit_req.should have_been_requested
75
+ expect(@edit_req).to have_been_requested
76
76
  end
77
77
 
78
78
  context "when API returns Success" do
@@ -95,7 +95,7 @@ describe MediawikiApi::Client do
95
95
 
96
96
  it "deletes a page using a delete token" do
97
97
  subject.delete_page("Test", "deleting")
98
- @delete_req.should have_been_requested
98
+ expect(@delete_req).to have_been_requested
99
99
  end
100
100
 
101
101
  # evaluate results
@@ -108,7 +108,7 @@ describe MediawikiApi::Client do
108
108
 
109
109
  it "fetches a page" do
110
110
  subject.get_wikitext("Test")
111
- @get_req.should have_been_requested
111
+ expect(@get_req).to have_been_requested
112
112
  end
113
113
  end
114
114
 
@@ -118,7 +118,7 @@ describe MediawikiApi::Client do
118
118
  with(body: { format: "json", action: "createaccount", name: "Test", password: "qwe123" }).
119
119
  to_return(body: { createaccount: body_base.merge({ result: "Success" }) }.to_json )
120
120
 
121
- subject.create_account("Test", "qwe123").should be true
121
+ expect(subject.create_account("Test", "qwe123")).to be true
122
122
  end
123
123
 
124
124
  context "when API returns NeedToken" do
@@ -139,12 +139,12 @@ describe MediawikiApi::Client do
139
139
  end
140
140
 
141
141
  it "creates an account" do
142
- subject.create_account("Test", "qwe123").should be true
142
+ expect(subject.create_account("Test", "qwe123")).to be true
143
143
  end
144
144
 
145
145
  it "sends second request with token and cookies" do
146
146
  subject.create_account "Test", "qwe123"
147
- @success_req.should have_been_requested
147
+ expect(@success_req).to have_been_requested
148
148
  end
149
149
  end
150
150
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amir Aharoni
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-06-28 00:00:00.000000000 Z
15
+ date: 2014-07-18 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: faraday
@@ -88,20 +88,20 @@ dependencies:
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '2.14'
91
+ version: '3.0'
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
- version: 2.14.1
94
+ version: 3.0.0
95
95
  type: :development
96
96
  prerelease: false
97
97
  version_requirements: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '2.14'
101
+ version: '3.0'
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 2.14.1
104
+ version: 3.0.0
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: webmock
107
107
  requirement: !ruby/object:Gem::Requirement
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  version: '0'
167
167
  requirements: []
168
168
  rubyforge_project:
169
- rubygems_version: 2.2.2
169
+ rubygems_version: 2.4.1
170
170
  signing_key:
171
171
  specification_version: 4
172
172
  summary: A library for interacting with MediaWiki API from Ruby.