Move conditional into context macro

This commit is contained in:
Michael Miller 2018-09-19 19:29:33 -06:00
parent fe81341e1a
commit d679c356fd

View file

@ -18,7 +18,9 @@ module Spectator
::Spectator::Definitions::GROUPS[{{@type.stringify}}] ::Spectator::Definitions::GROUPS[{{@type.stringify}}]
) )
_described_class {{what}} {% if what.is_a?(Path) || what.is_a?(Generic) %}
_described_class {{what}}
{% end %}
{{block.body}} {{block.body}}
end end
@ -121,16 +123,14 @@ module Spectator
end end
macro _described_class(what) macro _described_class(what)
{% if what.is_a?(Path) || what.is_a?(Generic) %} def described_class
def described_class {{what}}.tap do |thing|
{{what}}.tap do |thing| raise "#{thing} must be a type name to use #described_class or #subject,\
raise "#{thing} must be a type name to use #described_class or #subject,\ but it is a #{typeof(thing)}" unless thing.is_a?(Class)
but it is a #{typeof(thing)}" unless thing.is_a?(Class)
end
end end
end
_implicit_subject _implicit_subject
{% end %}
end end
macro _implicit_subject macro _implicit_subject