graphql 0.10.2 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/graphql.rb +1 -0
 - data/lib/graphql/introspection/introspection_query.rb +3 -2
 - data/lib/graphql/introspection/schema_type.rb +4 -0
 - data/lib/graphql/language/parser.rb +1 -1
 - data/lib/graphql/query/executor.rb +4 -7
 - data/lib/graphql/schema.rb +9 -4
 - data/lib/graphql/version.rb +1 -1
 - data/spec/graphql/language/parser_spec.rb +4 -1
 - data/spec/graphql/schema/printer_spec.rb +1 -0
 - data/spec/graphql/schema_spec.rb +7 -0
 - data/spec/support/calculator_schema.rb +57 -56
 - data/spec/support/dairy_app.rb +12 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cace79bd801a58fbf53eb0ff5a5ef4ea501b1208
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 495b61e0510a41d880db3a99008446650196742a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 635f9a6cbc5d9093227b3699cb93271526c105fff445bacc4e1a39777a51a6b8db1fcc5c692271a0de4d00045b2dd3d33b39dfea90f33c74176ef6ea3e7a57cb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 8ca5879203ad6178ad7fff7e3ef12e76de2c90825b1de2e5efd831afe654f49bb3d02b0f9ef6a5d5654586ee20693452ba971e645717d2e561caba396c6c1e3d
         
     | 
    
        data/lib/graphql.rb
    CHANGED
    
    
| 
         @@ -5,6 +5,7 @@ query IntrospectionQuery { 
     | 
|
| 
       5 
5 
     | 
    
         
             
              __schema {
         
     | 
| 
       6 
6 
     | 
    
         
             
                queryType { name }
         
     | 
| 
       7 
7 
     | 
    
         
             
                mutationType { name }
         
     | 
| 
      
 8 
     | 
    
         
            +
                subscriptionType { name }
         
     | 
| 
       8 
9 
     | 
    
         
             
                types {
         
     | 
| 
       9 
10 
     | 
    
         
             
                  ...FullType
         
     | 
| 
       10 
11 
     | 
    
         
             
                }
         
     | 
| 
         @@ -24,7 +25,7 @@ fragment FullType on __Type { 
     | 
|
| 
       24 
25 
     | 
    
         
             
              kind
         
     | 
| 
       25 
26 
     | 
    
         
             
              name
         
     | 
| 
       26 
27 
     | 
    
         
             
              description
         
     | 
| 
       27 
     | 
    
         
            -
              fields {
         
     | 
| 
      
 28 
     | 
    
         
            +
              fields(includeDeprecated: true) {
         
     | 
| 
       28 
29 
     | 
    
         
             
                name
         
     | 
| 
       29 
30 
     | 
    
         
             
                description
         
     | 
| 
       30 
31 
     | 
    
         
             
                args {
         
     | 
| 
         @@ -42,7 +43,7 @@ fragment FullType on __Type { 
     | 
|
| 
       42 
43 
     | 
    
         
             
              interfaces {
         
     | 
| 
       43 
44 
     | 
    
         
             
                ...TypeRef
         
     | 
| 
       44 
45 
     | 
    
         
             
              }
         
     | 
| 
       45 
     | 
    
         
            -
              enumValues {
         
     | 
| 
      
 46 
     | 
    
         
            +
              enumValues(includeDeprecated: true) {
         
     | 
| 
       46 
47 
     | 
    
         
             
                name
         
     | 
| 
       47 
48 
     | 
    
         
             
                description
         
     | 
| 
       48 
49 
     | 
    
         
             
                isDeprecated
         
     | 
| 
         @@ -17,4 +17,8 @@ GraphQL::Introspection::SchemaType = GraphQL::ObjectType.define do 
     | 
|
| 
       17 
17 
     | 
    
         
             
              field :mutationType, GraphQL::Introspection::TypeType, "The mutation root of this schema" do
         
     | 
| 
       18 
18 
     | 
    
         
             
                resolve -> (obj, arg, ctx) { obj.mutation }
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              field :subscriptionType, GraphQL::Introspection::TypeType, "The subscription root of this schema" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                resolve -> (obj, arg, ctx) { obj.subscription }
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
       20 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -43,7 +43,7 @@ module GraphQL 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    directives.maybe.as(:optional_directives).as(:directives) >> space? >>
         
     | 
| 
       44 
44 
     | 
    
         
             
                    selections.as(:selections)
         
     | 
| 
       45 
45 
     | 
    
         
             
                  }
         
     | 
| 
       46 
     | 
    
         
            -
                  rule(:operation_type) { (str("query") | str("mutation")) }
         
     | 
| 
      
 46 
     | 
    
         
            +
                  rule(:operation_type) { (str("query") | str("mutation") | str("subscription")) }
         
     | 
| 
       47 
47 
     | 
    
         
             
                  rule(:operation_variable_definitions) { str("(") >> space? >> (operation_variable_definition >> separator?).repeat(1) >> space? >> str(")") }
         
     | 
| 
       48 
48 
     | 
    
         
             
                  rule(:operation_variable_definition) {
         
     | 
| 
       49 
49 
     | 
    
         
             
                    value_variable.as(:variable_name) >> space? >>
         
     | 
| 
         @@ -29,14 +29,11 @@ module GraphQL 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    operation = query.selected_operation
         
     | 
| 
       30 
30 
     | 
    
         
             
                    return {} if operation.nil?
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                     
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                    elsif operation.operation_type == "mutation"
         
     | 
| 
       36 
     | 
    
         
            -
                      root_type = query.schema.mutation
         
     | 
| 
       37 
     | 
    
         
            -
                      execution_strategy_class = query.schema.mutation_execution_strategy
         
     | 
| 
       38 
     | 
    
         
            -
                    end
         
     | 
| 
      
 32 
     | 
    
         
            +
                    op_type = operation.operation_type
         
     | 
| 
      
 33 
     | 
    
         
            +
                    root_type = query.schema.public_send(op_type)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    execution_strategy_class = query.schema.public_send("#{op_type}_execution_strategy")
         
     | 
| 
       39 
35 
     | 
    
         
             
                    execution_strategy = execution_strategy_class.new
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
       40 
37 
     | 
    
         
             
                    query.context.execution_strategy = execution_strategy
         
     | 
| 
       41 
38 
     | 
    
         
             
                    data_result = execution_strategy.execute(operation, root_type, query)
         
     | 
| 
       42 
39 
     | 
    
         
             
                    result = { "data" => data_result }
         
     | 
    
        data/lib/graphql/schema.rb
    CHANGED
    
    | 
         @@ -5,18 +5,22 @@ class GraphQL::Schema 
     | 
|
| 
       5 
5 
     | 
    
         
             
              DIRECTIVES = [GraphQL::Directive::SkipDirective, GraphQL::Directive::IncludeDirective]
         
     | 
| 
       6 
6 
     | 
    
         
             
              DYNAMIC_FIELDS = ["__type", "__typename", "__schema"]
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
              attr_reader :query, :mutation, :directives, :static_validator
         
     | 
| 
      
 8 
     | 
    
         
            +
              attr_reader :query, :mutation, :subscription, :directives, :static_validator
         
     | 
| 
       9 
9 
     | 
    
         
             
              # Override these if you don't want the default executor:
         
     | 
| 
       10 
     | 
    
         
            -
              attr_accessor :query_execution_strategy, 
     | 
| 
      
 10 
     | 
    
         
            +
              attr_accessor :query_execution_strategy,
         
     | 
| 
      
 11 
     | 
    
         
            +
                :mutation_execution_strategy,
         
     | 
| 
      
 12 
     | 
    
         
            +
                :subscription_execution_strategy
         
     | 
| 
       11 
13 
     | 
    
         | 
| 
       12 
14 
     | 
    
         
             
              # @return [Array<#call>] Middlewares suitable for MiddlewareChain, applied to fields during execution
         
     | 
| 
       13 
15 
     | 
    
         
             
              attr_reader :middleware
         
     | 
| 
       14 
16 
     | 
    
         | 
| 
       15 
17 
     | 
    
         
             
              # @param query [GraphQL::ObjectType]  the query root for the schema
         
     | 
| 
       16 
     | 
    
         
            -
              # @param mutation [GraphQL::ObjectType 
     | 
| 
       17 
     | 
    
         
            -
               
     | 
| 
      
 18 
     | 
    
         
            +
              # @param mutation [GraphQL::ObjectType] the mutation root for the schema
         
     | 
| 
      
 19 
     | 
    
         
            +
              # @param subscription [GraphQL::ObjectType] the subscription root for the schema
         
     | 
| 
      
 20 
     | 
    
         
            +
              def initialize(query:, mutation: nil, subscription: nil)
         
     | 
| 
       18 
21 
     | 
    
         
             
                @query    = query
         
     | 
| 
       19 
22 
     | 
    
         
             
                @mutation = mutation
         
     | 
| 
      
 23 
     | 
    
         
            +
                @subscription = subscription
         
     | 
| 
       20 
24 
     | 
    
         
             
                @directives = DIRECTIVES.reduce({}) { |m, d| m[d.name] = d; m }
         
     | 
| 
       21 
25 
     | 
    
         
             
                @static_validator = GraphQL::StaticValidation::Validator.new(schema: self)
         
     | 
| 
       22 
26 
     | 
    
         
             
                @rescue_middleware = GraphQL::Schema::RescueMiddleware.new
         
     | 
| 
         @@ -24,6 +28,7 @@ class GraphQL::Schema 
     | 
|
| 
       24 
28 
     | 
    
         
             
                # Default to the built-in execution strategy:
         
     | 
| 
       25 
29 
     | 
    
         
             
                self.query_execution_strategy = GraphQL::Query::SerialExecution
         
     | 
| 
       26 
30 
     | 
    
         
             
                self.mutation_execution_strategy = GraphQL::Query::SerialExecution
         
     | 
| 
      
 31 
     | 
    
         
            +
                self.subscription_execution_strategy = GraphQL::Query::SerialExecution
         
     | 
| 
       27 
32 
     | 
    
         
             
              end
         
     | 
| 
       28 
33 
     | 
    
         | 
| 
       29 
34 
     | 
    
         
             
              def_delegators :@rescue_middleware, :rescue_from, :remove_handler
         
     | 
    
        data/lib/graphql/version.rb
    CHANGED
    
    
| 
         @@ -22,6 +22,9 @@ describe GraphQL::Language::Parser do 
     | 
|
| 
       22 
22 
     | 
    
         
             
                    ... family # background info, of course
         
     | 
| 
       23 
23 
     | 
    
         
             
                  }
         
     | 
| 
       24 
24 
     | 
    
         
             
                }
         
     | 
| 
      
 25 
     | 
    
         
            +
                subscription watchStuff {
         
     | 
| 
      
 26 
     | 
    
         
            +
                  field, otherField
         
     | 
| 
      
 27 
     | 
    
         
            +
                }
         
     | 
| 
       25 
28 
     | 
    
         | 
| 
       26 
29 
     | 
    
         
             
                # a fragment:
         
     | 
| 
       27 
30 
     | 
    
         
             
                fragment family on Species {
         
     | 
| 
         @@ -41,7 +44,7 @@ describe GraphQL::Language::Parser do 
     | 
|
| 
       41 
44 
     | 
    
         
             
              it 'parses operation definitions' do
         
     | 
| 
       42 
45 
     | 
    
         
             
                assert(parser.operation_definition.parse_with_debug(%|{id, name, ...people}|), "just a selection")
         
     | 
| 
       43 
46 
     | 
    
         
             
                assert(parser.operation_definition.parse_with_debug(%|query personStuff {id, name, ...people, ... stuff}|), "named fetch")
         
     | 
| 
       44 
     | 
    
         
            -
                assert(parser.operation_definition.parse_with_debug(%| 
     | 
| 
      
 47 
     | 
    
         
            +
                assert(parser.operation_definition.parse_with_debug(%|subscription personStuff @flagDirective {id, name, ...people}|), "with a directive")
         
     | 
| 
       45 
48 
     | 
    
         
             
                assert(parser.operation_definition.parse_with_debug(%|mutation changeStuff($stuff: Int = 1 $things: [SomeType]! = [{something: 1}, {something: 2}], $another: Sometype = {something: 3}) { id }|), "mutation with arguments")
         
     | 
| 
       46 
49 
     | 
    
         
             
                assert(parser.operation_definition.parse_with_debug(%|mutation { id }|), "unnamed")
         
     | 
| 
       47 
50 
     | 
    
         
             
              end
         
     | 
    
        data/spec/graphql/schema_spec.rb
    CHANGED
    
    | 
         @@ -13,4 +13,11 @@ describe GraphQL::Schema do 
     | 
|
| 
       13 
13 
     | 
    
         
             
                  assert_equal(2, rescue_middleware.rescue_table.length)
         
     | 
| 
       14 
14 
     | 
    
         
             
                end
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              describe "#subscription" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                it "calls fields on the subscription type" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  res = schema.execute("subscription { test }")
         
     | 
| 
      
 20 
     | 
    
         
            +
                  assert_equal("Test", res["data"]["test"])
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
       16 
23 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,73 +1,74 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # This GraphQL Schema performs operations on numbers.
         
     | 
| 
       2 
2 
     | 
    
         
             
            # It can perform operations on values you give it and return values
         
     | 
| 
       3 
3 
     | 
    
         
             
            # It also maintains some state which can be updated or read
         
     | 
| 
      
 4 
     | 
    
         
            +
            module Calculator
         
     | 
| 
      
 5 
     | 
    
         
            +
              # You can reduce a list of values to a single value
         
     | 
| 
      
 6 
     | 
    
         
            +
              REDUCERS = {
         
     | 
| 
      
 7 
     | 
    
         
            +
                "SUM" => -> (values) { [values.inject(&:+)] },
         
     | 
| 
      
 8 
     | 
    
         
            +
                "MAX" => :max.to_proc,
         
     | 
| 
      
 9 
     | 
    
         
            +
                "MIN" => :min.to_proc,
         
     | 
| 
      
 10 
     | 
    
         
            +
              }
         
     | 
| 
       4 
11 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            REDUCERS  
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              "MIN" => :min.to_proc,
         
     | 
| 
       10 
     | 
    
         
            -
            }
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            ReducerEnum = GraphQL::EnumType.define do
         
     | 
| 
       13 
     | 
    
         
            -
              REDUCERS.map do |op_name, op_proc|
         
     | 
| 
       14 
     | 
    
         
            -
                value(op_name)
         
     | 
| 
      
 12 
     | 
    
         
            +
              ReducerEnum = GraphQL::EnumType.define do
         
     | 
| 
      
 13 
     | 
    
         
            +
                REDUCERS.map do |op_name, op_proc|
         
     | 
| 
      
 14 
     | 
    
         
            +
                  value(op_name)
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
       15 
16 
     | 
    
         
             
              end
         
     | 
| 
       16 
     | 
    
         
            -
            end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            # You can make a new list by transforming each member
         
     | 
| 
       19 
     | 
    
         
            -
            MAPPERS = {
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            }
         
     | 
| 
      
 18 
     | 
    
         
            +
              # You can make a new list by transforming each member
         
     | 
| 
      
 19 
     | 
    
         
            +
              MAPPERS = {
         
     | 
| 
      
 20 
     | 
    
         
            +
                "ADD" => -> (val, arg) { val + arg },
         
     | 
| 
      
 21 
     | 
    
         
            +
                "SUB" => -> (val, arg) { val - arg },
         
     | 
| 
      
 22 
     | 
    
         
            +
                "EQ" => -> (val, arg) { val == arg ? 1 : 0},
         
     | 
| 
      
 23 
     | 
    
         
            +
              }
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
            MapperEnum = GraphQL::EnumType.define do
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 25 
     | 
    
         
            +
              MapperEnum = GraphQL::EnumType.define do
         
     | 
| 
      
 26 
     | 
    
         
            +
                MAPPERS.map do |op_name, op_proc|
         
     | 
| 
      
 27 
     | 
    
         
            +
                  value(op_name)
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
       28 
29 
     | 
    
         
             
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
            # Input a list of integers
         
     | 
| 
       32 
     | 
    
         
            -
            ListOfInts = GraphQL::INT_TYPE.to_list_type
         
     | 
| 
      
 31 
     | 
    
         
            +
              # Input a list of integers
         
     | 
| 
      
 32 
     | 
    
         
            +
              ListOfInts = GraphQL::INT_TYPE.to_list_type
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
            # Expose a list of values and perform operations
         
     | 
| 
       35 
     | 
    
         
            -
            ValuesType = GraphQL::ObjectType.define do
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 34 
     | 
    
         
            +
              # Expose a list of values and perform operations
         
     | 
| 
      
 35 
     | 
    
         
            +
              ValuesType = GraphQL::ObjectType.define do
         
     | 
| 
      
 36 
     | 
    
         
            +
                field :values, ListOfInts do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  resolve -> (obj, _args, _ctx) { obj }
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
                # Get a single value based on the values in this list
         
     | 
| 
      
 41 
     | 
    
         
            +
                field :reduce, types.Int do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  argument :operation, !ReducerEnum
         
     | 
| 
      
 43 
     | 
    
         
            +
                  resolve -> (obj, args, ctx)  {
         
     | 
| 
      
 44 
     | 
    
         
            +
                    reduce_name = args[:operation]
         
     | 
| 
      
 45 
     | 
    
         
            +
                    reduce_fn = REDUCERS[reduce_name]
         
     | 
| 
      
 46 
     | 
    
         
            +
                    reduce_fn.call(obj)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  }
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
                # Handle self-referential fields by wrapping the type in a proc.
         
     | 
| 
      
 51 
     | 
    
         
            +
                # It will be lazy-eval'ed
         
     | 
| 
      
 52 
     | 
    
         
            +
                field :map, -> { ValuesType } do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  argument :operation, !MapperEnum
         
     | 
| 
      
 54 
     | 
    
         
            +
                  argument :argument, !types.Int
         
     | 
| 
      
 55 
     | 
    
         
            +
                  resolve -> (obj, args, ctx) {
         
     | 
| 
      
 56 
     | 
    
         
            +
                    op_arg = args[:argument]
         
     | 
| 
      
 57 
     | 
    
         
            +
                    op_name = args[:operation]
         
     | 
| 
      
 58 
     | 
    
         
            +
                    op_func = MAPPERS[op_name]
         
     | 
| 
      
 59 
     | 
    
         
            +
                    obj.map { |item| op_func.call(item, op_arg) }
         
     | 
| 
      
 60 
     | 
    
         
            +
                  }
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
       61 
62 
     | 
    
         
             
              end
         
     | 
| 
       62 
     | 
    
         
            -
            end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
            QueryType = GraphQL::ObjectType.define do
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 64 
     | 
    
         
            +
              QueryType = GraphQL::ObjectType.define do
         
     | 
| 
      
 65 
     | 
    
         
            +
                name("Query")
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
      
 67 
     | 
    
         
            +
                field :perform, ValuesType do
         
     | 
| 
      
 68 
     | 
    
         
            +
                  argument :initial, !ListOfInts
         
     | 
| 
      
 69 
     | 
    
         
            +
                  resolve -> (obj, args, ctx) { args[:initial] }
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
       70 
71 
     | 
    
         
             
              end
         
     | 
| 
       71 
     | 
    
         
            -
            end
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 73 
     | 
    
         
            +
              Schema = GraphQL::Schema.new(query: QueryType)
         
     | 
| 
      
 74 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/support/dairy_app.rb
    CHANGED
    
    | 
         @@ -219,5 +219,16 @@ MutationType = GraphQL::ObjectType.define do 
     | 
|
| 
       219 
219 
     | 
    
         
             
              end
         
     | 
| 
       220 
220 
     | 
    
         
             
            end
         
     | 
| 
       221 
221 
     | 
    
         | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
      
 222 
     | 
    
         
            +
            SubscriptionType = GraphQL::ObjectType.define do
         
     | 
| 
      
 223 
     | 
    
         
            +
              name "Subscription"
         
     | 
| 
      
 224 
     | 
    
         
            +
              field :test, types.String do
         
     | 
| 
      
 225 
     | 
    
         
            +
                resolve -> (o, a, c) { "Test" }
         
     | 
| 
      
 226 
     | 
    
         
            +
              end
         
     | 
| 
      
 227 
     | 
    
         
            +
            end
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
            DummySchema = GraphQL::Schema.new(
         
     | 
| 
      
 230 
     | 
    
         
            +
              query: QueryType,
         
     | 
| 
      
 231 
     | 
    
         
            +
              mutation: MutationType,
         
     | 
| 
      
 232 
     | 
    
         
            +
              subscription: SubscriptionType,
         
     | 
| 
      
 233 
     | 
    
         
            +
            )
         
     | 
| 
       223 
234 
     | 
    
         
             
            DummySchema.rescue_from(NoSuchDairyError) { |err| err.message  }
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: graphql
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.10. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.10.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Robert Mosolgo
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-11-11 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: parslet
         
     |