Class: Cambium::ControllerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/cambium/controller_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_config_fileObject



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_routesObject



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\ Cambium\:(.*)\n/
  )
end

#add_sidebar_itemObject



71
72
73
74
75
76
77
78
# 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_modelObject

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/cambium.rb")
    help_message('cambium_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_controllerObject



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_attrsObject



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