Sha256: 95de37ce5162a9eb090c3d3401fbdb02ef4971ef3d07b9f65b28e244356c9ce4

Contents?: true

Size: 770 Bytes

Versions: 2

Compression:

Stored size: 770 Bytes

Contents

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
graphql-preview-0.0.8 lib/graphql-preview/extensions/enabled_previews.rb
graphql-preview-0.0.7 lib/graphql-preview/extensions/enabled_previews.rb