Class: RailsHmvc::Generators::ControllerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
GeneratorHelpers
Defined in:
lib/generators/hmvc/controller/controller_generator.rb

Instance Method Summary collapse

Methods included from GeneratorHelpers

#load_config, #load_config_for_type, #namespace_name, #namespace_path, #singular_human_name

Constructor Details

#initialize(*args) ⇒ ControllerGenerator

Returns a new instance of ControllerGenerator.



31
32
33
34
35
36
37
38
# File 'lib/generators/hmvc/controller/controller_generator.rb', line 31

def initialize(*args)
  super
  @config = load_config_for_type(options[:type])
  @controllers_config = @config["controllers"]
  @operations_config = @config["operations"]
  @forms_config = @config["forms"]
  set_defaults_from_config
end

Instance Method Details

#create_controllerObject



40
41
42
43
44
# File 'lib/generators/hmvc/controller/controller_generator.rb', line 40

def create_controller
  return if skip_controller?

  template("controller.rb", "app/controllers/#{controller_path}.rb")
end

#create_formsObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/generators/hmvc/controller/controller_generator.rb', line 59

def create_forms
  return if skip_form?

  form_actions = @forms_config["actions"]
  skip_actions = @forms_config["skip_actions"] || []

  form_actions.each do |action|
    next if skip_actions.include?(action)
    next unless actions.include?(action)

    Rails::Generators.invoke("rails_hmvc:form", [
                               "#{namespace_path}/#{plural_name}/#{action}",
                               "--type=#{@options[:type]}",
                               "--parent=#{@options[:parent_form]}",
                               "--attributes=#{@options[:attributes]}"
                             ], destination_root: destination_root)
  end
end

#create_operationsObject



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/generators/hmvc/controller/controller_generator.rb', line 46

def create_operations
  return if skip_operation?

  actions.each do |action|
    Rails::Generators.invoke("rails_hmvc:operation", [
                               "#{namespace_path}/#{plural_name}/#{action}",
                               "--type=#{@options[:type]}",
                               "--parent=#{@options[:parent_operation]}",
                               "--steps=#{@options[:steps]}"
                             ], destination_root: destination_root)
  end
end