go_cd_feed 1.1.1 → 1.1.2
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.
- data/Gemfile.lock +1 -1
- data/go_cd_feed.gemspec +1 -1
- data/lib/go_api_client/http_fetcher.rb +23 -2
- data/test/go_api_client/atom/feed_test.rb +6 -1
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/go_cd_feed.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "go_cd_feed"
|
6
|
-
s.version = '1.1.
|
6
|
+
s.version = '1.1.2'
|
7
7
|
s.authors = ["Nikhil Mungel", "Ketan Padegaonkar", "Shishir Das", "Bill DePhillips"]
|
8
8
|
s.email = ["hyfather@gmail.com", "KetanPadegaonkar@gmail.com", "shishir.das@gmail.com", "bill.dephillips@gmail.com"]
|
9
9
|
s.homepage = "http://github.com/rearadmiral/go-api-client.git"
|
@@ -4,16 +4,34 @@ require 'net/https'
|
|
4
4
|
module GoApiClient
|
5
5
|
class HttpFetcher
|
6
6
|
|
7
|
+
attr_reader :status_reporter
|
8
|
+
|
9
|
+
class StatusReporter
|
10
|
+
def on_request_start(url, options)
|
11
|
+
@start_time = Time.now
|
12
|
+
puts "[GoApiClient] fetching #{url}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def on_request_success(response, url, options)
|
16
|
+
seconds = Time.now - @start_time
|
17
|
+
puts "[GoApiClient] fetched #{url} in #{seconds}sec"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class QuietStatusReporter
|
22
|
+
def on_request_start(*args); end
|
23
|
+
def on_request_success(*args); end
|
24
|
+
end
|
25
|
+
|
7
26
|
def initialize(options={})
|
8
27
|
@username = options[:username]
|
9
28
|
@password = options[:password]
|
29
|
+
@status_reporter = options[:status_reporter] || ENV['QUIET'] ? QuietStatusReporter.new : StatusReporter.new
|
10
30
|
end
|
11
31
|
|
12
32
|
def get(url, options={})
|
13
33
|
uri = URI.parse(url)
|
14
34
|
|
15
|
-
puts "[DEBUG] fetching #{url}" unless ENV['QUIET']
|
16
|
-
|
17
35
|
password = options[:password] || uri.password || @password
|
18
36
|
username = options[:username] || uri.user || @username
|
19
37
|
params = options[:params] || {}
|
@@ -23,6 +41,8 @@ module GoApiClient
|
|
23
41
|
http = Net::HTTP.new(uri.host, uri.port)
|
24
42
|
http.use_ssl = uri.scheme == 'https'
|
25
43
|
|
44
|
+
status_reporter.on_request_start(uri, options)
|
45
|
+
|
26
46
|
res = http.start do |http|
|
27
47
|
req = Net::HTTP::Get.new(uri.request_uri)
|
28
48
|
req.basic_auth(username, password) if username || password
|
@@ -31,6 +51,7 @@ module GoApiClient
|
|
31
51
|
|
32
52
|
case res
|
33
53
|
when Net::HTTPSuccess
|
54
|
+
status_reporter.on_request_success(res, uri, options.merge(:url => uri))
|
34
55
|
return res
|
35
56
|
end
|
36
57
|
res.error!
|
@@ -13,7 +13,12 @@ module GoApiClient
|
|
13
13
|
assert_equal (25+4), feed.entries.count
|
14
14
|
end
|
15
15
|
|
16
|
-
test "should stop
|
16
|
+
test "should stop after page limit if specified" do
|
17
|
+
feed = GoApiClient::Atom::Feed.new('https://go-server.example.com/go/api/pipelines/tlb/stages.xml', nil, 1).fetch!
|
18
|
+
assert_equal 25, feed.entries.count
|
19
|
+
end
|
20
|
+
|
21
|
+
test "should not stop until first page if entry id not specified" do
|
17
22
|
stub_request(:get, "https://go-server.example.com/go/api/pipelines/tlb/stages.xml?before=7916973").to_return(:body => file_contents("pagination/stages_before_7916973.xml"))
|
18
23
|
|
19
24
|
feed = GoApiClient::Atom::Feed.new('https://go-server.example.com/go/api/pipelines/tlb/stages.xml').fetch!
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: go_cd_feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2014-07-
|
15
|
+
date: 2014-07-28 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: webmock
|