mediawiki_api 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6b88aaa6e65da0aa8d4629cd69fc50d9aeb1644
4
- data.tar.gz: 4b574b4cf2969445362e345d3998fef3507b3671
3
+ metadata.gz: ee68987be1e85db0875d5297685725206b42b5ef
4
+ data.tar.gz: 8f8aef9f9d0df4ab0fe3496e14ec4f0922239032
5
5
  SHA512:
6
- metadata.gz: 6674018af6ff2dac0c6ba3308ae16fe574b73e455307804c2dda0d960d51c6cc7a58e35f072a45b72a4e12137701a95d2588404c7528eddbb37dd627cbc12b85
7
- data.tar.gz: 412f40dd8f00cf96a81e577eaed754eab2f6e90c74f1fa989a4b6c44954aaf554960575bb16dda8b3c635af1e372b8b3b75bb7a316190c3e4b0906ec4f5deccb
6
+ metadata.gz: 2f6ae5b44f596d9704c1021c45bc774cb0d60b22c53c0ebce317d06230418630597656eb81655c29e33272fd0c1a06fe08bd775e1fe6f8662d423a2bc325ab77
7
+ data.tar.gz: d3ed97d5956c63342b260285c2f3f6ff30c436f72c5980e6ffe9988b2cba02bb66e2ce3c21d26a058f7c019023307fb4539ba0f0126db43df8782f04f23f6614
data/.gitreview CHANGED
@@ -1,6 +1,6 @@
1
1
  [gerrit]
2
2
  host=gerrit.wikimedia.org
3
3
  port=29418
4
- project=mediawiki/ruby_api_client.git
4
+ project=mediawiki/ruby/api.git
5
5
  defaultbranch=master
6
6
  defaultrebase=0
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/CREDITS CHANGED
@@ -8,4 +8,5 @@ For further details on licensing, see the LICENSE file.
8
8
  * Amir Aharoni
9
9
  * Chris McMahon
10
10
  * Jeff Hall
11
+ * Juliusz Gonera
11
12
  * Željko Filipin
data/Gemfile CHANGED
@@ -1,2 +1,7 @@
1
- #ruby=ruby-2.1.0
1
+ #ruby=ruby-2.1.1
2
2
  #ruby-gemset=mediawiki_api
3
+
4
+ source "https://rubygems.org"
5
+
6
+ # Specify your gem's dependencies in mediawiki_api.gemspec
7
+ gemspec
@@ -0,0 +1,50 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mediawiki_api (0.1.0)
5
+ faraday (~> 0.9.0)
6
+ faraday-cookie_jar (~> 0.0.6)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.3.5)
12
+ crack (0.4.2)
13
+ safe_yaml (~> 1.0.0)
14
+ diff-lcs (1.2.5)
15
+ domain_name (0.5.15)
16
+ unf (>= 0.0.5, < 1.0.0)
17
+ faraday (0.9.0)
18
+ multipart-post (>= 1.2, < 3)
19
+ faraday-cookie_jar (0.0.6)
20
+ faraday (>= 0.7.4)
21
+ http-cookie (~> 1.0.0)
22
+ http-cookie (1.0.2)
23
+ domain_name (~> 0.5)
24
+ multipart-post (2.0.0)
25
+ rake (10.1.1)
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.7)
31
+ rspec-expectations (2.14.5)
32
+ diff-lcs (>= 1.1.3, < 2.0)
33
+ rspec-mocks (2.14.5)
34
+ safe_yaml (1.0.1)
35
+ unf (0.1.3)
36
+ unf_ext
37
+ unf_ext (0.0.6)
38
+ webmock (1.17.2)
39
+ addressable (>= 2.2.7)
40
+ crack (>= 0.3.2)
41
+
42
+ PLATFORMS
43
+ ruby
44
+
45
+ DEPENDENCIES
46
+ bundler (~> 1.3)
47
+ mediawiki_api!
48
+ rake
49
+ rspec (~> 2.14.1)
50
+ webmock (~> 1.17.2)
data/README.md CHANGED
@@ -1,14 +1,13 @@
1
1
  # MediawikiApi
2
2
 
3
- TODO: Write a gem description
4
-
5
- An easy way to work with MediaWiki API from Ruby. Uses REST Client Ruby gem to communicate with MediaWiki API.
3
+ A library for interacting with MediaWiki API from Ruby. Uses adapter-agnostic
4
+ Faraday gem to talk to the API.
6
5
 
7
6
  ## Installation
8
7
 
9
8
  Add this line to your application's Gemfile:
10
9
 
11
- gem 'mediawiki_api'
10
+ gem "mediawiki_api"
12
11
 
13
12
  And then execute:
14
13
 
@@ -20,32 +19,19 @@ Or install it yourself as:
20
19
 
21
20
  ## Usage
22
21
 
23
- TODO: Write usage instructions here
24
-
25
- $ export API_URL=http://en.wikipedia.beta.wmflabs.org/w/api.php
26
-
27
- $ irb
28
-
29
- > require "mediawiki_api"
30
- => true
31
-
32
- > include MediawikiApi
33
- => Object
34
-
35
- > create_article "username", "password", "title", "content"
36
- => nil
37
-
38
- > delete_article "username", "password", "title"
39
- => nil
22
+ ```ruby
23
+ require "mediawiki_api"
40
24
 
41
- > create_user "username", "password"
42
- eddfa276bcaabbaec3f813de78f052e3
43
- => nil
25
+ client = MediawikiApi::Client.new("http://127.0.0.1/w/api.php")
26
+ client.log_in("username", "pass")
27
+ client.create_page("Test api", "lalala '''test'''")
28
+ client.delete_page("Test api", "reason for deleting")
29
+ ```
44
30
 
45
31
  ## Contributing
46
32
 
47
33
  1. Fork it ( http://github.com/<my-github-username>/mediawiki_api/fork )
48
34
  2. Create your feature branch (`git checkout -b my-new-feature`)
49
- 3. Commit your changes (`git commit -am 'Add some feature'`)
35
+ 3. Commit your changes (`git commit -am "Add some feature"`)
50
36
  4. Push to the branch (`git push origin my-new-feature`)
51
37
  5. Create new Pull Request
@@ -1,125 +1 @@
1
- require "mediawiki_api/version"
2
- require "rest-client"
3
-
4
- module MediawikiApi
5
- def create_article username, password, title, content
6
- # First request is solely to obtain a valid login token in the API response.
7
- login_token_response = RestClient.post ENV["API_URL"], {:action => "login", :lgname => username, :lgpassword => password, :format => "json", :lgtoken => ""}
8
-
9
- login_token_data = JSON.parse(login_token_response.body)
10
- login_token = login_token_data["login"]["token"]
11
- cookie = login_token_response.cookies
12
-
13
- # Second request repeats the first request with the addition of the token (to complete the login).
14
- complete_login_response = RestClient.post ENV["API_URL"], {:action => "login", :lgname => username, :lgpassword => password, :format => "json", :lgtoken => login_token}, {:cookies => cookie}
15
-
16
- complete_login_data = JSON.parse(complete_login_response.body)
17
- complete_login_status = complete_login_data["login"]["result"]
18
- complete_login_cookie = complete_login_response.cookies
19
- # Merge the two cookie hashes together into one big super-cookie
20
- cookie = complete_login_cookie.merge(cookie)
21
-
22
- if (complete_login_status != "Success")
23
- $stderr.puts "There was a problem - login was NOT successful."
24
- end
25
-
26
- # First request is solely to obtain a valid edit token in the API response.
27
- edit_token_response = RestClient.post ENV["API_URL"], {:action => "tokens", :type => "edit", :format => "json"}, {:cookies => cookie}
28
-
29
- edit_token_data = JSON.parse(edit_token_response.body)
30
- edit_token = edit_token_data["tokens"]["edittoken"]
31
-
32
- # Second request repeats the first request with the addition of the token (to complete the article creation).
33
- complete_edit_response = RestClient.post ENV["API_URL"], {:action => "edit", :title => title, :text => (content + "[[Category:Browsertest article]]"), :summary => "Article created via an API 'edit' call.", :format => "json", :token => edit_token}, {:cookies => cookie}
34
-
35
- complete_edit_data = JSON.parse(complete_edit_response.body)
36
- complete_edit_status = complete_edit_data["edit"]["result"]
37
-
38
- if (complete_edit_status != "Success")
39
- $stderr.puts "There was a problem - new article creation was NOT successful."
40
- end
41
- end
42
-
43
- def delete_article username, password, title
44
- unless (ENV["API_URL"])
45
- puts "API_URL is not defined - make sure to export a value for that variable before running this test."
46
- end
47
-
48
- # First request is solely to obtain a valid login token in the API response.
49
- login_token_response = RestClient.post ENV["API_URL"], {
50
- "format" => "json",
51
- "action" => "login",
52
- "lgname" => username,
53
- "lgpassword" => password,
54
- }
55
-
56
- login_token_data = JSON.parse(login_token_response.body)
57
- login_token = login_token_data["login"]["token"]
58
- cookie = login_token_response.cookies
59
-
60
- # Second request repeats the first request with the addition of the token (to complete the login).
61
- complete_login_response = RestClient.post ENV["API_URL"], {
62
- "format" => "json",
63
- "action" => "login",
64
- "lgname" => username,
65
- "lgpassword" => password,
66
- "lgtoken" => login_token},
67
- {:cookies => cookie}
68
-
69
- complete_login_data = JSON.parse(complete_login_response.body)
70
- complete_login_status = complete_login_data["login"]["result"]
71
-
72
- if (complete_login_status != "Success")
73
- puts "There was a problem - login was NOT successful."
74
- end
75
-
76
- # First request is solely to obtain a valid delete token in the API response.
77
- delete_token_response = RestClient.post ENV["API_URL"], {
78
- "format" => "json",
79
- "action" => "tokens",
80
- "type" => "delete",
81
- },
82
- {:cookies => cookie}
83
-
84
- delete_token_data = JSON.parse(delete_token_response.body)
85
- delete_token = delete_token_data["tokens"]["deletetoken"]
86
-
87
- # Second request repeats the first request
88
- # with the addition of the token (to complete the article creation).
89
- complete_delete_response = RestClient.post ENV["API_URL"], {
90
- "format" => "json",
91
- "action" => "delete",
92
- "title" => title,
93
- "token" => delete_token,
94
- "reason" => "Deleted by browser tests",
95
- },
96
- {:cookies => cookie}
97
-
98
- complete_delete_data = JSON.parse(complete_delete_response.body)
99
-
100
- p complete_delete_data if complete_delete_data["error"]
101
- end
102
-
103
- def create_user login, password
104
- # First request is solely to obtain a valid token in the API response.
105
- createaccount_token_response = RestClient.post ENV["API_URL"], {:action => "createaccount", :name => login, :password =>
106
- password, :format => "json", :token => ""}
107
-
108
- # Session cookie needs to be maintained for both API requests.
109
- createaccount_token_data = JSON.parse(createaccount_token_response.body)
110
- cookie = createaccount_token_response.cookies
111
-
112
- createaccount_token = createaccount_token_data["createaccount"]["token"]
113
- puts createaccount_token
114
-
115
- # Second request repeats the first request with the addition of the token.
116
- complete_createaccount_response = RestClient.post ENV["API_URL"], {:action => "createaccount", :name => login, :password => password, :format => "json", :token => createaccount_token}, {:cookies => cookie}
117
-
118
- complete_createaccount_data = JSON.parse(complete_createaccount_response.body)
119
- complete_createaccount_status = complete_createaccount_data["createaccount"]["result"]
120
-
121
- if (complete_createaccount_status != "success")
122
- $stderr.puts "There was a problem - new user account creation was NOT successful."
123
- end
124
- end
125
- end
1
+ require "mediawiki_api/client"
@@ -0,0 +1,84 @@
1
+ require "faraday"
2
+ require "faraday-cookie_jar"
3
+ require "json"
4
+
5
+ module MediawikiApi
6
+ class LoginError < StandardError
7
+ end
8
+
9
+ class CreateAccountError < StandardError
10
+ end
11
+
12
+ class TokenError < StandardError
13
+ end
14
+
15
+ class Client
16
+ attr_accessor :logged_in
17
+
18
+ def initialize(url)
19
+ @conn = Faraday.new(url: url) do |faraday|
20
+ faraday.request :url_encoded
21
+ faraday.response :logger
22
+ faraday.use :cookie_jar
23
+ faraday.adapter Faraday.default_adapter
24
+ end
25
+ @logged_in = false
26
+ end
27
+
28
+ def log_in(username, password, token = nil)
29
+ params = { action: "login", lgname: username, lgpassword: password, format: "json" }
30
+ params[:lgtoken] = token unless token.nil?
31
+ resp = @conn.post "", params
32
+
33
+ data = JSON.parse(resp.body)["login"]
34
+
35
+ case data["result"]
36
+ when "Success"
37
+ @logged_in = true
38
+ when "NeedToken"
39
+ log_in username, password, data["token"]
40
+ else
41
+ raise LoginError, data["result"]
42
+ end
43
+ end
44
+
45
+ def create_account(username, password, token = nil)
46
+ params = { action: "createaccount", name: username, password: password, format: "json" }
47
+ params[:token] = token unless token.nil?
48
+ resp = @conn.post "", params
49
+
50
+ data = JSON.parse(resp.body)["createaccount"]
51
+
52
+ case data["result"]
53
+ when "Success"
54
+ @logged_in = true
55
+ when "NeedToken"
56
+ create_account username, password, data["token"]
57
+ else
58
+ raise CreateAccountError, data["result"]
59
+ end
60
+ end
61
+
62
+ def create_page(title, content)
63
+ token = get_token "edit"
64
+ resp = @conn.post "", { action: "edit", title: title, text: content, token: token, format: "json" }
65
+ end
66
+
67
+ def delete_page(title, reason)
68
+ token = get_token "delete"
69
+ resp = @conn.post "", { action: "delete", title: title, reason: reason, token: token, format: "json" }
70
+ end
71
+
72
+ protected
73
+
74
+ def get_token(type)
75
+ resp = @conn.get "", { action: "tokens", type: type, format: "json" }
76
+ token_data = JSON.parse(resp.body)
77
+ if token_data.has_key?("warnings")
78
+ raise TokenError, token_data["warnings"]
79
+ else
80
+ token_data["tokens"][type + "token"]
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,3 +1,3 @@
1
1
  module MediawikiApi
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -6,15 +6,22 @@ require "mediawiki_api/version"
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "mediawiki_api"
8
8
  spec.version = MediawikiApi::VERSION
9
- spec.authors = ["Amir Aharoni", "Chris McMahon", "Jeff Hall", "Zeljko Filipin"]
10
- spec.email = ["amir.aharoni@mail.huji.ac.il", "cmcmahon@wikimedia.org", "jhall@wikimedia.org", "zeljko.filipin@gmail.com"]
11
- spec.summary = %q{An easy way to work with MediaWiki API from Ruby.}
12
- spec.description = %q{Uses REST Client Ruby gem to communicate with MediaWiki API.}
9
+ spec.authors = ["Amir Aharoni", "Chris McMahon", "Jeff Hall", "Juliusz Gonera", "Zeljko Filipin"]
10
+ spec.email = ["amir.aharoni@mail.huji.ac.il", "cmcmahon@wikimedia.org", "jhall@wikimedia.org", "jgonera@wikimedia.org", "zeljko.filipin@gmail.com"]
11
+ spec.summary = %q{A library for interacting with MediaWiki API from Ruby.}
12
+ spec.description = %q{Uses adapter-agnostic Faraday gem to talk to the API.}
13
13
  spec.homepage = "https://github.com/zeljkofilipin/mediawiki_api"
14
14
  spec.license = "GPL-2"
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
18
  spec.require_paths = ["lib"]
18
19
 
19
- spec.add_runtime_dependency "rest-client", "~> 1.6", ">= 1.6.7"
20
+ spec.add_dependency "faraday", "~> 0.9.0"
21
+ spec.add_dependency "faraday-cookie_jar", "~> 0.0.6"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "rspec", "~> 2.14.1"
26
+ spec.add_development_dependency "webmock", "~> 1.17.2"
20
27
  end
@@ -0,0 +1,154 @@
1
+ require "spec_helper"
2
+
3
+ describe MediawikiApi::Client do
4
+ subject { MediawikiApi::Client.new(api_url) }
5
+ body_base = { cookieprefix: "prefix", sessionid: "123" }
6
+
7
+ describe "#log_in" do
8
+
9
+ it "logs in when API returns Success" do
10
+ stub_request(:post, api_url).
11
+ with(body: { format: "json", action: "login", lgname: "Test", lgpassword: "qwe123" }).
12
+ to_return(body: { login: body_base.merge({ result: "Success" }) }.to_json )
13
+
14
+ subject.log_in "Test", "qwe123"
15
+ subject.logged_in.should be true
16
+ end
17
+
18
+ context "when API returns NeedToken" do
19
+ before do
20
+ headers = { "Set-Cookie" => "prefixSession=789; path=/; domain=localhost; HttpOnly" }
21
+
22
+ stub_request(:post, api_url).
23
+ with(body: { format: "json", action: "login", lgname: "Test", lgpassword: "qwe123" }).
24
+ to_return(
25
+ body: { login: body_base.merge({ result: "NeedToken", token: "456" }) }.to_json,
26
+ headers: { "Set-Cookie" => "prefixSession=789; path=/; domain=localhost; HttpOnly" }
27
+ )
28
+
29
+ @success_req = stub_request(:post, api_url).
30
+ with(body: { format: "json", action: "login", lgname: "Test", lgpassword: "qwe123", lgtoken: "456" }).
31
+ with(headers: { "Cookie" => "prefixSession=789" }).
32
+ to_return(body: { login: body_base.merge({ result: "Success" }) }.to_json )
33
+ end
34
+
35
+ it "logs in" do
36
+ subject.log_in "Test", "qwe123"
37
+ subject.logged_in.should be true
38
+ end
39
+
40
+ it "sends second request with token and cookies" do
41
+ subject.log_in "Test", "qwe123"
42
+ @success_req.should have_been_requested
43
+ end
44
+ end
45
+
46
+ context "when API returns neither Success nor NeedToken" do
47
+ before do
48
+ stub_request(:post, api_url).
49
+ with(body: { format: "json", action: "login", lgname: "Test", lgpassword: "qwe123" }).
50
+ to_return(body: { login: body_base.merge({ result: "EmptyPass" }) }.to_json )
51
+ end
52
+
53
+ it "does not log in" do
54
+ expect { subject.log_in "Test", "qwe123" }.to raise_error
55
+ subject.logged_in.should be false
56
+ end
57
+
58
+ it "raises error with proper message" do
59
+ expect { subject.log_in "Test", "qwe123" }.to raise_error MediawikiApi::LoginError, "EmptyPass"
60
+ end
61
+ end
62
+ end
63
+
64
+ describe "#create_page" do
65
+ before do
66
+ stub_request(:get, api_url).
67
+ with(query: { format: "json", action: "tokens", type: "edit" }).
68
+ to_return(body: { tokens: { edittoken: "t123" } }.to_json )
69
+ @edit_req = stub_request(:post, api_url).
70
+ with(body: { format: "json", action: "edit", title: "Test", text: "test123", token: "t123" })
71
+ end
72
+
73
+ it "creates a page using an edit token" do
74
+ subject.create_page("Test", "test123")
75
+ @edit_req.should have_been_requested
76
+ end
77
+
78
+ context "when API returns Success" do
79
+ before do
80
+ @edit_req.to_return(body: { result: "Success" }.to_json )
81
+ end
82
+
83
+ it "returns a MediawikiApi::Page"
84
+ end
85
+ end
86
+
87
+ describe "#delete_page" do
88
+ before do
89
+ stub_request(:get, api_url).
90
+ with(query: { format: "json", action: "tokens", type: "delete" }).
91
+ to_return(body: { tokens: { deletetoken: "t123" } }.to_json )
92
+ @delete_req = stub_request(:post, api_url).
93
+ with(body: { format: "json", action: "delete", title: "Test", reason: "deleting", token: "t123" })
94
+ end
95
+
96
+ it "deletes a page using a delete token" do
97
+ subject.delete_page("Test", "deleting")
98
+ @delete_req.should have_been_requested
99
+ end
100
+
101
+ # evaluate results
102
+ end
103
+
104
+ describe "#create_account" do
105
+ it "creates an account when API returns Success" do
106
+ stub_request(:post, api_url).
107
+ with(body: { format: "json", action: "createaccount", name: "Test", password: "qwe123" }).
108
+ to_return(body: { createaccount: body_base.merge({ result: "Success" }) }.to_json )
109
+
110
+ subject.create_account("Test", "qwe123").should be true
111
+ end
112
+
113
+ context "when API returns NeedToken" do
114
+ before do
115
+ headers = { "Set-Cookie" => "prefixSession=789; path=/; domain=localhost; HttpOnly" }
116
+
117
+ stub_request(:post, api_url).
118
+ with(body: { format: "json", action: "createaccount", name: "Test", password: "qwe123" }).
119
+ to_return(
120
+ body: { createaccount: body_base.merge({ result: "NeedToken", token: "456" }) }.to_json,
121
+ headers: { "Set-Cookie" => "prefixSession=789; path=/; domain=localhost; HttpOnly" }
122
+ )
123
+
124
+ @success_req = stub_request(:post, api_url).
125
+ with(body: { format: "json", action: "createaccount", name: "Test", password: "qwe123", token: "456" }).
126
+ with(headers: { "Cookie" => "prefixSession=789" }).
127
+ to_return(body: { createaccount: body_base.merge({ result: "Success" }) }.to_json )
128
+ end
129
+
130
+ it "creates an account" do
131
+ subject.create_account("Test", "qwe123").should be true
132
+ end
133
+
134
+ it "sends second request with token and cookies" do
135
+ subject.create_account "Test", "qwe123"
136
+ @success_req.should have_been_requested
137
+ end
138
+ end
139
+
140
+ # docs don't specify other results, but who knows
141
+ # http://www.mediawiki.org/wiki/API:Account_creation
142
+ context "when API returns neither Success nor NeedToken" do
143
+ before do
144
+ stub_request(:post, api_url).
145
+ with(body: { format: "json", action: "createaccount", name: "Test", password: "qwe123" }).
146
+ to_return(body: { createaccount: body_base.merge({ result: "WhoKnows" }) }.to_json )
147
+ end
148
+
149
+ it "raises error with proper message" do
150
+ expect { subject.create_account "Test", "qwe123" }.to raise_error MediawikiApi::CreateAccountError, "WhoKnows"
151
+ end
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,13 @@
1
+ require "webmock/rspec"
2
+ require "json"
3
+ require "mediawiki_api"
4
+
5
+ module TestHelpers
6
+ def api_url
7
+ "http://localhost/api.php"
8
+ end
9
+ end
10
+
11
+ RSpec.configure do |conf|
12
+ conf.include TestHelpers
13
+ end
metadata CHANGED
@@ -1,56 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amir Aharoni
8
8
  - Chris McMahon
9
9
  - Jeff Hall
10
+ - Juliusz Gonera
10
11
  - Zeljko Filipin
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2014-02-11 00:00:00.000000000 Z
15
+ date: 2014-03-13 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
- name: rest-client
18
+ name: faraday
18
19
  requirement: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - "~>"
21
22
  - !ruby/object:Gem::Version
22
- version: '1.6'
23
- - - ">="
23
+ version: 0.9.0
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
24
29
  - !ruby/object:Gem::Version
25
- version: 1.6.7
30
+ version: 0.9.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: faraday-cookie_jar
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - "~>"
36
+ - !ruby/object:Gem::Version
37
+ version: 0.0.6
26
38
  type: :runtime
27
39
  prerelease: false
28
40
  version_requirements: !ruby/object:Gem::Requirement
29
41
  requirements:
30
42
  - - "~>"
31
43
  - !ruby/object:Gem::Version
32
- version: '1.6'
44
+ version: 0.0.6
45
+ - !ruby/object:Gem::Dependency
46
+ name: bundler
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '1.3'
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '1.3'
59
+ - !ruby/object:Gem::Dependency
60
+ name: rake
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
33
63
  - - ">="
34
64
  - !ruby/object:Gem::Version
35
- version: 1.6.7
36
- description: Uses REST Client Ruby gem to communicate with MediaWiki API.
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: 2.14.1
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: 2.14.1
87
+ - !ruby/object:Gem::Dependency
88
+ name: webmock
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: 1.17.2
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 1.17.2
101
+ description: Uses adapter-agnostic Faraday gem to talk to the API.
37
102
  email:
38
103
  - amir.aharoni@mail.huji.ac.il
39
104
  - cmcmahon@wikimedia.org
40
105
  - jhall@wikimedia.org
106
+ - jgonera@wikimedia.org
41
107
  - zeljko.filipin@gmail.com
42
108
  executables: []
43
109
  extensions: []
44
110
  extra_rdoc_files: []
45
111
  files:
46
112
  - ".gitreview"
113
+ - ".rspec"
47
114
  - CREDITS
48
115
  - Gemfile
116
+ - Gemfile.lock
49
117
  - LICENSE.txt
50
118
  - README.md
51
119
  - lib/mediawiki_api.rb
120
+ - lib/mediawiki_api/client.rb
52
121
  - lib/mediawiki_api/version.rb
53
122
  - mediawiki_api.gemspec
123
+ - spec/client_spec.rb
124
+ - spec/spec_helper.rb
54
125
  homepage: https://github.com/zeljkofilipin/mediawiki_api
55
126
  licenses:
56
127
  - GPL-2
@@ -74,5 +145,7 @@ rubyforge_project:
74
145
  rubygems_version: 2.2.2
75
146
  signing_key:
76
147
  specification_version: 4
77
- summary: An easy way to work with MediaWiki API from Ruby.
78
- test_files: []
148
+ summary: A library for interacting with MediaWiki API from Ruby.
149
+ test_files:
150
+ - spec/client_spec.rb
151
+ - spec/spec_helper.rb