Class: Charming::Generators::AppGenerator
- Includes:
- AppSpecTemplates, BasicTemplates, ComponentTemplates, ControllerTemplate, DatabaseTemplates, LayoutTemplate, ScreenSpecTemplates, StateTemplates, ViewTemplate
- Defined in:
- lib/charming/generators/app_generator.rb,
lib/charming/generators/app_generator/view_template.rb,
lib/charming/generators/app_generator/basic_templates.rb,
lib/charming/generators/app_generator/layout_template.rb,
lib/charming/generators/app_generator/state_templates.rb,
lib/charming/generators/app_generator/app_spec_templates.rb,
lib/charming/generators/app_generator/database_templates.rb,
lib/charming/generators/app_generator/component_templates.rb,
lib/charming/generators/app_generator/controller_template.rb,
lib/charming/generators/app_generator/screen_spec_templates.rb
Defined Under Namespace
Modules: AppSpecTemplates, BasicTemplates, ComponentTemplates, ControllerTemplate, DatabaseTemplates, LayoutTemplate, ScreenSpecTemplates, StateTemplates, ViewTemplate
Constant Summary collapse
- BASE_FILE_TEMPLATES =
[ ["Gemfile", :gemfile], ["Rakefile", :rakefile], ["README.md", :readme], ["%<name>s.gemspec", :gemspec], ["exe/%<name>s", :executable], ["lib/%<name>s.rb", :root_file], ["lib/%<name>s/application.rb", :application], ["lib/%<name>s/version.rb", :version], ["config/routes.rb", :routes], ["app/state/application_state.rb", :application_state], ["app/state/home_state.rb", :home_state], ["app/controllers/application_controller.rb", :application_controller], ["app/controllers/home_controller.rb", :controller], ["app/views/layouts/application.tui.erb", :layout], ["app/views/home/show.tui.erb", :view], ["app/components/app_frame_component.rb", :component], ["spec/spec_helper.rb", :spec_helper], ["spec/state/home_state_spec.rb", :spec_state], ["spec/controllers/home_controller_spec.rb", :spec_controller], ["spec/views/home/show_template_spec.rb", :spec_view], ["spec/components/app_frame_component_spec.rb", :spec_component] ].freeze
- DATABASE_FILE_TEMPLATES =
[ ["config/database.rb", :database_config], ["app/models/application_record.rb", :application_record], ["db/migrate/.keep", :keep], ["db/seeds.rb", :seeds] ].freeze
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(name, out:, destination:, force: false, database: nil) ⇒ AppGenerator
constructor
A new instance of AppGenerator.
Methods included from AppSpecTemplates
#spec_component, #spec_controller, #spec_state, #spec_view
Methods included from ViewTemplate
#application, #database_require, #executable, #model_loader, #root_file, #version, #view
Methods included from ScreenSpecTemplates
#spec_controller, #spec_state, #spec_view
Methods included from StateTemplates
#application_state, #home_state
Methods included from LayoutTemplate
Methods included from DatabaseTemplates
#application_record, #database_config, #keep, #seeds
Methods included from ControllerTemplate
#application_controller, #controller, #controller_actions, #controller_helpers
Methods included from ComponentTemplates
#component, #component_helpers
Methods included from BasicTemplates
#database_dependencies, #gemfile, #gemspec, #gemspec_attributes, #gemspec_dependencies, #gemspec_file_glob, #rakefile, #readme
Constructor Details
#initialize(name, out:, destination:, force: false, database: nil) ⇒ AppGenerator
Returns a new instance of AppGenerator.
47 48 49 50 51 |
# File 'lib/charming/generators/app_generator.rb', line 47 def initialize(name, out:, destination:, force: false, database: nil) super(out: out, destination: File.join(destination, name), force: force) @name = Name.new(name) @database = database end |
Instance Method Details
#generate ⇒ Object
53 54 55 56 57 58 |
# File 'lib/charming/generators/app_generator.rb', line 53 def generate file_templates.each do |path, template| create_file(file_path(path), send(template), executable: template == :executable) end initialize_git_repository end |