slack-notifier 0.2.0 → 0.3.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
  SHA1:
3
- metadata.gz: 4c25d21ad14b892d64f85243a8efbe8ae44b0afe
4
- data.tar.gz: d503745569e2e3c73b68d3f58103b37bd47f3e27
3
+ metadata.gz: 8e49764cf6dc75809e6155065bd277f9451d64ff
4
+ data.tar.gz: 9ad72756470888e48c487042f17f668440dd7e41
5
5
  SHA512:
6
- metadata.gz: 8eb400bf7af214c7d85e066948fd76e412513d3f19b703c039fd91c99ed9275510cb1111d157463021c7d2166e4eafb232465ca091aef6b1ebc4daf482c8617b
7
- data.tar.gz: 659801d155a85f5ade8c509be7fa70019943801fb5bb173696ff5d64ce7feffb944eeddb1d2ae8932165f799865a0ad0c21a57eb1732a5f54ee77b45fc023af8
6
+ metadata.gz: 305a9e8e70b81cdca0cdc9d76262245e0852d845093f6a321a64ce9c1abc702e2a97d706dca7cbd270ee6fe4a1cd73b3f64ae72081fe9340a324979004345dff
7
+ data.tar.gz: 88097ecf33b8c3c62f301ca6a81feb7fd17555aca735ea1ac14bd5a92ce94c522983e68f1b5730da7ce2a0222c167febfea486da11de72cf0331d16cdc14d036
@@ -11,11 +11,12 @@ module Slack
11
11
  # if they are set
12
12
  attr_accessor :channel, :username
13
13
 
14
- attr_reader :team, :token
14
+ attr_reader :team, :token, :hook_name
15
15
 
16
- def initialize team, token
16
+ def initialize team, token, hook_name = default_hook_name
17
17
  @team = team
18
18
  @token = token
19
+ @hook_name = hook_name
19
20
  end
20
21
 
21
22
  def ping message, options={}
@@ -31,6 +32,10 @@ module Slack
31
32
 
32
33
  private
33
34
 
35
+ def default_hook_name
36
+ 'incoming-webhook'
37
+ end
38
+
34
39
  def default_payload
35
40
  payload = {}
36
41
  payload[:channel] = channel if channel
@@ -39,8 +44,8 @@ module Slack
39
44
  end
40
45
 
41
46
  def endpoint
42
- URI.parse "https://#{team}.slack.com/services/hooks/incoming-webhook?token=#{token}"
47
+ URI.parse "https://#{team}.slack.com/services/hooks/#{hook_name}?token=#{token}"
43
48
  end
44
49
 
45
50
  end
46
- end
51
+ end
@@ -1,5 +1,5 @@
1
1
  module Slack
2
2
  class Notifier
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -12,15 +12,16 @@ describe Slack::Notifier do
12
12
  subject = described_class.new 'team', 'token'
13
13
  expect( subject.token ).to eq 'token'
14
14
  end
15
+
16
+ it 'sets the optional service hook name' do
17
+ subject = described_class.new 'team', 'token', 'custom_hook_name'
18
+ expect( subject.hook_name ).to eq 'custom_hook_name'
19
+ end
15
20
  end
16
21
 
17
22
  describe "#ping" do
18
23
  before :each do
19
24
  allow( Net::HTTP ).to receive(:post_form)
20
- @endpoint_double = instance_double "URI::HTTP"
21
- allow( URI ).to receive(:parse)
22
- .with("https://team.slack.com/services/hooks/incoming-webhook?token=token")
23
- .and_return(@endpoint_double)
24
25
  end
25
26
 
26
27
  it "passes the message through LinkFormatter" do
@@ -39,6 +40,9 @@ describe Slack::Notifier do
39
40
  context "with a default channel set" do
40
41
 
41
42
  before :each do
43
+ @endpoint_double = instance_double "URI::HTTP"
44
+ allow( URI ).to receive(:parse)
45
+ .and_return(@endpoint_double)
42
46
  @subject = described_class.new('team','token')
43
47
  @subject.channel = 'default'
44
48
  end
@@ -67,13 +71,35 @@ describe Slack::Notifier do
67
71
 
68
72
  end
69
73
 
70
- it "posts with the correct endpoint & data" do
74
+ context "with default webhook" do
75
+ it "posts with the correct endpoint & data" do
76
+ @endpoint_double = instance_double "URI::HTTP"
77
+ allow( URI ).to receive(:parse)
78
+ .with("https://team.slack.com/services/hooks/incoming-webhook?token=token")
79
+ .and_return(@endpoint_double)
80
+
81
+ expect( Net::HTTP ).to receive(:post_form)
82
+ .with @endpoint_double,
83
+ payload: '{"text":"the message","channel":"channel"}'
84
+
85
+ described_class.new("team","token").ping "the message", channel: "channel"
86
+ end
87
+ end
88
+
89
+ context "with custom webhook name" do
90
+ it "posts with the correct endpoint & data" do
91
+ @endpoint_double = instance_double "URI::HTTP"
92
+ allow( URI ).to receive(:parse)
93
+ .with("https://team.slack.com/services/hooks/custom_hook_name?token=token")
94
+ .and_return(@endpoint_double)
95
+
71
96
  expect( Net::HTTP ).to receive(:post_form)
72
97
  .with @endpoint_double,
73
98
  payload: '{"text":"the message","channel":"channel"}'
74
99
 
75
- described_class.new("team","token").ping "the message", channel: "channel"
100
+ described_class.new("team","token","custom_hook_name").ping "the message", channel: "channel"
101
+ end
76
102
  end
77
103
  end
78
104
 
79
- end
105
+ end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Sloan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-02 00:00:00.000000000 Z
11
+ date: 2014-03-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: ' A slim ruby wrapper for posting to slack webhooks '
13
+ description: " A slim ruby wrapper for posting to slack webhooks "
14
14
  email:
15
15
  - stevenosloan@gmail.com
16
16
  executables: []
@@ -33,12 +33,12 @@ require_paths:
33
33
  - lib
34
34
  required_ruby_version: !ruby/object:Gem::Requirement
35
35
  requirements:
36
- - - '>='
36
+ - - ">="
37
37
  - !ruby/object:Gem::Version
38
38
  version: '0'
39
39
  required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - '>='
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0'
44
44
  requirements: []
@@ -51,3 +51,4 @@ test_files:
51
51
  - spec/lib/slack-notifier/link_formatter_spec.rb
52
52
  - spec/lib/slack-notifier_spec.rb
53
53
  - spec/spec_helper.rb
54
+ has_rdoc: