mediawiki_api 0.1.3 → 0.1.4

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