Class: Natra::Generators::ControllerGenerator

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/natra/generators/controller/controller_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#class_nameObject (readonly)

Returns the value of attribute class_name.



7
8
9
# File 'lib/natra/generators/controller/controller_generator.rb', line 7

def class_name
  @class_name
end

#controller_nameObject (readonly)

Returns the value of attribute controller_name.



7
8
9
# File 'lib/natra/generators/controller/controller_generator.rb', line 7

def controller_name
  @controller_name
end

#file_nameObject (readonly)

Returns the value of attribute file_name.



7
8
9
# File 'lib/natra/generators/controller/controller_generator.rb', line 7

def file_name
  @file_name
end

Class Method Details

.source_rootObject



14
15
16
# File 'lib/natra/generators/controller/controller_generator.rb', line 14

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#create_controllerObject



24
25
26
27
# File 'lib/natra/generators/controller/controller_generator.rb', line 24

def create_controller
  template 'templates/controller.rb.erb', File.join('app/controllers', "#{file_name}.rb")
  insert_into_file 'config.ru', "use #{class_name}\n", after: "run ApplicationController\n"
end

#create_viewsObject



29
30
31
32
33
# File 'lib/natra/generators/controller/controller_generator.rb', line 29

def create_views
  return unless options[:views]

  directory 'templates/views', File.join('app/views', controller_name.to_s)
end

#setupObject



18
19
20
21
22
# File 'lib/natra/generators/controller/controller_generator.rb', line 18

def setup
  @controller_name = name.pluralize.underscore
  @class_name      = "#{controller_name.camel_case}Controller"
  @file_name       = class_name.underscore
end