Class: ExpressSettings::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/express_settings/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_routesObject



32
33
34
# File 'lib/generators/express_settings/install/install_generator.rb', line 32

def add_routes
  inject_into_file 'config/routes.rb', "resource :setting, only: [:show, :update]\n\n", after: "#{@module_class}::Engine.routes.draw do\n"
end

#add_settings_to_engineObject



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/generators/express_settings/install/install_generator.rb', line 18

def add_settings_to_engine
  engine_path = File.join('lib', @module_name, 'engine.rb')
  engine_settings_class_method = "\n\ndef self.settings\n  \#{@module_class}::Setting.first_or_create\nend\n  RUBY\n\n  inject_into_file engine_path, engine_settings_class_method, after: /module \#{@module_class}/\n  prepend_to_file engine_path, \"require 'express_settings'\\n\\n\"\nend\n"

#create_model_controller_and_migrationObject



5
6
7
8
9
10
11
12
# File 'lib/generators/express_settings/install/install_generator.rb', line 5

def create_model_controller_and_migration
  @module_name = destination_root.split('/').last
  @module_class = @module_name.camelize
  template 'model/model.rb', File.join('app', 'models', @module_name, 'setting.rb')
  invoke 'active_record:migration', ["create_#{@module_name}_settings", 'data:text']

  template 'controller/controller.rb', File.join('app', 'controllers', @module_name, 'admin', 'settings_controller.rb')
end

#create_viewObject



14
15
16
# File 'lib/generators/express_settings/install/install_generator.rb', line 14

def create_view
  template 'show.html.et.erb', File.join('app', 'views', @module_name, 'admin', 'settings', 'show.html.et')
end