lib/generators/coupdoeil/popover/popover_generator.rb



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

  check_class_collision suffix: "Popover"

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

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

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