lib/generators/coupdoeil/popover/popover_generator.rb



# frozen_string_literal: true

module Coupdoeil
  class 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
end