Class: PropelFacets::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#copy_configuration_initializerObject



24
25
26
# File 'lib/generators/propel_facets/install_generator.rb', line 24

def copy_configuration_initializer
  copy_file "config/propel_facets.rb", "config/initializers/propel_facets.rb"
end

#copy_controller_concernsObject



32
33
34
35
# File 'lib/generators/propel_facets/install_generator.rb', line 32

def copy_controller_concerns
  copy_file "controllers/concerns/facet_renderer.rb", "app/controllers/concerns/facet_renderer.rb"
  copy_file "controllers/concerns/strong_params_helper.rb", "app/controllers/concerns/strong_params_helper.rb"
end

#copy_documentationObject



46
47
48
# File 'lib/generators/propel_facets/install_generator.rb', line 46

def copy_documentation
  copy_file "doc/json_facet.md", "doc/json_facet.md"
end

#copy_error_classesObject



41
42
43
44
# File 'lib/generators/propel_facets/install_generator.rb', line 41

def copy_error_classes
  copy_file "errors/application_error.rb", "app/errors/application_error.rb"
  copy_file "errors/missing_facet.rb", "app/errors/missing_facet.rb"
end

#copy_model_concernsObject



28
29
30
# File 'lib/generators/propel_facets/install_generator.rb', line 28

def copy_model_concerns
  copy_file "models/concerns/model_facet.rb", "app/models/concerns/model_facet.rb"
end

#copy_utility_classesObject



37
38
39
# File 'lib/generators/propel_facets/install_generator.rb', line 37

def copy_utility_classes
  copy_file "lib/api_params.rb", "lib/api_params.rb"
end

#create_application_record_if_neededObject



50
51
52
53
54
55
56
57
58
59
# File 'lib/generators/propel_facets/install_generator.rb', line 50

def create_application_record_if_needed
  application_record_path = "app/models/application_record.rb"
  
  unless File.exist?(File.join(destination_root, application_record_path))
    copy_file "models/application_record.rb", application_record_path
  else
    say_status :exists, application_record_path, :blue
    add_propel_facets_to_application_record
  end
end

#extract_generator_for_customizationObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/generators/propel_facets/install_generator.rb', line 61

def extract_generator_for_customization
  generator_path = "lib/generators/propel_facets"
  
  if File.exist?(generator_path)
    say ""
    say "📦 Generator logic already extracted at #{generator_path}/", :blue
    say "💡 Skipping extraction to preserve your customizations", :cyan
  else
    say ""
    say "📦 Extracting generator logic for full customization...", :blue
    
    # Automatically run the unpack generator to extract generator logic
    invoke PropelFacets::UnpackGenerator, [], { force: false }
    
    say ""
    say "✅ Generator logic extracted to lib/generators/propel_facets/", :green
    say "💡 Your application is now completely standalone - no gem dependency needed for generators!", :cyan
    say "🗑️  You can now remove 'propel_facets' from your Gemfile", :yellow
  end
end