Sha256: 7c3b09e3a94210da898ed66081f157d58d68a49dc64fe028885eabbc403a5f75

Contents?: true

Size: 634 Bytes

Versions: 15

Compression:

Stored size: 634 Bytes

Contents

# frozen_string_literal: true

module GraphqlRails
  module Attributes
    # checks various attributes based on graphql type name
    class TypeNameInfo
      attr_reader :name

      def initialize(name)
        @name = name
      end

      def nullable_inner_name
        inner_name[/[^!]+/]
      end

      def inner_name
        name[/[^!\[\]]+!?/]
      end

      def required_inner_type?
        inner_name.include?('!')
      end

      def list?
        name.include?(']')
      end

      def required?
        name.end_with?('!')
      end

      def required_list?
        required? && list?
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
graphql_rails-3.0.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-2.4.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-2.3.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-2.2.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-2.1.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-2.0.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.6 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.4 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.3 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.2 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.1 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.2.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.1.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-1.0.0 lib/graphql_rails/attributes/type_name_info.rb
graphql_rails-0.8.0 lib/graphql_rails/attributes/type_name_info.rb