Class: Coalla::Cms::ScaffoldGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Coalla::Cms::ScaffoldGenerator
- Includes:
- Utils::Scaffold
- Defined in:
- lib/generators/coalla/cms/scaffold_generator.rb
Instance Method Summary collapse
- #create_controller ⇒ Object
- #create_views ⇒ Object
- #setup_names ⇒ Object
- #setup_routes ⇒ Object
- #setup_table_columns ⇒ Object
Methods included from Utils::Scaffold
Instance Method Details
#create_controller ⇒ Object
28 29 30 |
# File 'lib/generators/coalla/cms/scaffold_generator.rb', line 28 def create_controller template 'controllers/admin/scaffold_controller_template.rb.erb', "app/controllers/admin/#{@collection_name}_controller.rb" end |
#create_views ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/coalla/cms/scaffold_generator.rb', line 32 def create_views dir = 'views/admin/' empty_directory "app/#{dir}/#{@collection_name}" templates = %w{_form edit index new} templates.each do |t| template "#{dir}/scaffold_template/#{t}.html.haml.erb", "app/#{dir}/#{@collection_name}/#{t}.html.haml" end end |
#setup_names ⇒ Object
14 15 16 17 18 |
# File 'lib/generators/coalla/cms/scaffold_generator.rb', line 14 def setup_names @instance_name = name.underscore @collection_name = name.pluralize.underscore @class_name = name end |
#setup_routes ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/generators/coalla/cms/scaffold_generator.rb', line 42 def setup_routes sentinel = /namespace :admin do\s*$/ routing_code = " resources :#{@collection_name}" in_root do inject_into_file 'config/routes.rb', "\n #{routing_code}", { :after => sentinel, :verbose => false } end end |
#setup_table_columns ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/generators/coalla/cms/scaffold_generator.rb', line 20 def setup_table_columns a_class = name.constantize @table_columns = a_class.columns.reject{|c| [:id, :type, :created_at, :updated_at, :position].include?(c.name.to_sym) }.collect{|c| [c.name, c.type]} @reflections = {} a_class.reflections.values.find_all{|r| r.macro == :belongs_to}.each{|r| @reflections[r.foreign_key] = r} end |