lib/generators/coupdoeil/hovercard/hovercard_generator.rb



class Coupdoeil::HovercardGenerator < Rails::Generators::NamedBase
  source_root File.expand_path("templates", __dir__)

  check_class_collision suffix: "Hovercard"

  class_option :skip_views, type: :boolean, desc: "Skip view files", default: false

  argument :action_names, type: :array, default: []

  def create_hovercard_file
    template "hovercard.rb",
             File.join("app/hovercards", class_path, "#{file_name}_hovercard.rb")
    unless options.skip_views?
      action_names.each do |action_name|
        path = [*class_path, file_name].join('/')
        create_file "app/hovercards/#{path}_hovercard/#{action_name}.html.erb", <<~ERB
          <p>Hello from #{class_name}Hovercard##{action_name}</p>
        ERB
      end
    end
  end
end