Sha256: 85096564008e9338db3aa057525b791855a28e8713a35a48d4957077b2aeb792

Contents?: true

Size: 1.45 KB

Versions: 13

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

module RocketChat
  #
  # Rocket.Chat Room
  #
  class Room
    # Raw user data
    attr_reader :data

    TYPES = {
      'c' => 'public',
      'p' => 'private',
      'd' => 'IM'
    }.freeze

    #
    # @param [Hash] data Raw user data
    #
    def initialize(data)
      @data = Util.stringify_hash_keys data
    end

    # Channel ID
    def id
      data['_id']
    end

    # Channel name
    def name
      data['name']
    end

    # Channel owner
    def owner
      data['u']
    end

    def created_at
      data['ts']
    end

    def last_update
      data['_updatedAt']
    end

    def topic
      data['topic']
    end

    def description
      data['description']
    end

    # Channel members
    def members
      data['usernames'] || []
    end

    # Read-only status
    def read_only
      data['ro']
    end

    # Message count
    def message_count
      data['msgs']
    end

    # Last message timestamp
    def last_message
      data['lm']
    end

    # Channel type
    def type
      TYPES[data['t']] || data['t']
    end

    # System messages (user left, got invited, room renamed, etc)
    def system_messages
      data['sysMes']
    end

    def inspect
      format(
        '#<%<class_name>s:0x%<object_id>p @id="%<id>s" @name="%<name>s" @type="%<type>s">',
        class_name: self.class.name,
        object_id: object_id,
        id: id,
        name: name,
        type: type
      )
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rocketchat-0.3.1 lib/rocket_chat/room.rb
rocketchat-0.2.7 lib/rocket_chat/room.rb
rocketchat-0.2.6 lib/rocket_chat/room.rb
rocketchat-0.2.5 lib/rocket_chat/room.rb
rocketchat-0.2.4 lib/rocket_chat/room.rb
rocketchat-0.2.3 lib/rocket_chat/room.rb
rocketchat-0.2.2 lib/rocket_chat/room.rb
rocketchat-0.2.1 lib/rocket_chat/room.rb
rocketchat-0.1.23 lib/rocket_chat/room.rb
rocketchat-0.1.22 lib/rocket_chat/room.rb
rocketchat-0.1.21 lib/rocket_chat/room.rb
rocketchat-0.1.20 lib/rocket_chat/room.rb
rocketchat-0.1.19 lib/rocket_chat/room.rb