From fa73bf3a6064f1f389a31314c935a7c3fc8d19e9 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Sat, 15 Sep 2018 23:38:07 -0600 Subject: [PATCH] Hide method to infer type of first in collection in given macro This was a bit of a hack. --- src/spectator/dsl/structure_dsl.cr | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/spectator/dsl/structure_dsl.cr b/src/spectator/dsl/structure_dsl.cr index 01688e9..1248ef5 100644 --- a/src/spectator/dsl/structure_dsl.cr +++ b/src/spectator/dsl/structure_dsl.cr @@ -64,11 +64,15 @@ module Spectator {{collection}} end - def self.{{var_name}} + def self.%first %collection.first end - \{% ::Spectator::Definitions::ALL[@type.id][:given] << {name: "{{var_name}}".id, collection: "{{collection}}".id, type_def: (@type.id + ".{{var_name}}").id} %} + \{% ::Spectator::Definitions::ALL[@type.id][:given] << { + name: "{{var_name}}".id, + collection: "{{collection}}".id, + type_def: (@type.id + '.' + :%first.stringify[1..-1]).id + } %} {{block.body}} end