Class: ActiveAdmin::Chat::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- ActiveAdmin::Chat::Generators::InstallGenerator
- Defined in:
- lib/generators/active_admin/chat/install/install_generator.rb
Instance Method Summary collapse
- #copy_initializer ⇒ Object
- #create_models ⇒ Object
- #inject_models_contents ⇒ Object
- #insert_chat_page ⇒ Object
- #normalize_config ⇒ Object
Instance Method Details
#copy_initializer ⇒ Object
21 22 23 24 |
# 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 ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# 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 ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# 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, ) end end |
#insert_chat_page ⇒ Object
72 73 74 |
# 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 ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/generators/active_admin/chat/install/install_generator.rb', line 13 def normalize_config @conversation_model_name = ['conversation_model_name'].underscore.singularize @message_model_name = ['message_model_name'].underscore.singularize @admin_user_model_name = ['admin_user_model_name'].underscore.singularize @user_model_name = ['user_model_name'].underscore.singularize @messages_per_page = 25 end |