class SharpAdminGenerator

Public Instance Methods

add_resource_route() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 47
def add_resource_route
  return if not File.exists?("config/routes.rb")
  route_config =  "namespace :#{options[:ns]} do "
  route_config << "resources :#{file_name.pluralize}"
  route_config << " end"
  route route_config
end
create_base_controller() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 17
def create_base_controller
  empty_directory "app/controllers/#{options[:ns]}"
  path = File.join("app/controllers/#{options[:ns]}", "base_controller.rb")
  template("base_controller.rb", path) unless File.exists?(path)
end
create_base_controller_spec() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 23
def create_base_controller_spec
  empty_directory "spec/controllers/#{options[:ns]}"
  path = File.join("spec/controllers/#{options[:ns]}", "base_controller_spec.rb")
  template("base_controller_spec.rb", path) unless File.exists?(path)
end
create_controller() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 29
def create_controller
  @attributes_symbols = get_model_columns.dup.delete_if {|attribute| ['id', 'created_at', 'updated_at'].include? attribute.name }.collect {|attribute| ":#{attribute.name}" }
  template "controller.rb", File.join("app/controllers/#{options[:ns]}", "#{controller_file_name}_controller.rb")
end
create_helper() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 34
def create_helper
  empty_directory "app/helpers/#{options[:ns]}"
  template "base_helper.rb", File.join("app/helpers/#{options[:ns]}", "base_helper.rb")
end
create_views() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 39
def create_views
  empty_directory "app/views/#{options[:ns]}/#{controller_file_name}"
  @attributes = get_model_columns
  available_views.each do |view|
    template "views/#{view}.html.erb", File.join("app/views/#{options[:ns]}", controller_file_name, "#{view}.html.haml")
  end
end

Protected Instance Methods

available_views() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 57
def available_views
  views = ["index", "new", "show", "edit", "_form"]

  views.delete("new") if options[:no_create]

  ["new", "edit", "_form"].each { |v| views.delete(v) } if options[:read_only]

  views
end
get_model_columns() click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 76
def get_model_columns
  if model_exists?(class_name)
    class_name.constantize.send(:columns)
  else
    [] # allow user (and test) to generate the view files
  end
end
model_exists?(klass_name) click to toggle source
# File lib/sharp_admin/sharp_admin_generator.rb, line 67
def model_exists?(klass_name)
  begin
    klass = Module.const_get(klass_name)
    return klass.superclass == ActiveRecord::Base
  rescue NameError
    return false
  end
end