Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add setContext function #1253

Merged
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
5 changes: 5 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ Documentation::

Improvement::

* Add `setContext` function to ContentNode.

* Add command line option --failure-level to force non-zero exit code from AsciidoctorJ CLI if specified logging level is reached. (#1114)
* Upgrade to asciidoctorj 2.0.20 (#1208)
* Upgrade to asciidoctorj-pdf 2.3.7 (#1182)
* Add 'standalone' option, deprecates 'headerFooter' (#1160) (@abelsromero)
* Upgrade to asciidoctorj-diagram 2.2.7

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ public interface ContentNode {
@Deprecated
String context();
String getContext();

void setContext(String context);

/**
* @deprecated Use {@linkplain #getDocument()} instead.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ public String getContext() {
return getString("context");
}

@Override
public void setContext(String context) {
setString("context", context);

}
@Override
@Deprecated
public ContentNode parent() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package org.asciidoctor.jruby.ast.impl;

import org.asciidoctor.Asciidoctor;
import org.asciidoctor.Attributes;
import org.asciidoctor.Options;
import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.StructuralNode;

import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.assertThat;


public class ContextChangeTest {

private final Asciidoctor asciiDoctor = Asciidoctor.Factory.create();

static String orderedListSample() {
return "= Document Title\n\n" +
"== Section A\n\n" +
". This it item 1 in an ordered list\n\n" +
". This is item 2 in an ordered list\n\n" +
". This is item 3 in and ordered list\n\n";

}

@Test
public void get_context_of_ordered_list(){

Document document = loadDocument(orderedListSample());

assertThat(document, notNullValue());
assertThat(document.getBlocks().size(), equalTo(1));

StructuralNode orderedList = document.getBlocks().get(0).getBlocks().get(0);
assertThat(orderedList, notNullValue());

// Odd – I expected this to send back :'olist'
assertThat(orderedList.getContext(), equalTo("olist"));

// But can you change it?

orderedList.setContext("colist");

assertThat(orderedList.getContext(), equalTo("colist"));

}

private Document loadDocument(String source) {
Attributes attributes = Attributes.builder().sectionNumbers(false).build();
Options options = Options.builder().attributes(attributes).build();
return asciiDoctor.load(source, options);
}
}
Loading