mediawiki_api 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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