Sha256: 825890617ef425a79b5d0bfd0580339b462c973c03e9ec3b1bd4d8907ff5df12

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require 'thor'
require 'whatup/cli/thor_interactive'

module Whatup
  module CLI
    # Server commands
    class Dm < Thor
      extend ThorInteractive

      Room = Whatup::Server::Room
      Message = Whatup::Server::Message
      Client = Whatup::Server::Client

      desc 'msg [NAME]', 'Send a message to [NAME]'
      def msg name
        if recepient = Client.find_by(name: name)
          say <<~MSG
            Sending a direct message to #{name}...

            The message can span multiple lines.

            Type `.exit` when you're ready to send it.
          MSG
          current_user.composing_dm = recepient
          return
        end

        say "That user doesn't exist!"
      end

      desc 'list', 'List your direct messages'
      def list
        say 'Your direct messages:'
        say \
          Message.where(sender: current_user)
          .or(Message.where(recipient: current_user))
          .map(&:to_s)
                 .join('-' * 10)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
whatup-0.3.5 lib/whatup/cli/commands/interactive/dm.rb