slack_tsuribari 0.1.1 → 0.2.0

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
2
  SHA256:
3
- metadata.gz: c5b261a309303c48afa7c14814d0602e948ba5aba1255298563952c5f40f32dc
4
- data.tar.gz: 8debbcdbe90a6d67ce2fdc44d2ab22a71b9b44e2d0d85784bb88194321f4ab88
3
+ metadata.gz: 56e497a4bc1b1c809c538a6893f7d4fc8e78b56d53a034c67883fa7b464b5ff0
4
+ data.tar.gz: 1e3a88c6ff3df4d87f5e8b823c2686a8d184cb17b0d1d57cee67a09eb7528175
5
5
  SHA512:
6
- metadata.gz: 247d6f796dc88ebdc2494a310f345e9c24d246d16d636e088d7136eaa15482686f1fe7313410c4858eb2f2bf0983ce784d112f35b1687ddd552294b54beebcfa
7
- data.tar.gz: 85ed2be7cca5e0d41197f02120af74bf1645e847637c5764ab4b381a4f6290f7fc0543a638727235344989e874a3fc6faefdc23c8a6f9c14a8892e7465788277
6
+ metadata.gz: 8489f976de55e5e92497eb1b3d4a094b988180e7c8089a627bc2c4919e880de46be33b60b34cfb19add7cada1a99902a966bc40b5da14a5fa6cdedcf1c8e98ed
7
+ data.tar.gz: 2adea9bc419ac63771446108978ae4fdb420757f271891d12760d554146cc57b95fda2fd0e11e886ab390d4aa9d22c542b4c2589f021d949d66e02d3b73133d1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Change log
2
2
 
3
+ ## 0.2.0 / 2020-05-06
4
+ - [Add raise error when http response is not 200](https://github.com/nekomaho/slack-tsuribari/pull/4)
5
+
6
+ **BREAKING CHANGES**
7
+
8
+ From v0.2.0, if slack does not return 200 as HTTP status code, exception will be raised by default.
9
+ The exceptions are the same as those raised with `Net::HTTPResponse#value`.
10
+ If you don't want to raise the exception like the previous version, specify `raise_error: false` in config.
11
+
12
+ ```
13
+ hook = SlackTsuribari::Hook.config do |config|
14
+ config.uri = 'uri'
15
+ config.raise_errror = false
16
+ end
17
+ ```
18
+
3
19
  ## 0.1.1 / 2020-04-28
4
20
  - [Specified the version of rubies ](https://github.com/nekomaho/slack-tsuribari/pull/3)
5
21
  - [Use ruby/setup-ruby for CI ](https://github.com/nekomaho/slack-tsuribari/pull/2)
@@ -18,9 +18,9 @@ module SlackTsuribari
18
18
 
19
19
  def throw_action(hook, payload, auto_detach)
20
20
  hook.attach(payload)
21
- Connection.new(hook.uri, hook.proxy_setting).post(hook.payload_to_json).tap do
22
- hook.detach if auto_detach
23
- end
21
+ Connection.new(hook.uri, hook.setting).post(hook.payload_to_json)
22
+ ensure
23
+ hook.detach if auto_detach
24
24
  end
25
25
  end
26
26
  end
@@ -6,6 +6,7 @@ module SlackTsuribari
6
6
  class Connection
7
7
  attr_reader :scheme, :host, :port, :path
8
8
  attr_reader :proxy_addr, :proxy_port, :proxy_user, :proxy_pass, :no_proxy
9
+ attr_reader :raise_error
9
10
 
10
11
  def initialize(uri, options = {})
11
12
  URI.parse(uri).tap do |parse_uri|
@@ -19,12 +20,16 @@ module SlackTsuribari
19
20
  @proxy_user = options[:proxy_user] || nil
20
21
  @proxy_pass = options[:proxy_pass] || nil
21
22
  @no_proxy = options[:no_proxy] || nil
23
+ @raise_error = options.fetch(:raise_error, true)
22
24
  end
23
25
 
24
26
  def post(data, header = { 'Content-Type' => 'application/json' })
25
27
  Net::HTTP.new(host, port, proxy_addr, proxy_port, proxy_user, proxy_pass, no_proxy).yield_self do |http|
26
28
  http.use_ssl = scheme == 'https'
27
- http.post(path, data, header)
29
+ http.post(path, data, header).tap do |response|
30
+ # value method refers to https://docs.ruby-lang.org/en/2.7.0/Net/HTTPResponse.html#method-i-value
31
+ response.value if raise_error
32
+ end
28
33
  end
29
34
  end
30
35
  end
@@ -24,12 +24,13 @@ module SlackTsuribari
24
24
  :proxy_pass,
25
25
  :no_proxy,
26
26
  :pre_payload,
27
+ :raise_error,
27
28
  keyword_init: true
28
29
  )
29
30
 
30
31
  class << self
31
32
  def config(uri = nil)
32
- config = Config.new(pre_payload: PrePayload.new)
33
+ config = Config.new(pre_payload: PrePayload.new, raise_error: true)
33
34
 
34
35
  if block_given?
35
36
  yield(config)
@@ -52,13 +53,14 @@ module SlackTsuribari
52
53
  config.uri
53
54
  end
54
55
 
55
- def proxy_setting
56
+ def setting
56
57
  {
57
58
  proxy_addr: config.proxy_addr,
58
59
  proxy_port: config.proxy_port,
59
60
  proxy_user: config.proxy_user,
60
61
  proxy_pass: config.proxy_pass,
61
- no_proxy: config.no_proxy
62
+ no_proxy: config.no_proxy,
63
+ raise_error: config.raise_error
62
64
  }
63
65
  end
64
66
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SlackTsuribari
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack_tsuribari
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nekomaho
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-28 00:00:00.000000000 Z
11
+ date: 2020-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubygems_version: 3.0.3
127
+ rubygems_version: 3.1.2
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: This gem can post messages to the channel using slack's incoming webhook.