class Heartwood::ControllerGenerator

Public Instance Methods

add_config_file() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/generators/cambium/controller_generator.rb, line 71
def add_sidebar_item
  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() click to toggle source

If there is no configuration file tell the user to run that generator first (unless user has manually overridden).

def verify_configuration

if options.config_check?
  unless File.exists?("#{Rails.root}/config/initializers/heartwood.rb")
    help_message('heartwood_prereqs')
    exit
  end
end

end

# 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() click to toggle source
# 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() click to toggle source
# 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