Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -886,6 +886,11 @@ nodes:
type: array
kind: Node

- name: block_arguments
type: array
kind:
- RubyParameterNode

- name: rescue_clause
type: node
kind: ERBRescueNode
Expand Down Expand Up @@ -1184,11 +1189,6 @@ nodes:
type: node
kind: RubyLiteralNode

- name: RubyBlockParameterNode
fields:
- name: name
type: token

- name: RubyRenderKeywordsNode
fields:
- name: partial
Expand Down Expand Up @@ -1275,7 +1275,7 @@ nodes:
- name: block_arguments
type: array
kind:
- RubyBlockParameterNode
- RubyParameterNode

- name: rescue_clause
type: node
Expand All @@ -1293,7 +1293,7 @@ nodes:
type: node
kind: ERBEndNode

- name: RubyStrictLocalNode
- name: RubyParameterNode
fields:
- name: name
type: token
Expand All @@ -1302,10 +1302,10 @@ nodes:
type: node
kind: RubyLiteralNode

- name: required
type: boolean
- name: kind
type: string

- name: double_splat
- name: required
type: boolean

- name: ERBStrictLocalsNode
Expand All @@ -1328,7 +1328,7 @@ nodes:
- name: locals
type: array
kind:
- RubyStrictLocalNode
- RubyParameterNode

- name: ERBYieldNode
fields:
Expand Down
4 changes: 2 additions & 2 deletions javascript/packages/formatter/src/format-printer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ import {
ERBInNode,
ERBRenderNode,
RubyRenderKeywordsNode,
RubyBlockParameterNode,
RubyParameterNode,
RubyRenderLocalNode,
ERBOpenTagNode,
HTMLVirtualCloseTagNode,
Expand Down Expand Up @@ -1019,7 +1019,7 @@ export class FormatPrinter extends Printer implements TextFlowDelegate, Attribut
// no-op: extracted metadata, nothing to print
}

visitRubyBlockParameterNode(_node: RubyBlockParameterNode) {
visitRubyParameterNode(_node: RubyParameterNode) {
// no-op: extracted metadata, nothing to print
}

Expand Down
6 changes: 1 addition & 5 deletions javascript/packages/printer/src/identity-printer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -426,10 +426,6 @@ export class IdentityPrinter extends Printer {
// no-op: extracted metadata, nothing to print
}

visitRubyBlockParameterNode(_node: Nodes.RubyBlockParameterNode): void {
// no-op: extracted metadata, nothing to print
}

visitRubyRenderLocalNode(_node: Nodes.RubyRenderLocalNode): void {
// extracted metadata, nothing to print
}
Expand All @@ -438,7 +434,7 @@ export class IdentityPrinter extends Printer {
this.printERBNode(node)
}

visitRubyStrictLocalNode(_node: Nodes.RubyStrictLocalNode): void {
visitRubyParameterNode(_node: Nodes.RubyParameterNode): void {
// extracted metadata, nothing to print
}

Expand Down

This file was deleted.

56 changes: 56 additions & 0 deletions javascript/packages/printer/test/nodes/ruby-parameter-node.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import dedent from "dedent"
import { describe, test, beforeAll } from "vitest"

import { Herb } from "@herb-tools/node-wasm"
import { RubyParameterNode } from "@herb-tools/core"

import { expectNodeToPrint, expectPrintRoundTrip, createLocation, createToken } from "../helpers/printer-test-helpers.js"

describe("RubyParameterNode Printing", () => {
beforeAll(async () => {
await Herb.load()
})

test("prints nothing from constructed node", () => {
const node = RubyParameterNode.from({
type: "AST_RUBY_PARAMETER_NODE",
location: createLocation(),
errors: [],
name: createToken("TOKEN_IDENTIFIER", "user"),
default_value: null,
required: true,
keyword: false,
splat: false,
double_splat: false,
block: false
})

expectNodeToPrint(node, "")
})

test("does not print when used as strict local", () => {
expectPrintRoundTrip(dedent`
<%# locals: (user:) %>
`, true, { strict_locals: true })
})

test("does not print when used as block argument", () => {
expectPrintRoundTrip(`<%= render BlogComponent.new do |component| %>\n<% end %>`, true, { render_nodes: true })
})

test("does not print when used as inline brace block argument", () => {
expectPrintRoundTrip(`<%= render AbcComponent.new { |component| component.with_header } %>`, true, { render_nodes: true })
})

test("does not print with multiple block arguments", () => {
expectPrintRoundTrip(`<%= render TableComponent.new do |table, index| %>\n<% end %>`, true, { render_nodes: true })
})

test("does not print when block has no arguments", () => {
expectPrintRoundTrip(`<%= render LayoutComponent.new do %>\n<% end %>`, true, { render_nodes: true })
})

test("does not print on regular ERB block", () => {
expectPrintRoundTrip(`<% items.each do |item| %>\n <%= item %>\n<% end %>`)
})
})

This file was deleted.

6 changes: 6 additions & 0 deletions rust/tests/snapshots/prism_nodes_deep_test__each_block.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions rust/tests/snapshots/prism_nodes_test__each_block.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading