Class: RiderKick::CleanArchGenerator

Inherits:
BaseGenerator
  • Object
show all
Defined in:
lib/generators/rider_kick/clean_arch_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_gem_dependenciesObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/generators/rider_kick/clean_arch_generator.rb', line 24

def create_gem_dependencies
  if options[:engine].present?
    # Untuk engine, tambahkan ke Gemfile engine
    engine_gemfile_path = "engines/#{options[:engine].downcase}/Gemfile"
    append_to_file(engine_gemfile_path, gem_dependencies)
    say "Gems added to #{engine_gemfile_path}", :green
  else
    # Untuk main app, tambahkan ke Gemfile host
    append_to_file('Gemfile', gem_dependencies)
    say 'Gems added to Gemfile', :green
  end
end

#setup_configurationObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/generators/rider_kick/clean_arch_generator.rb', line 37

def setup_configuration
  configure_engine
  setup_domain_structure

  if options[:engine].present?
    # Untuk engine, hanya setup yang relevan
    setup_init_migration
    setup_models
    setup_engine_generators
  else
    # Untuk main app, setup semua
    setup_initializers
    setup_dotenv
    setup_gitignore
    setup_rubocop
    setup_init_migration
    setup_models
    setup_application_config
    # setup_active_storage
    setup_rspec
    setup_readme
  end
end

#validate_setup_optionObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/generators/rider_kick/clean_arch_generator.rb', line 12

def validate_setup_option
  # Jika --engine dispecify, maka --setup otomatis dianggap true
  return if options.engine.present?

  unless options.setup
    raise ValidationError.new(
            'The --setup option must be specified to create the domain structure.',
            suggestion: 'Run: bin/rails generate rider_kick:clean_arch --setup'
    )
  end
end