Class: Heartwood::ControllerGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Heartwood::ControllerGenerator
- Defined in:
- lib/generators/cambium/controller_generator.rb
Instance Method Summary collapse
- #add_config_file ⇒ Object
- #add_routes ⇒ Object
- #add_sidebar_item ⇒ Object
-
#confirm_model ⇒ Object
If there is no configuration file tell the user to run that generator first (unless user has manually overridden).
- #generate_controller ⇒ Object
- #set_model_attrs ⇒ Object
Instance Method Details
#add_config_file ⇒ Object
67 68 69 |
# File 'lib/generators/cambium/controller_generator.rb', line 67 def add_config_file template "config/admin/controller.yml.erb", "config/admin/#{@model_pl}.yml" end |
#add_routes ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/generators/cambium/controller_generator.rb', line 56 def add_routes route = " namespace :admin do\n" route += " resources :#{@model_pl}\n" route += " end\n" insert_into_file( "config/routes.rb", route, :after => /mount\ Heartwood\:(.*)\n/ ) end |
#add_sidebar_item ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/generators/cambium/controller_generator.rb', line 71 def config = "#{@model_pl}:\n" config += " label: #{@model_pl.titleize}\n" config += " route: main_app.admin_#{@model_pl}\n" config += " icon: cog\n" config += " controllers: ['#{@model_pl}']\n" append_to_file("config/admin/sidebar.yml", config) end |
#confirm_model ⇒ Object
If there is no configuration file tell the user to run that generator first (unless user has manually overridden).
def verify_configuration
if .config_check?
unless File.exists?("#{Rails.root}/config/initializers/heartwood.rb")
('heartwood_prereqs')
exit
end
end
end
34 35 36 37 38 39 |
# File 'lib/generators/cambium/controller_generator.rb', line 34 def confirm_model @model = model.classify.singularize.constantize # rescue # puts "Can't find the model: #{model}" # exit end |
#generate_controller ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/generators/cambium/controller_generator.rb', line 47 def generate_controller generate "controller admin/#{@model_pl}" template( "app/controllers/admin/controller.rb.erb", "app/controllers/admin/#{@model_pl}_controller.rb", :force => true ) end |
#set_model_attrs ⇒ Object
41 42 43 44 45 |
# File 'lib/generators/cambium/controller_generator.rb', line 41 def set_model_attrs @model_pl = @model.to_s.tableize.downcase.pluralize @columns = @model.columns.reject { |col| ['id','created_at','updated_at'].include?(col.name) } end |