Class: RailsReactScaffold::Generators::ControllerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::ResourceHelpers, GeneratorHelpers
Defined in:
lib/generators/rails_react_scaffold/controller_generator.rb

Overview

Custom scaffolding generator

Instance Attribute Summary

Attributes included from GeneratorHelpers

#options

Instance Method Summary collapse

Instance Method Details

#add_routesObject



23
24
25
26
# File 'lib/generators/rails_react_scaffold/controller_generator.rb', line 23

def add_routes
  routes_string = "resources :#{plural_name}"
  route routes_string
end

#copy_controller_and_spec_filesObject



28
29
30
# File 'lib/generators/rails_react_scaffold/controller_generator.rb', line 28

def copy_controller_and_spec_files
  template "controller.rb", File.join("app/controllers", "#{controller_file_name}_controller.rb")
end

#copy_view_filesObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/generators/rails_react_scaffold/controller_generator.rb', line 32

def copy_view_files
  views_directory_path = File.join("app/views", controller_file_path)
  react_components_directory_path = File.join(options['component_dir'], controller_file_path)
  empty_directory views_directory_path

  view_files.each do |file_name|
    template "views/#{file_name}.html.erb", File.join(views_directory_path, "#{file_name}.html.erb")
  end

  json_files.each do |file_name|
    template "views/#{file_name}.json.#{options[:json_engine]}", File.join(views_directory_path, "#{file_name}.json.#{options[:json_engine]}")
  end
  
  component_files.each do |suffix|
    extension = options[:component_ext]
    template "react_components/#{suffix}.js.erb", File.join(react_components_directory_path, "#{plural_name}_#{suffix}.#{extension}")
  end
end