Skip to content

Commit fe98949

Browse files
committed
Initial commit from slack-ruby-bot-server.
0 parents  commit fe98949

File tree

14 files changed

+634
-0
lines changed

14 files changed

+634
-0
lines changed

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.DS_Store
2+
.rvmrc
3+
.irbrc
4+
.bundle
5+
log
6+
.env
7+
*.swp
8+
pkg

Gemfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
source 'https://rubygems.org'
2+
3+
ruby '2.3.1'
4+
5+
gem 'slack-ruby-bot-server', github: 'dblock/slack-ruby-bot-server'
6+
gem 'newrelic-slack-ruby-bot'
7+
8+
group :test do
9+
gem 'rake'
10+
gem 'rspec'
11+
gem 'fabrication'
12+
gem 'faker'
13+
gem 'vcr'
14+
gem 'webmock'
15+
gem 'database_cleaner'
16+
end

Gemfile.lock

Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
GIT
2+
remote: git://github.com/dblock/slack-ruby-bot-server.git
3+
revision: 15f7ce58fd17f35e491fcb377b2203cb93aa8e6b
4+
specs:
5+
slack-ruby-bot-server (0.4.0)
6+
celluloid-io
7+
foreman
8+
grape
9+
grape-roar
10+
grape-swagger
11+
kaminari-mongoid
12+
mongoid
13+
mongoid-scroll
14+
rack-cors
15+
rack-rewrite
16+
rack-server-pages
17+
slack-ruby-bot
18+
unicorn
19+
20+
GEM
21+
remote: https://rubygems.org/
22+
specs:
23+
actionpack (4.2.6)
24+
actionview (= 4.2.6)
25+
activesupport (= 4.2.6)
26+
rack (~> 1.6)
27+
rack-test (~> 0.6.2)
28+
rails-dom-testing (~> 1.0, >= 1.0.5)
29+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
30+
actionview (4.2.6)
31+
activesupport (= 4.2.6)
32+
builder (~> 3.1)
33+
erubis (~> 2.7.0)
34+
rails-dom-testing (~> 1.0, >= 1.0.5)
35+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
36+
activemodel (4.2.6)
37+
activesupport (= 4.2.6)
38+
builder (~> 3.1)
39+
activesupport (4.2.6)
40+
i18n (~> 0.7)
41+
json (~> 1.7, >= 1.7.7)
42+
minitest (~> 5.1)
43+
thread_safe (~> 0.3, >= 0.3.4)
44+
tzinfo (~> 1.1)
45+
addressable (2.4.0)
46+
axiom-types (0.1.1)
47+
descendants_tracker (~> 0.0.4)
48+
ice_nine (~> 0.11.0)
49+
thread_safe (~> 0.3, >= 0.3.1)
50+
bson (4.1.1)
51+
builder (3.2.2)
52+
celluloid (0.17.3)
53+
celluloid-essentials
54+
celluloid-extras
55+
celluloid-fsm
56+
celluloid-pool
57+
celluloid-supervision
58+
timers (>= 4.1.1)
59+
celluloid-essentials (0.20.5)
60+
timers (>= 4.1.1)
61+
celluloid-extras (0.20.5)
62+
timers (>= 4.1.1)
63+
celluloid-fsm (0.20.5)
64+
timers (>= 4.1.1)
65+
celluloid-io (0.17.3)
66+
celluloid (>= 0.17.2)
67+
nio4r (>= 1.1)
68+
timers (>= 4.1.1)
69+
celluloid-pool (0.20.5)
70+
timers (>= 4.1.1)
71+
celluloid-supervision (0.20.6)
72+
timers (>= 4.1.1)
73+
coercible (1.0.0)
74+
descendants_tracker (~> 0.0.1)
75+
crack (0.4.3)
76+
safe_yaml (~> 1.0.0)
77+
database_cleaner (1.5.3)
78+
descendants_tracker (0.0.4)
79+
thread_safe (~> 0.3, >= 0.3.1)
80+
diff-lcs (1.2.5)
81+
enumerable-lazy (0.0.1)
82+
equalizer (0.0.11)
83+
erubis (2.7.0)
84+
fabrication (2.15.2)
85+
faker (1.6.3)
86+
i18n (~> 0.5)
87+
faraday (0.9.2)
88+
multipart-post (>= 1.2, < 3)
89+
faraday_middleware (0.9.2)
90+
faraday (>= 0.7.4, < 0.10)
91+
faraday_middleware-parse_oj (0.3.0)
92+
faraday (~> 0.9.0)
93+
faraday_middleware (~> 0.9.1)
94+
oj (~> 2.0)
95+
foreman (0.82.0)
96+
thor (~> 0.19.1)
97+
giphy (2.0.2)
98+
faraday (~> 0.9)
99+
faraday_middleware (~> 0.9)
100+
faraday_middleware-parse_oj (~> 0.3)
101+
launchy (~> 2.4)
102+
gli (2.14.0)
103+
grape (0.17.0)
104+
activesupport
105+
builder
106+
hashie (>= 2.1.0)
107+
multi_json (>= 1.3.2)
108+
multi_xml (>= 0.5.2)
109+
mustermann19 (~> 0.4.3)
110+
rack (>= 1.3.0)
111+
rack-accept
112+
virtus (>= 1.0.0)
113+
grape-roar (0.3.0)
114+
grape
115+
roar (>= 1.0)
116+
grape-swagger (0.23.0)
117+
grape (>= 0.12.0)
118+
hashdiff (0.3.0)
119+
hashie (3.4.4)
120+
hitimes (1.2.4)
121+
i18n (0.7.0)
122+
ice_nine (0.11.2)
123+
json (1.8.3)
124+
kaminari (0.17.0)
125+
actionpack (>= 3.0.0)
126+
activesupport (>= 3.0.0)
127+
kaminari-mongoid (0.1.2)
128+
kaminari
129+
kgio (2.10.0)
130+
launchy (2.4.3)
131+
addressable (~> 2.3)
132+
loofah (2.0.3)
133+
nokogiri (>= 1.5.9)
134+
mini_portile2 (2.1.0)
135+
minitest (5.9.0)
136+
mongo (2.2.7)
137+
bson (~> 4.0)
138+
mongoid (5.1.3)
139+
activemodel (~> 4.0)
140+
mongo (~> 2.1)
141+
origin (~> 2.2)
142+
tzinfo (>= 0.3.37)
143+
mongoid-compatibility (0.4.0)
144+
activesupport
145+
mongoid (>= 2.0)
146+
mongoid-scroll (0.3.4)
147+
i18n
148+
mongoid (>= 3.0)
149+
mongoid-compatibility
150+
multi_json (1.12.1)
151+
multi_xml (0.5.5)
152+
multipart-post (2.0.0)
153+
mustermann19 (0.4.4)
154+
enumerable-lazy
155+
newrelic-slack-ruby-bot (0.1.0)
156+
newrelic_rpm
157+
slack-ruby-bot
158+
newrelic_rpm (3.14.1.311)
159+
nio4r (1.2.1)
160+
nokogiri (1.6.8)
161+
mini_portile2 (~> 2.1.0)
162+
pkg-config (~> 1.1.7)
163+
oj (2.16.0)
164+
origin (2.2.0)
165+
pkg-config (1.1.7)
166+
rack (1.6.4)
167+
rack-accept (0.4.5)
168+
rack (>= 0.4)
169+
rack-cors (0.4.0)
170+
rack-rewrite (1.5.1)
171+
rack-server-pages (0.0.6)
172+
rack
173+
rack-test (0.6.3)
174+
rack (>= 1.0)
175+
rails-deprecated_sanitizer (1.0.3)
176+
activesupport (>= 4.2.0.alpha)
177+
rails-dom-testing (1.0.7)
178+
activesupport (>= 4.2.0.beta, < 5.0)
179+
nokogiri (~> 1.6.0)
180+
rails-deprecated_sanitizer (>= 1.0.1)
181+
rails-html-sanitizer (1.0.3)
182+
loofah (~> 2.0)
183+
raindrops (0.17.0)
184+
rake (11.2.2)
185+
representable (2.3.0)
186+
uber (~> 0.0.7)
187+
roar (1.0.4)
188+
representable (>= 2.0.1, < 2.4.0)
189+
rspec (3.4.0)
190+
rspec-core (~> 3.4.0)
191+
rspec-expectations (~> 3.4.0)
192+
rspec-mocks (~> 3.4.0)
193+
rspec-core (3.4.4)
194+
rspec-support (~> 3.4.0)
195+
rspec-expectations (3.4.0)
196+
diff-lcs (>= 1.2.0, < 2.0)
197+
rspec-support (~> 3.4.0)
198+
rspec-mocks (3.4.1)
199+
diff-lcs (>= 1.2.0, < 2.0)
200+
rspec-support (~> 3.4.0)
201+
rspec-support (3.4.1)
202+
safe_yaml (1.0.4)
203+
slack-ruby-bot (0.8.0)
204+
activesupport
205+
giphy (~> 2.0.2)
206+
hashie
207+
slack-ruby-client (>= 0.6.0)
208+
slack-ruby-client (0.7.4)
209+
activesupport
210+
faraday
211+
faraday_middleware
212+
gli
213+
hashie
214+
json
215+
websocket-driver
216+
thor (0.19.1)
217+
thread_safe (0.3.5)
218+
timers (4.1.1)
219+
hitimes
220+
tzinfo (1.2.2)
221+
thread_safe (~> 0.1)
222+
uber (0.0.15)
223+
unicorn (5.1.0)
224+
kgio (~> 2.6)
225+
raindrops (~> 0.7)
226+
vcr (3.0.3)
227+
virtus (1.0.5)
228+
axiom-types (~> 0.1)
229+
coercible (~> 1.0)
230+
descendants_tracker (~> 0.0, >= 0.0.3)
231+
equalizer (~> 0.0, >= 0.0.9)
232+
webmock (2.1.0)
233+
addressable (>= 2.3.6)
234+
crack (>= 0.3.2)
235+
hashdiff
236+
websocket-driver (0.6.4)
237+
websocket-extensions (>= 0.1.0)
238+
websocket-extensions (0.1.2)
239+
240+
PLATFORMS
241+
ruby
242+
243+
DEPENDENCIES
244+
database_cleaner
245+
fabrication
246+
faker
247+
newrelic-slack-ruby-bot
248+
rake
249+
rspec
250+
slack-ruby-bot-server!
251+
vcr
252+
webmock
253+
254+
BUNDLED WITH
255+
1.12.5

Procfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: bundle exec unicorn -p $PORT

Rakefile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
require 'rubygems'
2+
3+
require 'rspec/core'
4+
require 'rspec/core/rake_task'
5+
6+
RSpec::Core::RakeTask.new(:spec) do |spec|
7+
spec.pattern = FileList['spec/**/*_spec.rb']
8+
end
9+
10+
task default: [:spec]

commands.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require_relative 'commands/help'
2+
require_relative 'commands/whoami'

commands/help.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Help < SlackRubyBot::Commands::Base
2+
HELP = <<-EOS.freeze
3+
```
4+
I am your friendly slack-ruby-bot-server, here to help.
5+
6+
General
7+
-------
8+
9+
help - get this helpful message
10+
whoami - print your username
11+
12+
```
13+
EOS
14+
def self.call(client, data, _match)
15+
client.say(channel: data.channel, text: [HELP, SlackRubyBotServer::INFO].join("\n"))
16+
client.say(channel: data.channel, gif: 'help')
17+
logger.info "HELP: #{client.owner}, user=#{data.user}"
18+
end
19+
end

commands/whoami.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Whoami < SlackRubyBot::Commands::Base
2+
def self.call(client, data, _match)
3+
client.say(channel: data.channel, text: "<@#{data.user}>")
4+
logger.info "UNAME: #{client.owner}, user=#{data.user}"
5+
end
6+
end

config.ru

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
ENV['RACK_ENV'] ||= 'development'
2+
3+
require 'slack-ruby-bot-server'
4+
5+
require_relative 'commands'
6+
7+
Mongoid.load!(File.expand_path('config/mongoid.yml', __dir__), ENV['RACK_ENV'])
8+
9+
if ENV['RACK_ENV'] == 'development'
10+
puts 'Loading NewRelic in developer mode ...'
11+
require 'new_relic/rack/developer_mode'
12+
use NewRelic::Rack::DeveloperMode
13+
end
14+
15+
NewRelic::Agent.manual_start
16+
17+
SlackRubyBotServer::App.instance.prepare!
18+
SlackRubyBotServer::Service.start!
19+
20+
run SlackRubyBotServer::Api::Middleware.instance

config/mongoid.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
development:
2+
clients:
3+
default:
4+
database: bot-server_development
5+
hosts:
6+
- 127.0.0.1:27017
7+
options:
8+
raise_not_found_error: false
9+
use_utc: true
10+
11+
test:
12+
clients:
13+
default:
14+
database: bot-server_test
15+
hosts:
16+
- 127.0.0.1:27017
17+
options:
18+
raise_not_found_error: false
19+
use_utc: true
20+
21+
production:
22+
clients:
23+
default:
24+
uri: <%= ENV['MONGO_URL'] || ENV['MONGOHQ_URI'] || ENV['MONGOLAB_URI'] %>
25+
options:
26+
raise_not_found_error: false
27+
use_utc: true

0 commit comments

Comments
 (0)