phlexing icon indicating copy to clipboard operation
phlexing copied to clipboard

`render` should not become a stubbed private method

Open kisp opened this issue 8 months ago • 0 comments

When using nested components, the generated code currently includes a private render method stub marked with # TODO: Implement me. This causes confusion because it overrides the intended render behavior, making nested components render invisible or not behave as expected.

ERB Input:

<div>
  <%= render Components::CardStatusBadge.new(card: card) %>
</div>

Output:

class Components::Myn::CardItem < Components::Base
  attr_accessor :card

  def initialize(card:)
    @card = card
  end

  def view_template
    div { render Components::CardStatusBadge.new(card: card) }
  end

  private

  def render(*args, **kwargs)
    # TODO: Implement me
  end
end

Expected output:

class Components::Myn::CardItem < Components::Base
  attr_accessor :card

  def initialize(card:)
    @card = card
  end

  def view_template
    div { render Components::CardStatusBadge.new(card: card) }
  end
end

kisp avatar Jun 30 '25 07:06 kisp