module GraphQLPreview module Extensions module EnabledPreviews def enabled_previews(previews = nil) return @enabled_previews if previews.nil? unless previews.is_a?(Array) raise ArgumentError, "Expected `enabled_previews` to be an array, but it was `#{previews.class}`" end previews.each do |preview| unless preview < GraphQLPreview::SchemaModification raise ArgumentError, "Preview #{preview} must inherit from `GraphQLPreview::SchemaModification`" end end previews.each { |preview| preview.apply_to_schema(self) } @enabled_previews = previews end def enabled_previews=(previews) enabled_previews(previews) end end end end