gerry 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e200dab14c89753f41cfb890952e8cb061b7c5a8
4
- data.tar.gz: ace3546df83782b1c5d0216950b169e7c122a2be
3
+ metadata.gz: 54504c142edb7bfbe2b9bcc7ad1c4e0d8e288ec0
4
+ data.tar.gz: 52bb964e310b1d57507e2443d6eb5170939ba2f7
5
5
  SHA512:
6
- metadata.gz: b4a79250d3610b37ab47590eda2f3b624c34b4ec2f490fb12df8229dfd818afc3f2473eddd9cad6ef60cc2257088b6e6686dcb8bcf66d380230daa47d2f49e95
7
- data.tar.gz: 0e03a33a5d0bb547e08588e2ca22dcbf94b50e79501264dd13d6842b8316db69a29de2109b784de844fd87a1b08c98a024db67c124c1cf946893fbace444fd39
6
+ metadata.gz: a9edca037aead6cf979a3f331de2a7122fba12de1fd171517bbf439912223cf4c375bfe3d510ed9724acb5820745a15de91900ffba09130f7d6c02fd827e0cea
7
+ data.tar.gz: 01c5ca61b668906666d7599184aefeebfc7779192f172ecddd47eb51f5f08631a55831ca01264f84fbfc848fee2d68468469e172ac431f4bab581bb80c1dea62
@@ -33,14 +33,13 @@ module Gerry
33
33
  end
34
34
 
35
35
  result = parse(response)
36
- unless result.is_a?(Array) && result.last.is_a?(Hash) && result.last.delete('_more_changes')
37
- return result
38
- end
36
+ return result unless result.is_a?(Array) && result.last.is_a?(Hash)
39
37
 
40
38
  all_results.concat(result)
39
+ return all_results unless result.last.delete('_more_changes')
41
40
 
42
41
  # Append the start parameter to the URL, overriding any previous start parameter.
43
- url = orig_url + "&S=#{start + all_results.size}"
42
+ url = orig_url + "#{query ? '&' : '?'}S=#{start + all_results.size}"
44
43
  end
45
44
 
46
45
  all_results
data/lib/gerry/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Gerry
2
2
 
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
 
5
5
  end
data/spec/changes_spec.rb CHANGED
@@ -1,32 +1,49 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe '.changes' do
3
+ describe '.changes' do
4
4
  it 'should fetch all changes' do
5
- stub = stub_get('/changes/', 'changes.json')
6
-
5
+ stub = stub_get('/changes/', 'changes.json')
6
+
7
7
  client = MockGerry.new
8
8
  changes = client.changes
9
-
9
+
10
10
  expect(stub).to have_been_requested
11
-
11
+
12
12
  expect(changes[0]['project']).to eq('awesome')
13
13
  expect(changes[0]['branch']).to eq('master')
14
-
14
+
15
15
  expect(changes[1]['project']).to eq('clean')
16
16
  expect(changes[1]['subject']).to eq('Refactor code')
17
17
  expect(changes[1]['owner']['name']).to eq('Batman')
18
18
  end
19
-
19
+
20
+ it 'should fetch all changes in batches' do
21
+ stub_batch_0 = stub_get('/changes/', 'changes_batch_0.json')
22
+ stub_batch_1 = stub_get('/changes/?S=1', 'changes_batch_1.json')
23
+
24
+ client = MockGerry.new
25
+ changes = client.changes
26
+
27
+ expect(stub_batch_0).to have_been_requested
28
+ expect(stub_batch_1).to have_been_requested
29
+
30
+ expect(changes[0]['project']).to eq('awesome')
31
+ expect(changes[0]['branch']).to eq('master')
32
+
33
+ expect(changes[1]['project']).to eq('clean')
34
+ expect(changes[1]['subject']).to eq('Refactor code')
35
+ expect(changes[1]['owner']['name']).to eq('Batman')
36
+ end
37
+
20
38
  it 'should fetch all open changes' do
21
-
22
- stub = stub_get('/changes/?q=is:open+owner:self', 'open_changes.json')
23
-
39
+ stub = stub_get('/changes/?q=is:open+owner:self', 'open_changes.json')
40
+
24
41
  client = MockGerry.new
25
42
  changes = client.changes(['q=is:open+owner:self'])
26
-
43
+
27
44
  expect(stub).to have_been_requested
28
-
45
+
29
46
  expect(changes[0]['status']).to eq('OPEN')
30
47
  expect(changes[0]['owner']['name']).to eq('The Duke')
31
48
  end
32
- end
49
+ end
@@ -0,0 +1,18 @@
1
+ )]}'
2
+ [
3
+ {
4
+ "project": "awesome",
5
+ "branch": "master",
6
+ "id": "Idd8747a5ea93bb9bddf7695bab25670be135f777",
7
+ "subject": "Add an awesome feature",
8
+ "status": "NEW",
9
+ "created": "2012-09-12 15:54:21.531000000",
10
+ "updated": "2012-10-13 01:34:40.511000000",
11
+ "_sortkey": "00115dfe00009334",
12
+ "_number": 3,
13
+ "owner": {
14
+ "name": "The Duke"
15
+ },
16
+ "_more_changes": true
17
+ }
18
+ ]
@@ -0,0 +1,17 @@
1
+ )]}'
2
+ [
3
+ {
4
+ "project": "clean",
5
+ "branch": "master",
6
+ "id": "Idac803deea68faa1294b3fa5bf814277e899f075",
7
+ "subject": "Refactor code",
8
+ "status": "NEW",
9
+ "created": "2012-09-12 15:51:30.605000000",
10
+ "updated": "2012-10-13 00:45:26.431000000",
11
+ "_sortkey": "00205dcddd00937d",
12
+ "_number": 42,
13
+ "owner": {
14
+ "name": "Batman"
15
+ }
16
+ }
17
+ ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gerry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabian Mettler
@@ -150,6 +150,8 @@ files:
150
150
  - spec/fixtures/account_groups.json
151
151
  - spec/fixtures/capabilities.json
152
152
  - spec/fixtures/changes.json
153
+ - spec/fixtures/changes_batch_0.json
154
+ - spec/fixtures/changes_batch_1.json
153
155
  - spec/fixtures/group_members.json
154
156
  - spec/fixtures/groups.json
155
157
  - spec/fixtures/open_changes.json
@@ -191,6 +193,8 @@ test_files:
191
193
  - spec/fixtures/account_groups.json
192
194
  - spec/fixtures/capabilities.json
193
195
  - spec/fixtures/changes.json
196
+ - spec/fixtures/changes_batch_0.json
197
+ - spec/fixtures/changes_batch_1.json
194
198
  - spec/fixtures/group_members.json
195
199
  - spec/fixtures/groups.json
196
200
  - spec/fixtures/open_changes.json