ellen-slack 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +5 -6
- data/ellen-slack.gemspec +2 -2
- data/lib/ellen/adapters/slack.rb +39 -41
- data/lib/ellen/slack/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 591a05bb1956b8711b726716791ed7098fce98fc
|
4
|
+
data.tar.gz: b8b837ca25ef27bf03a484d457f139eb0d743db9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46f6688855ad460932359bc82c1c4210654327e5c01063928622b90c3227b745360a7b45008042acb0c83e711b0f213f1dca8bffe3281da65badbe01291e695f
|
7
|
+
data.tar.gz: eb2c369c9e0c1aad2a2ddba033b352dcfacf8b975cf0b7ae0ca123af991653bdb48bf9aeaa2290c67c1b628d69f05b92830af044cf833fd49afcd89cb8c311ed
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Slack adapter for [Ellen](https://github.com/r7kamura/ellen).
|
3
3
|
|
4
4
|
## Usage
|
5
|
-
|
5
|
+
See https://my.slack.com/admin/settings to enable XMPP Gateway on Slack.
|
6
6
|
|
7
7
|
```ruby
|
8
8
|
# Gemfile
|
@@ -11,9 +11,8 @@ gem "ellen-slack"
|
|
11
11
|
|
12
12
|
## ENV
|
13
13
|
```
|
14
|
-
|
15
|
-
|
16
|
-
SLACK_TEAM - Account's team name
|
17
|
-
SLACK_USERNAME - Account's username
|
18
|
-
SLACK_NO_SSL - Pass 1 if you don't want to use SSL connection (optional)
|
14
|
+
SLACK_PASSWORD - Account's XMPP password
|
15
|
+
SLACK_ROOM - Room name to join in at first (e.g. general)
|
16
|
+
SLACK_TEAM - Account's team name (e.g. wonderland)
|
17
|
+
SLACK_USERNAME - Account's username (e.g. alice)
|
19
18
|
```
|
data/ellen-slack.gemspec
CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.add_dependency "ellen", ">= 0.2.
|
20
|
-
spec.add_dependency "
|
19
|
+
spec.add_dependency "ellen", ">= 0.2.2"
|
20
|
+
spec.add_dependency "xrc", ">= 0.0.3"
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
end
|
data/lib/ellen/adapters/slack.rb
CHANGED
@@ -1,16 +1,12 @@
|
|
1
|
-
require "
|
2
|
-
require "yaml"
|
1
|
+
require "xrc"
|
3
2
|
|
4
3
|
module Ellen
|
5
4
|
module Adapters
|
6
5
|
class Slack < Base
|
7
|
-
|
8
|
-
|
9
|
-
env :
|
10
|
-
env :
|
11
|
-
env :SLACK_TEAM, "Account's team name"
|
12
|
-
env :SLACK_USERNAME, "Account's username, which must match the name on Slack account"
|
13
|
-
env :SLACK_NO_SSL, "Pass 1 if you don't want to use SSL connection", optional: true
|
6
|
+
env :SLACK_PASSWORD, "Account's XMPP password (See https://tqhouse.slack.com/account/gateways)"
|
7
|
+
env :SLACK_ROOM, "Room name to join in at first (e.g. general)"
|
8
|
+
env :SLACK_TEAM, "Account's team name (e.g. wonderland)"
|
9
|
+
env :SLACK_USERNAME, "Account's username (e.g. alice)"
|
14
10
|
|
15
11
|
def run
|
16
12
|
bind
|
@@ -18,37 +14,43 @@ module Ellen
|
|
18
14
|
end
|
19
15
|
|
20
16
|
def say(message)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
client.say(
|
18
|
+
body: message[:body],
|
19
|
+
from: message[:from],
|
20
|
+
to: message[:original][:type] == "chat" ? message[:to] : message[:to] + "/resource",
|
21
|
+
type: message[:original][:type],
|
22
|
+
)
|
27
23
|
end
|
28
24
|
|
29
25
|
private
|
30
26
|
|
31
27
|
def client
|
32
|
-
@client ||=
|
33
|
-
|
28
|
+
@client ||= Xrc::Client.new(
|
29
|
+
jid: jid,
|
30
|
+
nickname: username,
|
34
31
|
password: password,
|
35
|
-
|
36
|
-
server: server,
|
37
|
-
username: username,
|
38
|
-
use_ssl: ssl,
|
32
|
+
room_jid: room_jid,
|
39
33
|
)
|
40
34
|
end
|
41
35
|
|
42
|
-
def
|
43
|
-
|
36
|
+
def jid
|
37
|
+
"#{username}@#{host}"
|
44
38
|
end
|
45
39
|
|
46
|
-
def
|
47
|
-
"
|
40
|
+
def room_jid
|
41
|
+
"#{room}@#{room_host}"
|
48
42
|
end
|
49
43
|
|
50
|
-
def
|
51
|
-
"#{team}.
|
44
|
+
def host
|
45
|
+
"#{team}.xmpp.slack.com"
|
46
|
+
end
|
47
|
+
|
48
|
+
def room_host
|
49
|
+
"conference.#{host}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def room
|
53
|
+
ENV["SLACK_ROOM"]
|
52
54
|
end
|
53
55
|
|
54
56
|
def username
|
@@ -63,26 +65,22 @@ module Ellen
|
|
63
65
|
ENV["SLACK_TEAM"]
|
64
66
|
end
|
65
67
|
|
66
|
-
def ssl
|
67
|
-
!ENV["SLACK_NO_SSL"]
|
68
|
-
end
|
69
|
-
|
70
68
|
def bind
|
71
|
-
client.
|
72
|
-
|
73
|
-
robot.receive(body: body, from: message.from, to: message.to)
|
74
|
-
end
|
69
|
+
client.on_private_message(&method(:on_message))
|
70
|
+
client.on_room_message(&method(:on_message))
|
75
71
|
end
|
76
72
|
|
77
73
|
def connect
|
78
|
-
client.
|
74
|
+
client.connect
|
79
75
|
end
|
80
76
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
77
|
+
def on_message(message)
|
78
|
+
robot.receive(
|
79
|
+
body: message.body,
|
80
|
+
from: message.from,
|
81
|
+
to: message.to,
|
82
|
+
type: message.type,
|
83
|
+
)
|
86
84
|
end
|
87
85
|
end
|
88
86
|
end
|
data/lib/ellen/slack/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ellen-slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ellen
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.
|
19
|
+
version: 0.2.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.2.
|
26
|
+
version: 0.2.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: xrc
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.
|
40
|
+
version: 0.0.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|