mediawiki_api 0.3.0 → 0.3.1

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.
@@ -1,87 +1,87 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe MediawikiApi::Response do
4
4
  let(:response) { MediawikiApi::Response.new(faraday_response, envelope) }
5
5
 
6
- let(:faraday_response) { double("Faraday::Response", body: body) }
7
- let(:body) { "{}" }
6
+ let(:faraday_response) { double('Faraday::Response', body: body) }
7
+ let(:body) { '{}' }
8
8
  let(:response_object) { JSON.parse(body) }
9
9
  let(:envelope) { [] }
10
10
 
11
- describe "#data" do
11
+ describe '#data' do
12
12
  subject { response.data }
13
13
 
14
- context "with a JSON object response body" do
14
+ context 'with a JSON object response body' do
15
15
  let(:body) { '{ "query": { "result": "success" } }' }
16
16
 
17
- context "and no expected envelope" do
17
+ context 'and no expected envelope' do
18
18
  let(:envelope) { [] }
19
19
 
20
20
  it { is_expected.to eq(response_object) }
21
21
  end
22
22
 
23
- context "and a single-level envelope" do
24
- let(:envelope) { ["query"] }
25
- let(:nested_object) { response_object["query"] }
23
+ context 'and a single-level envelope' do
24
+ let(:envelope) { ['query'] }
25
+ let(:nested_object) { response_object['query'] }
26
26
 
27
27
  it { is_expected.to eq(nested_object) }
28
28
  end
29
29
 
30
- context "and a multi-level envelope" do
31
- let(:envelope) { ["query", "result"] }
32
- let(:nested_object) { response_object["query"]["result"] }
30
+ context 'and a multi-level envelope' do
31
+ let(:envelope) { %w(query result) }
32
+ let(:nested_object) { response_object['query']['result'] }
33
33
 
34
34
  it { is_expected.to eq(nested_object) }
35
35
  end
36
36
 
37
37
  context "and a multi-level envelope that doesn't completely match" do
38
- let(:envelope) { ["query", "something"] }
39
- let(:partially_nested_object) { response_object["query"] }
38
+ let(:envelope) { %w(query something) }
39
+ let(:partially_nested_object) { response_object['query'] }
40
40
 
41
41
  it { is_expected.to eq(partially_nested_object) }
42
42
  end
43
43
  end
44
44
 
45
- context "with a JSON array response body" do
45
+ context 'with a JSON array response body' do
46
46
  let(:body) { '[ "something" ]' }
47
47
 
48
- context "with any expected envelope" do
49
- let(:envelope) { ["what", "ever"] }
48
+ context 'with any expected envelope' do
49
+ let(:envelope) { %w(what ever) }
50
50
 
51
51
  it { is_expected.to eq(response_object) }
52
52
  end
53
53
  end
54
54
  end
55
55
 
56
- describe "#warnings" do
56
+ describe '#warnings' do
57
57
  subject { response.warnings }
58
58
 
59
- context "where the response contains no warnings" do
59
+ context 'where the response contains no warnings' do
60
60
  let(:body) { '{ "query": { "result": "success" } }' }
61
61
 
62
62
  it { is_expected.to be_empty }
63
63
  end
64
64
 
65
- context "where the response contains warnings" do
65
+ context 'where the response contains warnings' do
66
66
  let(:body) { '{ "warnings": { "main": { "*": "sorta bad message" } } }' }
67
67
 
68
68
  it { is_expected.to_not be_empty }
69
- it { is_expected.to include("sorta bad message") }
69
+ it { is_expected.to include('sorta bad message') }
70
70
  end
71
71
  end
72
72
 
73
- describe "#warnings?" do
73
+ describe '#warnings?' do
74
74
  subject { response.warnings? }
75
75
 
76
76
  before { allow(response).to receive(:warnings) { warnings } }
77
77
 
78
- context "where there are warnings" do
79
- let(:warnings) { ["warning"] }
78
+ context 'where there are warnings' do
79
+ let(:warnings) { ['warning'] }
80
80
 
81
81
  it { is_expected.to be(true) }
82
82
  end
83
83
 
84
- context "where there are no warnings" do
84
+ context 'where there are no warnings' do
85
85
  let(:warnings) { [] }
86
86
 
87
87
  it { is_expected.to be(false) }
data/spec/spec_helper.rb CHANGED
@@ -1,2 +1,2 @@
1
- require "bundler/setup"
1
+ require 'bundler/setup'
2
2
  Bundler.require(:default, :development)
@@ -1,34 +1,37 @@
1
- module MediawikiApi::RequestHelpers
2
- def api_url
3
- "http://localhost/api.php"
4
- end
1
+ module MediawikiApi
2
+ # testing helpers
3
+ module RequestHelpers
4
+ def api_url
5
+ 'http://localhost/api.php'
6
+ end
5
7
 
6
- def index_url
7
- "http://localhost/w/index.php"
8
- end
8
+ def index_url
9
+ 'http://localhost/w/index.php'
10
+ end
9
11
 
10
- def mock_token
11
- "token123"
12
- end
12
+ def mock_token
13
+ 'token123'
14
+ end
13
15
 
14
- def stub_api_request(method, params)
15
- params = params.each.with_object({}) { |(k, v), p| p[k] = v.to_s }
16
+ def stub_api_request(method, params)
17
+ params = params.each.with_object({}) { |(k, v), p| p[k] = v.to_s }
16
18
 
17
- stub_request(method, api_url).
18
- with((method == :post ? :body : :query) => params.merge(format: "json"))
19
- end
19
+ stub_request(method, api_url).
20
+ with((method == :post ? :body : :query) => params.merge(format: 'json'))
21
+ end
20
22
 
21
- def stub_action_request(action, params = {})
22
- method = params.delete(:http_method) || :post
23
+ def stub_action_request(action, params = {})
24
+ method = params.delete(:http_method) || :post
23
25
 
24
- stub_api_request(method, params.merge(action: action, token: mock_token))
25
- end
26
+ stub_api_request(method, params.merge(action: action, token: mock_token))
27
+ end
26
28
 
27
- def stub_token_request(type, warning = nil)
28
- response = { tokens: { "#{type}token" => mock_token } }
29
- response[:warnings] = { type => { "*" => [warning] } } unless warning.nil?
29
+ def stub_token_request(type, warning = nil)
30
+ response = { tokens: { "#{type}token" => mock_token } }
31
+ response[:warnings] = { type => { '*' => [warning] } } unless warning.nil?
30
32
 
31
- stub_api_request(:get, action: "tokens", type: type).
32
- to_return(body: response.to_json)
33
+ stub_api_request(:get, action: 'tokens', type: type).
34
+ to_return(body: response.to_json)
35
+ end
33
36
  end
34
37
  end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amir Aharoni
8
+ - Asaf Bartov
8
9
  - Chris McMahon
9
10
  - Dan Duvall
10
11
  - Jeff Hall
@@ -13,147 +14,162 @@ authors:
13
14
  autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
- date: 2014-10-14 00:00:00.000000000 Z
17
+ date: 2015-03-03 00:00:00.000000000 Z
17
18
  dependencies:
18
19
  - !ruby/object:Gem::Dependency
19
20
  name: faraday
20
21
  requirement: !ruby/object:Gem::Requirement
21
22
  requirements:
22
- - - "~>"
23
+ - - ~>
23
24
  - !ruby/object:Gem::Version
24
25
  version: '0.9'
25
- - - ">="
26
+ - - '>='
26
27
  - !ruby/object:Gem::Version
27
28
  version: 0.9.0
28
29
  type: :runtime
29
30
  prerelease: false
30
31
  version_requirements: !ruby/object:Gem::Requirement
31
32
  requirements:
32
- - - "~>"
33
+ - - ~>
33
34
  - !ruby/object:Gem::Version
34
35
  version: '0.9'
35
- - - ">="
36
+ - - '>='
36
37
  - !ruby/object:Gem::Version
37
38
  version: 0.9.0
38
39
  - !ruby/object:Gem::Dependency
39
40
  name: faraday-cookie_jar
40
41
  requirement: !ruby/object:Gem::Requirement
41
42
  requirements:
42
- - - "~>"
43
+ - - ~>
43
44
  - !ruby/object:Gem::Version
44
45
  version: '0.0'
45
- - - ">="
46
+ - - '>='
46
47
  - !ruby/object:Gem::Version
47
48
  version: 0.0.6
48
49
  type: :runtime
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - "~>"
53
+ - - ~>
53
54
  - !ruby/object:Gem::Version
54
55
  version: '0.0'
55
- - - ">="
56
+ - - '>='
56
57
  - !ruby/object:Gem::Version
57
58
  version: 0.0.6
58
59
  - !ruby/object:Gem::Dependency
59
60
  name: bundler
60
61
  requirement: !ruby/object:Gem::Requirement
61
62
  requirements:
62
- - - "~>"
63
+ - - ~>
63
64
  - !ruby/object:Gem::Version
64
65
  version: '1.3'
65
66
  type: :development
66
67
  prerelease: false
67
68
  version_requirements: !ruby/object:Gem::Requirement
68
69
  requirements:
69
- - - "~>"
70
+ - - ~>
70
71
  - !ruby/object:Gem::Version
71
72
  version: '1.3'
72
73
  - !ruby/object:Gem::Dependency
73
74
  name: rake
74
75
  requirement: !ruby/object:Gem::Requirement
75
76
  requirements:
76
- - - "~>"
77
+ - - ~>
77
78
  - !ruby/object:Gem::Version
78
79
  version: '0'
79
80
  type: :development
80
81
  prerelease: false
81
82
  version_requirements: !ruby/object:Gem::Requirement
82
83
  requirements:
83
- - - "~>"
84
+ - - ~>
84
85
  - !ruby/object:Gem::Version
85
86
  version: '0'
86
87
  - !ruby/object:Gem::Dependency
87
88
  name: rspec
88
89
  requirement: !ruby/object:Gem::Requirement
89
90
  requirements:
90
- - - "~>"
91
+ - - ~>
91
92
  - !ruby/object:Gem::Version
92
93
  version: '3.0'
93
- - - ">="
94
+ - - '>='
94
95
  - !ruby/object:Gem::Version
95
96
  version: 3.0.0
96
97
  type: :development
97
98
  prerelease: false
98
99
  version_requirements: !ruby/object:Gem::Requirement
99
100
  requirements:
100
- - - "~>"
101
+ - - ~>
101
102
  - !ruby/object:Gem::Version
102
103
  version: '3.0'
103
- - - ">="
104
+ - - '>='
104
105
  - !ruby/object:Gem::Version
105
106
  version: 3.0.0
107
+ - !ruby/object:Gem::Dependency
108
+ name: rubocop
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: 0.26.1
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 0.26.1
106
121
  - !ruby/object:Gem::Dependency
107
122
  name: webmock
108
123
  requirement: !ruby/object:Gem::Requirement
109
124
  requirements:
110
- - - "~>"
125
+ - - ~>
111
126
  - !ruby/object:Gem::Version
112
127
  version: '1.17'
113
- - - ">="
128
+ - - '>='
114
129
  - !ruby/object:Gem::Version
115
130
  version: 1.17.2
116
131
  type: :development
117
132
  prerelease: false
118
133
  version_requirements: !ruby/object:Gem::Requirement
119
134
  requirements:
120
- - - "~>"
135
+ - - ~>
121
136
  - !ruby/object:Gem::Version
122
137
  version: '1.17'
123
- - - ">="
138
+ - - '>='
124
139
  - !ruby/object:Gem::Version
125
140
  version: 1.17.2
126
141
  - !ruby/object:Gem::Dependency
127
142
  name: redcarpet
128
143
  requirement: !ruby/object:Gem::Requirement
129
144
  requirements:
130
- - - ">="
145
+ - - '>='
131
146
  - !ruby/object:Gem::Version
132
147
  version: '0'
133
148
  type: :development
134
149
  prerelease: false
135
150
  version_requirements: !ruby/object:Gem::Requirement
136
151
  requirements:
137
- - - ">="
152
+ - - '>='
138
153
  - !ruby/object:Gem::Version
139
154
  version: '0'
140
155
  - !ruby/object:Gem::Dependency
141
156
  name: yard
142
157
  requirement: !ruby/object:Gem::Requirement
143
158
  requirements:
144
- - - ">="
159
+ - - '>='
145
160
  - !ruby/object:Gem::Version
146
161
  version: '0'
147
162
  type: :development
148
163
  prerelease: false
149
164
  version_requirements: !ruby/object:Gem::Requirement
150
165
  requirements:
151
- - - ">="
166
+ - - '>='
152
167
  - !ruby/object:Gem::Version
153
168
  version: '0'
154
169
  description: Uses adapter-agnostic Faraday gem to talk to MediaWiki API.
155
170
  email:
156
171
  - amir.aharoni@mail.huji.ac.il
172
+ - asaf.bartov@gmail.com
157
173
  - cmcmahon@wikimedia.org
158
174
  - dduvall@wikimedia.org
159
175
  - jhall@wikimedia.org
@@ -163,12 +179,11 @@ executables: []
163
179
  extensions: []
164
180
  extra_rdoc_files: []
165
181
  files:
166
- - ".gitignore"
167
- - ".gitreview"
168
- - ".rspec"
169
- - ".rubocop.yml"
170
- - ".rubocop_todo.yml"
171
- - ".yardopts"
182
+ - .gitignore
183
+ - .gitreview
184
+ - .rspec
185
+ - .rubocop.yml
186
+ - .yardopts
172
187
  - CREDITS
173
188
  - Gemfile
174
189
  - LICENSE.txt
@@ -193,17 +208,17 @@ require_paths:
193
208
  - lib
194
209
  required_ruby_version: !ruby/object:Gem::Requirement
195
210
  requirements:
196
- - - ">="
211
+ - - '>='
197
212
  - !ruby/object:Gem::Version
198
213
  version: '0'
199
214
  required_rubygems_version: !ruby/object:Gem::Requirement
200
215
  requirements:
201
- - - ">="
216
+ - - '>='
202
217
  - !ruby/object:Gem::Version
203
218
  version: '0'
204
219
  requirements: []
205
220
  rubyforge_project:
206
- rubygems_version: 2.2.2
221
+ rubygems_version: 2.0.14
207
222
  signing_key:
208
223
  specification_version: 4
209
224
  summary: A library for interacting with MediaWiki API from Ruby.
@@ -212,3 +227,4 @@ test_files:
212
227
  - spec/response_spec.rb
213
228
  - spec/spec_helper.rb
214
229
  - spec/support/request_helpers.rb
230
+ has_rdoc:
data/.rubocop_todo.yml DELETED
@@ -1,102 +0,0 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2014-09-10 11:44:33 -0700 using RuboCop version 0.26.0.
3
- # The point is for the user to remove these configuration records
4
- # one by one as the offenses are removed from the code base.
5
- # Note that changes in the inspected code, or installation of new
6
- # versions of RuboCop, may require this file to be generated again.
7
-
8
- # Offense count: 3
9
- Lint/UselessAssignment:
10
- Enabled: false
11
-
12
- # Offense count: 1
13
- # Configuration parameters: CountComments.
14
- Metrics/ClassLength:
15
- Max: 122
16
-
17
- # Offense count: 1
18
- Metrics/CyclomaticComplexity:
19
- Max: 7
20
-
21
- # Offense count: 53
22
- # Configuration parameters: AllowURI.
23
- Metrics/LineLength:
24
- Max: 182
25
-
26
- # Offense count: 3
27
- # Configuration parameters: CountComments.
28
- Metrics/MethodLength:
29
- Max: 13
30
-
31
- # Offense count: 1
32
- # Cop supports --auto-correct.
33
- Style/Alias:
34
- Enabled: false
35
-
36
- # Offense count: 9
37
- # Cop supports --auto-correct.
38
- # Configuration parameters: EnforcedStyle, SupportedStyles.
39
- Style/BracesAroundHashParameters:
40
- Enabled: false
41
-
42
- # Offense count: 1
43
- # Configuration parameters: EnforcedStyle, SupportedStyles.
44
- Style/ClassAndModuleChildren:
45
- Enabled: false
46
-
47
- # Offense count: 6
48
- Style/Documentation:
49
- Enabled: false
50
-
51
- # Offense count: 30
52
- # Cop supports --auto-correct.
53
- # Configuration parameters: EnforcedStyle, SupportedStyles.
54
- Style/DotPosition:
55
- Enabled: false
56
-
57
- # Offense count: 2
58
- # Cop supports --auto-correct.
59
- Style/LeadingCommentSpace:
60
- Enabled: false
61
-
62
- # Offense count: 2
63
- # Cop supports --auto-correct.
64
- # Configuration parameters: PreferredDelimiters.
65
- Style/PercentLiteralDelimiters:
66
- Enabled: false
67
-
68
- # Offense count: 1
69
- Style/RegexpLiteral:
70
- MaxSlashes: 0
71
-
72
- # Offense count: 6
73
- # Cop supports --auto-correct.
74
- # Configuration parameters: EnforcedStyle, SupportedStyles.
75
- Style/SignalException:
76
- Enabled: false
77
-
78
- # Offense count: 9
79
- # Cop supports --auto-correct.
80
- Style/SpaceInsideParens:
81
- Enabled: false
82
-
83
- # Offense count: 1
84
- # Cop supports --auto-correct.
85
- Style/SpecialGlobalVars:
86
- Enabled: false
87
-
88
- # Offense count: 299
89
- # Cop supports --auto-correct.
90
- # Configuration parameters: EnforcedStyle, SupportedStyles.
91
- Style/StringLiterals:
92
- Enabled: false
93
-
94
- # Offense count: 2
95
- # Cop supports --auto-correct.
96
- Style/UnneededPercentQ:
97
- Enabled: false
98
-
99
- # Offense count: 4
100
- # Cop supports --auto-correct.
101
- Style/WordArray:
102
- MinSize: 2