Class: Driftwood::Plugin::Onboard
- Inherits:
-
Driftwood::Plugin
- Object
- Driftwood::Plugin
- Driftwood::Plugin::Onboard
- Defined in:
- lib/driftwood/plugin/onboard.rb
Instance Attribute Summary
Attributes inherited from Driftwood::Plugin
Instance Method Summary collapse
-
#initialize(config = nil, slack = nil, bigquery = nil) ⇒ Onboard
constructor
A new instance of Onboard.
Constructor Details
#initialize(config = nil, slack = nil, bigquery = nil) ⇒ Onboard
Returns a new instance of Onboard.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/driftwood/plugin/onboard.rb', line 5 def initialize(config=nil, slack=nil, bigquery=nil) super(config, slack, bigquery) @about = 'Provides onboarding services for new users.' @slack.register_handler('team_join') do |team_id, event_data| user = @slack.normalize_user(event_data['user']) $logger.info "User #{user['name']} (#{user['real_name']}) joined the workspace" filename = File.(config[:workspace]) rescue nil if filename begin $logger.debug "Sending team welcome from #{filename}" template = ERB.new(File.read(filename)) @slack.send_response(team_id, event_data['user'], template.result(binding)) rescue => e $logger.info "Sending onboarding welcome failed: #{e.}" $logger.debug e.backtrace.join("\n") end end end @slack.register_handler('member_joined_channel') do |team_id, event_data| user = @slack.user_info(event_data['team'], event_data['user']) user = @slack.normalize_user(user) channel = @slack.channel_name(event_data['team'], event_data['channel']) $logger.info "User #{user['name']} (#{user['real_name']}) joined ##{channel}" filename = File.(config[:channels][channel]) rescue nil if filename begin $logger.debug "Sending channel welcome from #{filename}" template = ERB.new(File.read(filename)) @slack.send_response(team_id, event_data['user'], template.result(binding)) rescue => e $logger.info "Sending channel welcome failed: #{e.}" $logger.debug e.backtrace.join("\n") end end end end |