Module: SimpleChat
- Defined in:
- lib/simple_chat/configuration.rb,
lib/simple_chat.rb,
lib/simple_chat/engine.rb,
lib/simple_chat/version.rb,
app/models/simple_chat/message.rb,
app/models/simple_chat/chat_room.rb,
app/models/simple_chat/chat_member.rb,
app/jobs/simple_chat/application_job.rb,
app/helpers/simple_chat/messages_helper.rb,
app/helpers/simple_chat/chat_rooms_helper.rb,
app/models/simple_chat/application_record.rb,
app/helpers/simple_chat/application_helper.rb,
app/mailers/simple_chat/application_mailer.rb,
lib/generators/simple_chat/install_generator.rb,
app/controllers/simple_chat/messages_controller.rb,
app/controllers/simple_chat/chat_rooms_controller.rb,
app/controllers/simple_chat/application_controller.rb,
app/controllers/simple_chat/chat_members_controller.rb
Overview
Usage in Rails application config/initializers/simple_chat.rb) SimpleChat.configure do |config|
config.chat_user_model = 'User'
end
Defined Under Namespace
Modules: ApplicationHelper, ChatRoomsHelper, MessagesHelper Classes: ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, ChatMember, ChatMembersController, ChatRoom, ChatRoomsController, Configuration, Engine, InstallGenerator, Message, MessagesController
Constant Summary collapse
- VERSION =
"0.1.0"
Class Attribute Summary collapse
-
.configuration ⇒ Object
Access the configuration object.
Class Method Summary collapse
-
.configure {|configuration| ... } ⇒ Object
The block handler.
- .create_chat(*users, title: nil) ⇒ Object
Class Attribute Details
.configuration ⇒ Object
Access the configuration object
10 11 12 |
# File 'lib/simple_chat.rb', line 10 def configuration @configuration ||= Configuration.new end |
Class Method Details
.configure {|configuration| ... } ⇒ Object
The block handler
15 16 17 |
# File 'lib/simple_chat.rb', line 15 def configure yield(configuration) end |
.create_chat(*users, title: nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/simple_chat.rb', line 19 def create_chat(*users, title: nil) users = users.flatten.compact if title.nil? names = users.map { |u| u.respond_to?(:name) ? u.name : u.id } if names.size > 2 title = "Chat between #{names[0...-1].join(", ")} and #{names.last}" elsif names.size == 2 title = "Chat between #{names.first} and #{names.last}" elsif names.size == 1 title = "Chat for #{names.first}" else title = "Empty Chat" end end ChatRoom.transaction do chat_room = ChatRoom.create!(title: title) users.each { |user| chat_room.chat_members.create!(user: user) } chat_room end end |