slack_webhooks 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8b322a902e2ebff402b2cf73be5baeb7eca9eec7
4
+ data.tar.gz: dcda6b9cdc7e68f138d138ed69c170411f75fdbf
5
+ SHA512:
6
+ metadata.gz: 34bd5a0fa88a73efe0e994ad132fa7b07519f2147c54d385c60c3c27476aa8ae80ba7023a447eb0bcfc5a01b14f6add067150fabd381bfb8cdf8566042f82d29
7
+ data.tar.gz: 89b34ac67cc5f013badd7a7f6024d49c7e1edefedfdf3ae40cb9a5b4ff6c2d0e46a3b6987b16b18ca62b8e068def29fad0dc0499cffd1ec8305a21b99f8d6a67
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,16 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ iron_mq (0.1.0)
5
+ slack-notifier (>= 0.5.1)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ slack-notifier (1.1.0)
11
+
12
+ PLATFORMS
13
+ ruby
14
+
15
+ DEPENDENCIES
16
+ iron_mq!
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ This gem helps dealing with Slack Webhooks, both outgoing and incoming. Incoming it will parse the
2
+ posted body and allow you to access the values as well as make it easy to send a response back to the
3
+ right Slack channel.
4
+
@@ -0,0 +1,67 @@
1
+ require 'uri'
2
+ require 'slack-notifier'
3
+ require_relative 'slack_webhooks/version'
4
+
5
+ module SlackWebhooks
6
+ class Hook
7
+
8
+ attr_accessor :command, :trigger_word, :channel, :username, :text, :webhook_url, :botname
9
+ alias_method :user_name, :username
10
+
11
+ # botname is the name to post to the channel with.
12
+ # body is the outgoing webhook POST body that Slack sends.
13
+ # webhook_url is the incoming webhook to post back to slack.
14
+ def initialize(botname, body, webhook_url)
15
+ self.botname = botname
16
+ self.webhook_url = webhook_url
17
+ parsed = URI.decode_www_form(body)
18
+ parsed.each do |p|
19
+ # puts "#{p[0]}=#{p[1]}"
20
+ if p[0] == "command"
21
+ self.command = p[1]
22
+ puts "command=#{self.command}"
23
+ end
24
+ if p[0] == "trigger_word"
25
+ # This is for trigger words, not slash commands
26
+ self.trigger_word = p[1]
27
+ end
28
+ if p[0] == "channel_name"
29
+ self.channel = p[1]
30
+ end
31
+ if p[0] == "user_name"
32
+ self.username = "@#{p[1]}"
33
+ # puts "username #{username}"
34
+ end
35
+ if p[0] == "text"
36
+ self.text = p[1].strip
37
+ # puts "text=#{text}"
38
+ end
39
+ end
40
+ if self.channel == "directmessage"
41
+ self.channel = self.username
42
+ else
43
+ self.channel = "\##{self.channel}" unless self.channel[0] == '#'
44
+ end
45
+
46
+ end
47
+
48
+ def send(s, attachment=nil)
49
+ # Now send it to back to the channel on slack
50
+ s = "#{command} #{text}" if s.nil?
51
+ puts "Posting #{s} to #{channel}. .."
52
+ notifier = Slack::Notifier.new webhook_url
53
+ notifier.channel = channel
54
+ notifier.username = botname
55
+
56
+ resp = nil
57
+ if attachment
58
+ resp = notifier.ping s, attachments: [attachment]
59
+ else
60
+ resp = notifier.ping s
61
+ end
62
+
63
+ p resp
64
+ p resp.message
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,3 @@
1
+ module SlackWebhooks
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'lib/slack_webhooks/version'
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'slack_webhooks'
5
+ s.version = SlackWebhooks::VERSION
6
+ s.licenses = ['MIT']
7
+ s.summary = "Helper for slack webhooks"
8
+ s.description = "Helper for slack webhooks!"
9
+ s.authors = ["Travis Reeder"]
10
+ s.email = 'treeder@gmail.com'
11
+ s.homepage = 'https://rubygems.org/gems/slack_webhooks'
12
+
13
+ s.files = `git ls-files`.split($\)
14
+ # s.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
15
+ # s.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ s.require_paths = ["lib"]
17
+
18
+ s.required_rubygems_version = ">= 1.3.6"
19
+ s.required_ruby_version = Gem::Requirement.new(">= 1.9")
20
+ s.add_runtime_dependency "slack-notifier", ">= 0.5.1"
21
+ end
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slack_webhooks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Travis Reeder
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: slack-notifier
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.5.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.5.1
27
+ description: Helper for slack webhooks!
28
+ email: treeder@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - Gemfile
34
+ - Gemfile.lock
35
+ - README.md
36
+ - lib/slack_webhooks.rb
37
+ - lib/slack_webhooks/version.rb
38
+ - slack_webhooks.gemspec
39
+ homepage: https://rubygems.org/gems/slack_webhooks
40
+ licenses:
41
+ - MIT
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '1.9'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.3.6
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 2.4.2
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: Helper for slack webhooks
63
+ test_files: []