Class: Slacky::Bookkeeper
- Inherits:
-
Object
- Object
- Slacky::Bookkeeper
- Defined in:
- lib/slacky/bookkeeper.rb
Instance Method Summary collapse
- #handle_channel(event) ⇒ Object
-
#initialize(client) ⇒ Bookkeeper
constructor
A new instance of Bookkeeper.
- #keep_the_books ⇒ Object
- #web_client ⇒ Object
Constructor Details
#initialize(client) ⇒ Bookkeeper
Returns a new instance of Bookkeeper.
3 4 5 |
# File 'lib/slacky/bookkeeper.rb', line 3 def initialize(client) @client = client end |
Instance Method Details
#handle_channel(event) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/slacky/bookkeeper.rb', line 38 def handle_channel(event) @client.on event do |data| channel_id = data.channel.is_a?(String) ? data.channel : data.channel.id Channel.find(channel_id).tap do |channel| yield channel, data puts "Channel ##{channel.name}: #{event}" end end end |
#keep_the_books ⇒ Object
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 |
# File 'lib/slacky/bookkeeper.rb', line 11 def keep_the_books @client.on :channel_created do |data| web_client.channels_info(channel: data.channel.id).tap do |resp| if resp.ok channel = Channel.channel resp.channel puts "Channel ##{channel.name}: channel_created" end end end handle_channel(:channel_deleted) { |c| c.delete } handle_channel(:channel_archive) { |c| c.archive } handle_channel(:channel_unarchive) { |c| c.unarchive } handle_channel(:channel_rename) { |c, data| c.rename data.channel.name } @client.on :group_joined do |data| next unless data.channel.is_group channel = Channel.group data.channel puts "Channel ##{channel.name}: group_joined" end handle_channel(:group_left) { |g| g.delete } handle_channel(:group_archive) { |g| g.archive } handle_channel(:group_unarchive) { |g| g.unarchive } handle_channel(:group_rename) { |g, data| g.rename data.channel.name } end |
#web_client ⇒ Object
7 8 9 |
# File 'lib/slacky/bookkeeper.rb', line 7 def web_client @client.web_client end |