Sha256: 9c28ff8db71f09dc0a6cb8b5e4527c9425b4f3b6ecd330b40f735e22e24c7d73

Contents?: true

Size: 863 Bytes

Versions: 1

Compression:

Stored size: 863 Bytes

Contents

class ChatComponent < Roda::Component
  comp_name :chat
  comp_html "../public/chat/index.html"

  def display
    return unless server?

    request.redirect 'login' unless current_user

    dom.find('.my-account .name span').html current_user.full_name

    component(:layout) do
      dom.find('body').html
    end
  end

  on :reconnect do
    puts 'reconnected'
  end

  on :disconnect do
    puts 'disconnected'
  end

  on :connect do
    puts 'connected'
  end

  on :join do |data|
    return user_details unless client

    `console.log(#{data});`
    puts 'joined'
  end

  on :leave do |data|
    if client?
      `console.log(#{data});`
      puts 'leave'
    else
      user_details
    end
  end

  def user_details
    {
      id: current_user.id,
      first_name: current_user.first_name,
      last_name: current_user.last_name
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roda-component-0.1.2 test/dummy/components/chat.rb