From 0b0c9e1cc44932a563f21d935ec84bf5d84f7c18 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 27 Mar 2018 15:24:00 +0100 Subject: [PATCH] Perform attribute substitution on operation macro's target Closes gh-491 --- .../main/resources/extensions/operation_block_macro.rb | 1 + .../restdocs/asciidoctor/OperationBlockMacroTests.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/spring-restdocs-asciidoctor/src/main/resources/extensions/operation_block_macro.rb b/spring-restdocs-asciidoctor/src/main/resources/extensions/operation_block_macro.rb index 5fe2648a..4d94c40e 100644 --- a/spring-restdocs-asciidoctor/src/main/resources/extensions/operation_block_macro.rb +++ b/spring-restdocs-asciidoctor/src/main/resources/extensions/operation_block_macro.rb @@ -15,6 +15,7 @@ class OperationBlockMacro < Asciidoctor::Extensions::BlockMacroProcessor def process(parent, operation, attributes) snippets_dir = parent.document.attributes['snippets'].to_s snippet_names = attributes.fetch 'snippets', '' + operation = parent.sub_attributes operation snippet_titles = SnippetTitles.new parent.document.attributes content = read_snippets(snippets_dir, snippet_names, parent, operation, snippet_titles) diff --git a/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/OperationBlockMacroTests.java b/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/OperationBlockMacroTests.java index 0770165e..b3973157 100644 --- a/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/OperationBlockMacroTests.java +++ b/spring-restdocs-asciidoctor/src/test/java/org/springframework/restdocs/asciidoctor/OperationBlockMacroTests.java @@ -76,6 +76,16 @@ public class OperationBlockMacroTests { assertThat(result, equalTo(getExpectedContentFromFile("snippet-simple"))); } + @Test + public void operationWithParameterizedName() throws Exception { + Attributes attributes = getAttributes(); + attributes.setAttribute("name", "some"); + this.options.setAttributes(attributes); + String result = this.asciidoctor.convert( + "operation::{name}-operation[snippets='curl-request']", this.options); + assertThat(result, equalTo(getExpectedContentFromFile("snippet-simple"))); + } + @Test public void codeBlockSnippetIncludeWithPdfBackend() throws Exception { File output = configurePdfOutput();