Class: Generators::Avo::ResourceGenerator

Inherits:
NamedBaseGenerator
  • Object
show all
Includes:
Concerns::OverrideController, Concerns::ParentController
Defined in:
lib/generators/avo/resource_generator.rb

Instance Method Summary collapse

Methods included from Concerns::OverrideController

#controllers_list, #override_controller?

Methods included from Concerns::ParentController

#parent_controller

Methods inherited from NamedBaseGenerator

#initialize

Constructor Details

This class inherits a constructor from Generators::Avo::NamedBaseGenerator

Instance Method Details

#class_from_argsObject



55
56
57
# File 'lib/generators/avo/resource_generator.rb', line 55

def class_from_args
  @class_from_args ||= options["model-class"]&.camelize || (class_name if class_name.include?("::"))
end

#controller_classObject



31
32
33
# File 'lib/generators/avo/resource_generator.rb', line 31

def controller_class
  "Avo::#{class_name.remove(":").pluralize}Controller"
end

#controller_nameObject



39
40
41
# File 'lib/generators/avo/resource_generator.rb', line 39

def controller_name
  "#{model_resource_name.pluralize}_controller"
end

#createObject



20
21
22
23
24
25
# File 'lib/generators/avo/resource_generator.rb', line 20

def create
  return if override_controller?

  template "resource/resource.tt", "app/avo/resources/#{resource_name}.rb"
  invoke "avo:controller", [resource_name], options
end

#current_modelsObject



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/generators/avo/resource_generator.rb', line 43

def current_models
  ActiveRecord::Base.connection.tables.map do |model|
    model.capitalize.singularize.camelize
  end
rescue ActiveRecord::NoDatabaseError
  puts "Database not found, please create your database and regenerate the resource."
  []
rescue ActiveRecord::ConnectionNotEstablished
  puts "Database connection error, please create your database and regenerate the resource."
  []
end

#model_class_from_argsObject



59
60
61
62
63
# File 'lib/generators/avo/resource_generator.rb', line 59

def model_class_from_args
  if class_from_args.present? || class_name.include?("::")
    "\n  self.model_class = ::#{class_from_args || class_name}"
  end
end

#resource_classObject



27
28
29
# File 'lib/generators/avo/resource_generator.rb', line 27

def resource_class
  class_name.remove(":").to_s
end

#resource_nameObject



35
36
37
# File 'lib/generators/avo/resource_generator.rb', line 35

def resource_name
  model_resource_name.to_s
end