class ActiveAdmin::Chat::Generators::InstallGenerator
Public Instance Methods
copy_initializer()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 21 def copy_initializer template 'initializers/active_admin/chat.rb.erb', 'config/initializers/active_admin/chat.rb' end
create_models()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 26 def create_models unless model_exists?(@conversation_model_name) Rails::Generators.invoke( 'active_record:model', [ @conversation_model_name, "#{@user_model_name.split('/').last}_id:integer:index", '--migration', '--timestamps' ] ) end unless model_exists?(@message_model_name) Rails::Generators.invoke( 'active_record:model', [ @message_model_name, 'content:string', 'sender:references{polymorphic}', "#{@conversation_model_name.split('/').last}_id:integer:index", 'created_at:datetime:index', 'updated_at:datetime', '--migration', '--no-timestamps' ] ) end end
inject_models_contents()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 54 def inject_models_contents if model_exists?(@conversation_model_name) inject_into_class( model_path(@conversation_model_name), @conversation_model_name.classify, conversation_contents ) end if model_exists?(@message_model_name) inject_into_class( model_path(@message_model_name), @message_model_name.classify, message_contents ) end end
insert_chat_page()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 72 def insert_chat_page template 'pages/chat.rb', 'app/admin/chat.rb' end
normalize_config()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 13 def normalize_config @conversation_model_name = options['conversation_model_name'].underscore.singularize @message_model_name = options['message_model_name'].underscore.singularize @admin_user_model_name = options['admin_user_model_name'].underscore.singularize @user_model_name = options['user_model_name'].underscore.singularize @messages_per_page = 25 end
Private Instance Methods
add_belongs_to(model_name)
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 95 def add_belongs_to(model_name) if model_name.include?('/') "belongs_to :#{model_name.split('/').last}, class_name: '#{model_name.classify}'" else "belongs_to :#{model_name}" end end
add_has_many(model_name)
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 103 def add_has_many(model_name) relation_name = model_name.split('/').last.pluralize if model_name.include?('/') "has_many :#{relation_name}, class_name: #{model_name.classify}, dependent: :destroy" else "has_many :#{relation_name}, dependent: :destroy" end end
conversation_contents()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 78 def conversation_contents buffer = <<-CONTENT #{add_belongs_to(@user_model_name)} #{add_has_many(@message_model_name)} CONTENT buffer end
message_contents()
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 87 def message_contents buffer = <<-CONTENT #{add_belongs_to(@conversation_model_name)} CONTENT buffer end
model_exists?(model_name)
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 113 def model_exists?(model_name) File.exist?(File.join(destination_root, model_path(model_name))) end
model_path(model_name)
click to toggle source
# File lib/generators/active_admin/chat/install/install_generator.rb, line 117 def model_path(model_name) File.join('app', 'models', "#{model_name}.rb") end