Class: ControllerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/controller/controller_generator.rb

Constant Summary collapse

NON_TEMPLATE_ACTIONS =
%w[create update destroy]

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#namespaceObject (readonly)

Returns the value of attribute namespace.



16
17
18
# File 'lib/generators/controller/controller_generator.rb', line 16

def namespace
  @namespace
end

Instance Method Details

#authenticate_actorObject (private)



72
73
74
# File 'lib/generators/controller/controller_generator.rb', line 72

def authenticate_actor
  options['authenticate']
end

#authenticate_actor?Boolean (private)

Returns:

  • (Boolean)


68
69
70
# File 'lib/generators/controller/controller_generator.rb', line 68

def authenticate_actor?
  options['authenticate'].present?
end

#copy_template_fileObject



18
19
20
21
22
23
24
25
26
# File 'lib/generators/controller/controller_generator.rb', line 18

def copy_template_file
  @namespace = class_name.split("::")
  @namespace.pop
  @namespace = @namespace.join("::")
  template "controller.rb.erb", file_path
  (actions - NON_TEMPLATE_ACTIONS).each do |temp_name|
    template "view.html.slim", template_file_path(temp_name)
  end
end

#create_flash_messageObject (private)



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

def create_flash_message
  "Successfully created #{singular_name}"
end

#destroy_flash_messageObject (private)



38
39
40
# File 'lib/generators/controller/controller_generator.rb', line 38

def destroy_flash_message
  "Successfully destroyed #{singular_name}"
end

#file_pathObject (private)



42
43
44
45
# File 'lib/generators/controller/controller_generator.rb', line 42

def file_path
  Rails.root.join('app', 'controllers',
                  namespace_path + file_name + "_controller.rb")
end

#namespace_pathObject (private)



52
53
54
55
56
57
58
# File 'lib/generators/controller/controller_generator.rb', line 52

def namespace_path
  if namespace.blank?
    return ""
  else
    namespace.split("::").map(&:underscore).join("/") + "/"
  end
end

#parent_class_nameObject (private)



64
65
66
# File 'lib/generators/controller/controller_generator.rb', line 64

def parent_class_name
  namespace.blank? ? 'ApplicationController' : namespace  + "::BaseController"
end

#singular_nameObject (private)



60
61
62
# File 'lib/generators/controller/controller_generator.rb', line 60

def singular_name
  super.singularize
end

#template_file_path(temp_name) ⇒ Object (private)



47
48
49
50
# File 'lib/generators/controller/controller_generator.rb', line 47

def template_file_path(temp_name)
  Rails.root.join('app', 'views', namespace_path + file_name,
                  temp_name + ".html.slim")
end

#update_flash_messageObject (private)



34
35
36
# File 'lib/generators/controller/controller_generator.rb', line 34

def update_flash_message
  "Successfully updated #{singular_name}"
end