Class: ActiveAdmin::Chat::Generators::InstallGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/active_admin/chat/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#copy_initializerObject



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_modelsObject



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_contentsObject



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,
      message_contents
    )
  end
end

#insert_chat_pageObject



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_configObject



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 = 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