Class: Admin::Generators::ScaffoldControllerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::ResourceHelpers
Defined in:
lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb

Instance Method Summary collapse

Instance Method Details

#attributes_hashObject



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 45

def attributes_hash
  return if attributes_names.empty?

  attributes_names.map do |name|
    if %w(password password_confirmation).include?(name) && attributes.any?(&:password_digest?)
      "#{name}: 'secret'"
    else
      "#{name}: @#{singular_table_name}.#{name}"
    end
  end.sort.join(', ')
end

#available_viewsObject



85
86
87
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 85

def available_views
  %w(index edit show new _form)
end

#copy_view_filesObject



34
35
36
37
38
39
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 34

def copy_view_files
  available_views.each do |view|
    template_path = "views/erb/#{view}.html.erb.erb"
    template template_path, File.join("app/views", prefix, controller_file_path, "#{view}.html.erb")
  end
end

#create_controller_filesObject



27
28
29
30
31
32
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 27

def create_controller_files
  # I think there should be a better way to detect if jbuilder is in use
  # If you know it, please let me know
  template "controllers/controller.rb.erb", File.join('app/controllers', prefix, class_path, "#{controller_file_name}_controller.rb")
  # create_file "app/controllers/a.rb", "# Add initialization content here"
end

#create_test_filesObject



41
42
43
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 41

def create_test_files
  template "tests/test_unit/functional_test.rb.erb", File.join("test/controllers", prefix, controller_class_path, "#{controller_file_name}_controller_test.rb")
end

#parent_controller_class_nameObject



65
66
67
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 65

def parent_controller_class_name
  options[:parent_controller].camelcase
end

#plural_table_name_camelcaseObject



89
90
91
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 89

def plural_table_name_camelcase
  plural_table_name.camelcase
end

#prefixObject



57
58
59
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 57

def prefix
  options[:prefix_name]
end

#prefixed_class_nameObject



69
70
71
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 69

def prefixed_class_name
  "#{prefix.capitalize}::#{class_name}"
end

#prefixed_controller_class_nameObject



61
62
63
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 61

def prefixed_controller_class_name
  "#{prefix.camelcase}::#{controller_class_name}"
end

#prefixed_index_helperObject



81
82
83
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 81

def prefixed_index_helper
  "#{prefix}_#{index_helper}"
end

#prefixed_plain_model_urlObject



77
78
79
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 77

def prefixed_plain_model_url
  "#{prefix}_#{singular_table_name}"
end

#prefixed_route_urlObject



73
74
75
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 73

def prefixed_route_url
  "/#{prefix}#{route_url}"
end

#singular_table_name_camelcaseObject



93
94
95
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 93

def singular_table_name_camelcase
  singular_table_name.camelcase
end