class Admin::Generators::ScaffoldControllerGenerator
Protected Class Methods
check_class_collision(options={})
click to toggle source
Add a class collisions name to be checked on class initialization. You can supply a hash with a :prefix or :suffix to be tested.
Examples¶ ↑
check_class_collision suffix: "Decorator"
If the generator is invoked with class name Admin
, it will check for the presence of “AdminDecorator”.
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 150 def self.check_class_collision(options={}) define_method :check_class_collision do name = if self.respond_to?(:prefixed_controller_class_name) # for ScaffoldBase prefixed_controller_class_name elsif self.respond_to?(:prefixed_controller_class_name) # for ScaffoldBase controller_class_name else class_name end class_collisions "#{options[:prefix]}#{name}#{options[:suffix]}" end end
Public Instance Methods
copy_view_files()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 67 def copy_view_files available_views.each do |view| filename = filename_with_extensions(view) if bootstrap template_path = "views/#{handler}_bootstrap/#{filename}.erb" else template_path = "views/#{handler}/#{filename}.erb" end template template_path, File.join("app/views", prefix, controller_file_path, filename) end # I think there should be a better way to detect if jbuilder is in use if Gem::Specification.find_all_by_name('jbuilder').length >= 1 %w(index show).each do |view| template "views/jbuilder/#{view}.json.jbuilder.erb", File.join("app/views", prefix, controller_file_path, "#{view}.json.jbuilder") end end end
create_controller_files()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 45 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 if Gem::Specification.find_all_by_name('jbuilder').length >= 1 template "controllers/jbuilder/controller.rb.erb", File.join('app/controllers', prefix, class_path, "#{controller_file_name}_controller.rb") else template "controllers/railties/controller.rb.erb", File.join('app/controllers', prefix, class_path, "#{controller_file_name}_controller.rb") end end
create_root_folder()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 63 def create_root_folder empty_directory File.join("app/views", prefix, controller_file_path) end
create_test_files()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 55 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
Protected Instance Methods
attributes_hash()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 164 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
attributes_list(attributes = attributes_names)
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 180 def attributes_list(attributes = attributes_names) if self.attributes.any? {|attr| attr.name == 'password' && attr.type == :digest} attributes = attributes.reject {|name| %w(password password_confirmation).include? name} end attributes.map { |a| ":#{a}"} * ', ' end
attributes_list_with_timestamps()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 176 def attributes_list_with_timestamps attributes_list(attributes_names + %w(created_at updated_at)) end
available_views()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 124 def available_views %w(index edit show new _form) end
bootstrap()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 92 def bootstrap options[:bootstrap] end
filename_with_extensions(name)
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 136 def filename_with_extensions(name) [name, format, handler].compact.join(".") end
format()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 128 def format :html end
handler()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 132 def handler options[:template_engine] end
parent_controller_class_name()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 108 def parent_controller_class_name options[:parent_controller].capitalize end
prefix()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 96 def prefix options[:prefix_name] end
prefixed_class_name()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 100 def prefixed_class_name "#{prefix.capitalize}::#{class_name}" end
prefixed_controller_class_name()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 104 def prefixed_controller_class_name "#{prefix.capitalize}::#{controller_class_name}" end
prefixed_index_helper()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 120 def prefixed_index_helper "#{prefix}_#{index_helper}" end
prefixed_plain_model_url()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 116 def prefixed_plain_model_url "#{prefix}_#{singular_table_name}" end
prefixed_route_url()
click to toggle source
# File lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb, line 112 def prefixed_route_url "/#{prefix}#{route_url}" end