diff --git a/CHANGELOG.md b/CHANGELOG.md index 73501ca12..a3f0ef82d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Drafter Changelog -## master +## 4.0.0-pre.2 + +### Bug Fixes + +* Parameters which are of `enum` type will now have their `default` values + correctly serialized in the output using `enum` type + +### Enhancements * Add column/line info to anotations source maps diff --git a/features/fixtures/refract.json b/features/fixtures/refract.json index b80b4fdcb..8836174d7 100644 --- a/features/fixtures/refract.json +++ b/features/fixtures/refract.json @@ -124,8 +124,11 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "content": "" + "element": "enum", + "content": { + "element": "string", + "content": "" + } }, "enumerations": { "element": "array", @@ -237,8 +240,11 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "content": "" + "element": "enum", + "content": { + "element": "string", + "content": "" + } }, "enumerations": { "element": "array", diff --git a/features/fixtures/refract.sourcemap.json b/features/fixtures/refract.sourcemap.json index 4a61817c7..4e90c711a 100644 --- a/features/fixtures/refract.sourcemap.json +++ b/features/fixtures/refract.sourcemap.json @@ -374,33 +374,36 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "attributes": { - "sourceMap": { - "element": "array", - "content": [ - { - "element": "sourceMap", - "content": [ - { - "element": "array", - "content": [ - { - "element": "number", - "content": 516 - }, - { - "element": "number", - "content": 86 - } - ] - } - ] - } - ] - } - }, - "content": "" + "element": "enum", + "content": { + "element": "string", + "attributes": { + "sourceMap": { + "element": "array", + "content": [ + { + "element": "sourceMap", + "content": [ + { + "element": "array", + "content": [ + { + "element": "number", + "content": 516 + }, + { + "element": "number", + "content": 86 + } + ] + } + ] + } + ] + } + }, + "content": "" + } }, "enumerations": { "element": "array", @@ -862,33 +865,36 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "attributes": { - "sourceMap": { - "element": "array", - "content": [ - { - "element": "sourceMap", - "content": [ - { - "element": "array", - "content": [ - { - "element": "number", - "content": 823 - }, - { - "element": "number", - "content": 86 - } - ] - } - ] - } - ] - } - }, - "content": "" + "element": "enum", + "content": { + "element": "string", + "attributes": { + "sourceMap": { + "element": "array", + "content": [ + { + "element": "sourceMap", + "content": [ + { + "element": "array", + "content": [ + { + "element": "number", + "content": 823 + }, + { + "element": "number", + "content": 86 + } + ] + } + ] + } + ] + } + }, + "content": "" + } }, "enumerations": { "element": "array", diff --git a/features/fixtures/refract.sourcemap.yaml b/features/fixtures/refract.sourcemap.yaml index a19f67665..6f6e35200 100644 --- a/features/fixtures/refract.sourcemap.yaml +++ b/features/fixtures/refract.sourcemap.yaml @@ -249,24 +249,26 @@ content: element: "enum" attributes: default: - element: "string" - attributes: - sourceMap: - element: "array" - content: - - - element: "sourceMap" - content: - - - element: "array" - content: - - - element: "number" - content: 516 - - - element: "number" - content: 86 - content: "" + element: "enum" + content: + element: "string" + attributes: + sourceMap: + element: "array" + content: + - + element: "sourceMap" + content: + - + element: "array" + content: + - + element: "number" + content: 516 + - + element: "number" + content: 86 + content: "" enumerations: element: "array" content: @@ -566,24 +568,26 @@ content: element: "enum" attributes: default: - element: "string" - attributes: - sourceMap: - element: "array" - content: - - - element: "sourceMap" - content: - - - element: "array" - content: - - - element: "number" - content: 823 - - - element: "number" - content: 86 - content: "" + element: "enum" + content: + element: "string" + attributes: + sourceMap: + element: "array" + content: + - + element: "sourceMap" + content: + - + element: "array" + content: + - + element: "number" + content: 823 + - + element: "number" + content: 86 + content: "" enumerations: element: "array" content: diff --git a/features/fixtures/refract.yaml b/features/fixtures/refract.yaml index b68cd1df6..c6a2ce7a0 100644 --- a/features/fixtures/refract.yaml +++ b/features/fixtures/refract.yaml @@ -89,8 +89,10 @@ content: element: "enum" attributes: default: - element: "string" - content: "" + element: "enum" + content: + element: "string" + content: "" enumerations: element: "array" content: @@ -166,8 +168,10 @@ content: element: "enum" attributes: default: - element: "string" - content: "" + element: "enum" + content: + element: "string" + content: "" enumerations: element: "array" content: diff --git a/src/RefractAPI.cc b/src/RefractAPI.cc index e1588838a..f82700f5e 100644 --- a/src/RefractAPI.cc +++ b/src/RefractAPI.cc @@ -179,8 +179,8 @@ std::unique_ptr ParameterValuesToRefract( // Add default value if (!parameter.node->defaultValue.empty()) { - element->attributes().set( - SerializeKey::Default, LiteralToRefract(MAKE_NODE_INFO(parameter, defaultValue), context)); + element->attributes().set(SerializeKey::Default, + make_element(LiteralToRefract(MAKE_NODE_INFO(parameter, defaultValue), context))); } // Add enumerations diff --git a/src/Version.h b/src/Version.h index 27a546e31..abf6e2da5 100644 --- a/src/Version.h +++ b/src/Version.h @@ -18,7 +18,7 @@ #define DRAFTER_PATCH_VERSION 0 #define DRAFTER_VERSION_IS_RELEASE 0 -#define DRAFTER_PRE_RELEASE_VERSION 1 +#define DRAFTER_PRE_RELEASE_VERSION 2 #ifndef DRAFTER_STRINGIFY #define DRAFTER_STRINGIFY(n) DRAFTER_STRINGIFY_HELPER(n) diff --git a/test/fixtures/api/resource-parameters.json b/test/fixtures/api/resource-parameters.json index 38ff13ede..6a4c03211 100644 --- a/test/fixtures/api/resource-parameters.json +++ b/test/fixtures/api/resource-parameters.json @@ -85,8 +85,11 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "content": "1" + "element": "enum", + "content": { + "element": "string", + "content": "1" + } }, "enumerations": { "element": "array", diff --git a/test/fixtures/api/resource-parameters.sourcemap.json b/test/fixtures/api/resource-parameters.sourcemap.json index 70b175deb..8559a7363 100644 --- a/test/fixtures/api/resource-parameters.sourcemap.json +++ b/test/fixtures/api/resource-parameters.sourcemap.json @@ -273,33 +273,36 @@ "element": "enum", "attributes": { "default": { - "element": "string", - "attributes": { - "sourceMap": { - "element": "array", - "content": [ - { - "element": "sourceMap", - "content": [ - { - "element": "array", - "content": [ - { - "element": "number", - "content": 158 - }, - { - "element": "number", - "content": 11 - } - ] - } - ] - } - ] - } - }, - "content": "1" + "element": "enum", + "content": { + "element": "string", + "attributes": { + "sourceMap": { + "element": "array", + "content": [ + { + "element": "sourceMap", + "content": [ + { + "element": "array", + "content": [ + { + "element": "number", + "content": 158 + }, + { + "element": "number", + "content": 11 + } + ] + } + ] + } + ] + } + }, + "content": "1" + } }, "enumerations": { "element": "array",