snitcher 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5ce9137c78af3585cd04a72db5dcfa25890c5c58
4
- data.tar.gz: 0382afa241770a4ce4eb1757fa3e3dd911ac608a
2
+ SHA256:
3
+ metadata.gz: 28c075e51d743b5bd9cfea27193db58b8eadd72774ac4d1478800ffe6b73fb12
4
+ data.tar.gz: e08200f4bc411eed2c909c91cac08bb993497063a8955f0155f499c27f35fc43
5
5
  SHA512:
6
- metadata.gz: 9f4d73519250309f111a2359162a4748eeccf10161aa3f37dce680372b11c2d611efd32c1da98a4c2246c0e3f653e00c6a832cf99964ca668c87049bb44a7f57
7
- data.tar.gz: 03a7310d071a11568fcb2f6d05abf74c69138dc8211715c9d8782431fada6d0136ddf5772e443f043aff40e6b5bf16b1483bf97534988dc95789165cc5361172
6
+ metadata.gz: f53823e4e0ba5ea1d435104de453427dcafa2f32a51bc092ad7f679c1b79a24a8ba0e9a06dcc7850b30e29c776d78e2b8652ec1099012de89b1093bfa8aa9232
7
+ data.tar.gz: a793e491ed792109ec1702287a575d893f215385863add7844242e6524cde7078b4479c1f1fef5fc762f906b0ba4bb3cd7df8dd6f40cfeeaaca3a16208b88d5a
@@ -14,7 +14,9 @@ rvm:
14
14
  - 2.0.0
15
15
  - 2.1
16
16
  - 2.2
17
- - 2.3.1
17
+ - 2.3
18
+ - 2.4
19
+ - 2.5
18
20
  - jruby
19
21
  - ruby-head
20
22
 
@@ -1,9 +1,12 @@
1
+ ## 0.4.1 / 2018-07-09
2
+ * [FEATURE] Added :status option to Snitcher.snitch! ([@gaffneyc](https://github.com/gaffneyc))
3
+ *
1
4
  ## 0.4.0 / 2016-06-20
2
5
  * [FEATURE] Added Snitcher::API for integrating with the DMS API ([@danabrit](https://github.com/danabrit))
3
6
  * [FEATURE] Added Snitcher.snitch! which raises exceptions on errors ([@gaffneyc](https://github.com/gaffneyc))
4
7
 
5
8
  ## 0.3.2 / 2015-08-13
6
- * [BUG] Fixed passing messaging during a check-in ([@ryoung](https://github.com/ryoung))
9
+ * [BUG] Fixed passing messages during a check-in ([@ryoung](https://github.com/ryoung))
7
10
 
8
11
  ## 0.3.1 / 2015-06-23
9
12
  * [ENHANCEMENT] Add a custom User-Agent
data/README.md CHANGED
@@ -23,6 +23,14 @@ You also may provide a message with the check in:
23
23
  Snitcher.snitch("c2354d53d2", message: "Finished in 23.8 seconds.")
24
24
  ```
25
25
 
26
+ Errors can be reported by providing the `status` option. A status of `nil`,
27
+ `0`, or `""` are all considered a success. Any other status is treated as a
28
+ failure.
29
+
30
+ ```ruby
31
+ Snitcher.snitch("c2354d53d2", status: 1)
32
+ ```
33
+
26
34
  The default timeout of 5 seconds can be overridden:
27
35
 
28
36
  ```ruby
@@ -17,6 +17,9 @@ module Snitcher
17
17
  # @option opts [String] :message Text message to include with the check-in.
18
18
  # The message is limited to 256 characters.
19
19
  #
20
+ # @option opts [String, Fixnum, nil] :status Exit code for the check-in. A
21
+ # status of "", nil, or 0 are all treated as the job finishing successfully.
22
+ #
20
23
  # @option opts [Float, Fixnum] :timeout Number of seconds to wait for a
21
24
  # response from the server. Default is 5 seconds.
22
25
  #
@@ -26,8 +29,18 @@ module Snitcher
26
29
  #
27
30
  # @return [Boolean] if the check-in succeeded.
28
31
  def snitch!(token, opts = {})
29
- uri = URI.parse(checkin_url(opts, token))
30
- uri.query = URI.encode_www_form(m: opts[:message]) if opts[:message]
32
+ params = {}
33
+ params[:m] = opts[:message] if opts[:message]
34
+
35
+ # It's unnecessary to send an empty status
36
+ if opts[:status] && opts[:status] != ""
37
+ params[:s] = opts[:status]
38
+ end
39
+
40
+ uri = URI.parse(checkin_url(opts, token))
41
+ if params.any?
42
+ uri.query = URI.encode_www_form(params)
43
+ end
31
44
 
32
45
  opts = initialize_opts(opts, uri)
33
46
 
@@ -51,6 +64,9 @@ module Snitcher
51
64
  # @option opts [String] :message Text message to include with the check-in.
52
65
  # The message is limited to 256 characters.
53
66
  #
67
+ # @option opts [String, Fixnum, nil] :status Exit code for the check-in. A
68
+ # status of "", nil, or 0 are all treated as the job finishing successfully.
69
+ #
54
70
  # @option opts [Float, Fixnum] :timeout Number of seconds to wait for a
55
71
  # response from the server. Default is 5 seconds.
56
72
  #
@@ -74,7 +90,7 @@ module Snitcher
74
90
  open_timeout: timeout,
75
91
  read_timeout: timeout,
76
92
  ssl_timeout: timeout,
77
- use_ssl: use_ssl?(uri)
93
+ use_ssl: use_ssl?(uri),
78
94
  }
79
95
  end
80
96
 
@@ -1,3 +1,3 @@
1
1
  module Snitcher
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1".freeze
3
3
  end
@@ -48,6 +48,19 @@ describe Snitcher do
48
48
  end
49
49
  end
50
50
 
51
+ specify "with status" do
52
+ Snitcher.snitch!(token, status: "0")
53
+ expect(a_request(:get, "https://nosnch.in/#{token}?s=0")).to have_been_made
54
+
55
+ Snitcher.snitch!(token, status: 1237)
56
+ expect(a_request(:get, "https://nosnch.in/#{token}?s=1237")).to have_been_made
57
+
58
+ # Both nil and "" avoid adding the `s` query param.
59
+ Snitcher.snitch!(token, status: nil)
60
+ Snitcher.snitch!(token, status: "")
61
+ expect(a_request(:get, "https://nosnch.in/#{token}")).to have_been_made.twice
62
+ end
63
+
51
64
  it "raises a Timeout::Error if the request timesout" do
52
65
  stub_request(:get, "https://nosnch.in/#{token}").to_timeout
53
66
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snitcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Collective Idea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-20 00:00:00.000000000 Z
11
+ date: 2018-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.6.4
93
+ rubygems_version: 2.7.6
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Simple API client for deadmanssnitch.com