drone-builds 0.2.8 → 0.2.9

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: 15dfbf1b836c6547887459291d90ec45d5cfc8b9
4
- data.tar.gz: 112c4d4a9038a8beca8d6cfec63d04601c169701
3
+ metadata.gz: 495c16f3d5f8531ee5471c5a7257022dff406a01
4
+ data.tar.gz: 07e717b39c8b1d7aee0741cf2f73e1ad96861993
5
5
  SHA512:
6
- metadata.gz: d7ac297e95f733353e8e516f7f490eb84344ae3022f6e60ff150f103eea77fb4dd99fe7fb9969eadc36e51e5b572956c50e080ea2f5232f31444c51e5bd45804
7
- data.tar.gz: 36429ee44559f8430beea939b86c14954ef12adeac536cbc8abb04c76931ba65ab65d25fbde840d48f92f4f803a2233f07ce50468a9e42049b4a753869ce0853
6
+ metadata.gz: 8b9950472c3fad4c7ecddc8d8d38755c3316a8891719dd29055a892ee85597503ed9f78d811b25f3e35e0809151dffd59595e55b58eb80ba43938e26a8b2fbe3
7
+ data.tar.gz: ae785181d44491a48154588b868363c7a2034473c7fbde40e9b1df4f5500cadafdf27b5da9456cde42e0a8606f74739f94617b7330573170e2c6bb0a0f1088ff
data/lib/drone/builds.rb CHANGED
@@ -23,10 +23,14 @@ module Drone
23
23
  json_api(builds_url).first(limit || DEFAULT_LIMIT).reverse
24
24
  end
25
25
 
26
- def show(id, filter: nil)
27
- text_api(logs_url(id)).lines.each { |l| yield l if filter.nil? || l.include?(filter) }
26
+ def show(id, filter: nil, context: nil)
27
+ text_api(logs_url(id)).lines.each do |l|
28
+ yield l if show_line(l, filter: filter, context: context)
29
+ end
28
30
  rescue OpenURI::HTTPError
29
- stream_api(stream_url(id)) { |l| yield l if filter.nil? || l.include?(filter) }
31
+ stream_api(stream_url(id)) do |l|
32
+ yield l if show_line(l, filter: filter, context: context)
33
+ end
30
34
  end
31
35
 
32
36
  private
@@ -79,5 +83,21 @@ module Drone
79
83
  lines = data.lines.grep(/^data:/).map { |l| l.gsub(/^data:/, '') }
80
84
  lines.map(&:strip).compact.join("\n")
81
85
  end
86
+
87
+ def show_line(line, filter:, context:)
88
+ return true if filter.nil?
89
+
90
+ @count ||= 0
91
+
92
+ if line.include?(filter)
93
+ @count = context
94
+ true
95
+ elsif @count > 0
96
+ @count -= 1
97
+ true
98
+ else
99
+ false
100
+ end
101
+ end
82
102
  end
83
103
  end
@@ -25,6 +25,7 @@ class Drone::Builds::Cli < Thor
25
25
 
26
26
  desc 'show', 'show a build'
27
27
  method_option :filter, type: :string, aliases: '-f', desc: 'filter builds output lines'
28
+ method_option :context, type: :numeric, aliases: '-c', desc: 'number of lines after filter match'
28
29
  method_option :last, type: :numeric, default: 1, aliases: '-l', desc: 'show nth last build'
29
30
  def show(id = nil)
30
31
  if id.nil? || id == 'l' || id == 'last'
@@ -34,7 +35,9 @@ class Drone::Builds::Cli < Thor
34
35
 
35
36
  abort 'id is required' if id.to_s.empty?
36
37
 
37
- self.class.client.show(id, filter: options[:filter]) { |line| puts line }
38
+ self.class.client.show(id, filter: options[:filter], context: options[:context]) do |line|
39
+ puts line
40
+ end
38
41
  end
39
42
 
40
43
  desc 'version', 'version used'
@@ -1,5 +1,5 @@
1
1
  module Drone
2
2
  class Builds
3
- VERSION = '0.2.8'.freeze
3
+ VERSION = '0.2.9'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drone-builds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-18 00:00:00.000000000 Z
11
+ date: 2017-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize