slack-notifier 0.3.1 → 0.3.2

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: 74be6686d197c0285dad45f56a46c77dfedeae9b
4
- data.tar.gz: 0df6fa89e9f255d7c531d94b591759e02dd72663
3
+ metadata.gz: 62117fcfa420e6b62d6c4982c33b27b7ada1174a
4
+ data.tar.gz: d475b9280f822a8f0eb67005b209a324b178891e
5
5
  SHA512:
6
- metadata.gz: 4fc10076579789f5e6ce385daa35230728bb070ed0173eb9aaa19452bfd3ac68659a3014f08320623c179d62b61c446da4942124e09151e80aca6612fcca883d
7
- data.tar.gz: 02baddde738bd21635fe9c266c678c7cb2ac3fb42ced0238a1494c666d7a2309496040861f0e4e4afb07eb488b6aed32cb46cb9b819b838ff78805d35df01f21
6
+ metadata.gz: 49d78c4b6cc439d904c41024958fb46aa529b654ce1ff7f4aba4351cfacbb82137a722817e989bd1228c75ad6143c9556347c61e9ef82947f56c51138728a1ba
7
+ data.tar.gz: 0654d3a34c0223693109bed7badd4a99c4c162e140abe18995b8caa02c43b35ffe6789c2fb6ac538839dacae91531bfda298fbf4f596326450c373600a7ae2ec
@@ -0,0 +1,42 @@
1
+ module Slack
2
+ class Notifier
3
+
4
+ class HTTPPost
5
+
6
+ class << self
7
+ def to uri, params
8
+ HTTPPost.new( uri, params ).call
9
+ end
10
+ end
11
+
12
+ attr_reader :uri, :params
13
+
14
+ def initialize uri, params
15
+ @uri = uri
16
+ @params = params
17
+ end
18
+
19
+ def call
20
+ http_obj.request request_obj
21
+ end
22
+
23
+ private
24
+
25
+ def request_obj
26
+ req = Net::HTTP::Post.new uri.request_uri
27
+ req.set_form_data params
28
+
29
+ return req
30
+ end
31
+
32
+ def http_obj
33
+ http = Net::HTTP.new uri.host, uri.port
34
+ http.use_ssl = (uri.scheme == "https")
35
+
36
+ return http
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+ end
@@ -1,5 +1,5 @@
1
1
  module Slack
2
2
  class Notifier
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
@@ -2,6 +2,7 @@ require 'net/http'
2
2
  require 'uri'
3
3
  require 'json'
4
4
 
5
+ require_relative 'slack-notifier/http_post'
5
6
  require_relative 'slack-notifier/link_formatter'
6
7
 
7
8
  module Slack
@@ -23,7 +24,7 @@ module Slack
23
24
  message = LinkFormatter.format(message)
24
25
  payload = { text: message }.merge(default_payload).merge(options)
25
26
 
26
- Net::HTTP.post_form endpoint, payload: payload.to_json
27
+ HTTPPost.to endpoint, payload: payload.to_json
27
28
  end
28
29
 
29
30
  private
@@ -0,0 +1,5 @@
1
+ require_relative '../../lib/slack-notifier'
2
+
3
+ notifier = Slack::Notifier.new ENV['SLACK_TEAM'], ENV['SLACK_TOKEN']
4
+ puts "testing with ruby #{RUBY_VERSION}"
5
+ notifier.ping "hello from notifier test script on ruby: #{RUBY_VERSION}"
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Slack::Notifier::HTTPPost do
4
+
5
+ describe "::to" do
6
+ it "initializes HTTPPost with the given uri and params then calls" do
7
+ http_post_double = instance_double("Slack::Notifier::HTTPPost")
8
+
9
+ expect( described_class ).to receive(:new)
10
+ .with( 'uri', 'params' )
11
+ .and_return( http_post_double )
12
+ expect( http_post_double ).to receive(:call)
13
+
14
+ described_class.to 'uri', 'params'
15
+ end
16
+
17
+ # http_post is really tested in the integration spec,
18
+ # where the internals are run through
19
+ end
20
+
21
+ end
@@ -21,7 +21,7 @@ describe Slack::Notifier do
21
21
 
22
22
  describe "#ping" do
23
23
  before :each do
24
- allow( Net::HTTP ).to receive(:post_form)
24
+ allow( Slack::Notifier::HTTPPost ).to receive(:to)
25
25
  end
26
26
 
27
27
  it "passes the message through LinkFormatter" do
@@ -48,7 +48,7 @@ describe Slack::Notifier do
48
48
  end
49
49
 
50
50
  it "uses default channel" do
51
- expect( Net::HTTP ).to receive(:post_form)
51
+ expect( Slack::Notifier::HTTPPost ).to receive(:to)
52
52
  .with @endpoint_double,
53
53
  payload: '{"text":"the message","channel":"default"}'
54
54
 
@@ -56,7 +56,7 @@ describe Slack::Notifier do
56
56
  end
57
57
 
58
58
  it "allows override channel to be set" do
59
- expect( Net::HTTP ).to receive(:post_form)
59
+ expect( Slack::Notifier::HTTPPost ).to receive(:to)
60
60
  .with @endpoint_double,
61
61
  payload: '{"text":"the message","channel":"new"}'
62
62
 
@@ -72,7 +72,7 @@ describe Slack::Notifier do
72
72
  .with("https://team.slack.com/services/hooks/incoming-webhook?token=token")
73
73
  .and_return(@endpoint_double)
74
74
 
75
- expect( Net::HTTP ).to receive(:post_form)
75
+ expect( Slack::Notifier::HTTPPost ).to receive(:to)
76
76
  .with @endpoint_double,
77
77
  payload: '{"text":"the message","channel":"channel"}'
78
78
 
@@ -87,7 +87,7 @@ describe Slack::Notifier do
87
87
  .with("https://team.slack.com/services/hooks/custom_hook_name?token=token")
88
88
  .and_return(@endpoint_double)
89
89
 
90
- expect( Net::HTTP ).to receive(:post_form)
90
+ expect( Slack::Notifier::HTTPPost ).to receive(:to)
91
91
  .with @endpoint_double,
92
92
  payload: '{"text":"the message","channel":"channel"}'
93
93
 
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.3.1
4
+ version: 0.3.2
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-25 00:00:00.000000000 Z
11
+ date: 2014-03-27 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: []
@@ -18,8 +18,11 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/slack-notifier.rb
21
+ - lib/slack-notifier/http_post.rb
21
22
  - lib/slack-notifier/link_formatter.rb
22
23
  - lib/slack-notifier/version.rb
24
+ - spec/integration/ping_integration_test.rb
25
+ - spec/lib/slack-notifier/http_post_spec.rb
23
26
  - spec/lib/slack-notifier/link_formatter_spec.rb
24
27
  - spec/lib/slack-notifier_spec.rb
25
28
  - spec/spec_helper.rb
@@ -33,12 +36,12 @@ require_paths:
33
36
  - lib
34
37
  required_ruby_version: !ruby/object:Gem::Requirement
35
38
  requirements:
36
- - - ">="
39
+ - - '>='
37
40
  - !ruby/object:Gem::Version
38
41
  version: '0'
39
42
  required_rubygems_version: !ruby/object:Gem::Requirement
40
43
  requirements:
41
- - - ">="
44
+ - - '>='
42
45
  - !ruby/object:Gem::Version
43
46
  version: '0'
44
47
  requirements: []
@@ -48,7 +51,8 @@ signing_key:
48
51
  specification_version: 4
49
52
  summary: A slim ruby wrapper for posting to slack webhooks
50
53
  test_files:
54
+ - spec/integration/ping_integration_test.rb
55
+ - spec/lib/slack-notifier/http_post_spec.rb
51
56
  - spec/lib/slack-notifier/link_formatter_spec.rb
52
57
  - spec/lib/slack-notifier_spec.rb
53
58
  - spec/spec_helper.rb
54
- has_rdoc: