Class: QuicksilverUI::Generators::FormGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- QuicksilverUI::Generators::FormGenerator
- Defined in:
- lib/generators/quicksilver_ui/form/form_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_gems ⇒ Object
- #copy_form_builder ⇒ Object
- #copy_form_component_files ⇒ Object
- #copy_form_helper ⇒ Object
- #copy_stylesheets ⇒ Object
- #done ⇒ Object
- #generate_form_component ⇒ Object
Class Method Details
.banner ⇒ Object
12 13 14 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 12 def self. "rails generate quicksilver_ui:form NAME [options]" end |
.desc(description = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 22 def self.desc(description = nil) return super if description components = Dir.glob(File.join(QuicksilverUI.form_path, "*.rb")) .map { |f| File.basename(f, ".rb") } .reject { |n| n == "base_tag" } .sort .map { |c| " #{c}" } .join("\n") "#{super}\n#{components}" end |
Instance Method Details
#add_gems ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 50 def add_gems all_gems.each do |gem_name| unless gem_installed?(gem_name) say "Adding #{gem_name} to Gemfile...", :yellow run "bundle add #{gem_name}" end end end |
#copy_form_builder ⇒ Object
79 80 81 82 83 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 79 def copy_form_builder source = File.join(templates_path, "app_form_builder.rb") dest = Rails.root.join("app/helpers/app_form_builder.rb") copy_file source, dest, force: ["force"] end |
#copy_form_component_files ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 59 def copy_form_component_files all_form_components.each do |name| source = File.join(self.class.source_root, "#{name}.rb") next unless File.exist?(source) copy_file source, Rails.root.join("app/views/form", "#{name}.rb"), force: ["force"] end end |
#copy_form_helper ⇒ Object
85 86 87 88 89 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 85 def copy_form_helper source = File.join(templates_path, "app_form_helper.rb") dest = Rails.root.join("app/helpers/app_form_helper.rb") copy_file source, dest, force: ["force"] end |
#copy_stylesheets ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 68 def copy_stylesheets all_stylesheets.each do |name| source = File.join(QuicksilverUI.stylesheets_path, "#{name}.css") next unless File.exist?(source) dest = Rails.root.join("app/assets/tailwind", "#{name}.css") copy_file source, dest, force: ["force"] add_css_import(name) end end |
#done ⇒ Object
91 92 93 94 95 96 97 98 99 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 91 def done say "" say "#{form_component_name} form component generated!", :green deps = all_form_components - [file_name] if deps.any? say " Dependencies copied: #{deps.join(", ")}", :cyan end end |
#generate_form_component ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/generators/quicksilver_ui/form/form_generator.rb', line 38 def generate_form_component if form_component_not_found? say "Form component not found: #{form_component_name}", :red say "" say "Available form components:", :green available_form_components.each { |c| say " - #{c}" } exit 1 end say "Generating #{form_component_name} form component..." end |