graphql 1.7.6 → 1.7.7

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/graphql/function_generator.rb +1 -1
  3. data/lib/generators/graphql/loader_generator.rb +1 -1
  4. data/lib/generators/graphql/mutation_generator.rb +6 -1
  5. data/lib/generators/graphql/templates/function.erb +2 -2
  6. data/lib/generators/graphql/templates/loader.erb +2 -2
  7. data/lib/graphql/execution.rb +1 -0
  8. data/lib/graphql/execution/instrumentation.rb +82 -0
  9. data/lib/graphql/execution/multiplex.rb +11 -28
  10. data/lib/graphql/field.rb +5 -0
  11. data/lib/graphql/internal_representation/node.rb +1 -1
  12. data/lib/graphql/language.rb +1 -0
  13. data/lib/graphql/language/document_from_schema_definition.rb +185 -0
  14. data/lib/graphql/language/lexer.rb +3 -3
  15. data/lib/graphql/language/lexer.rl +2 -2
  16. data/lib/graphql/language/token.rb +9 -2
  17. data/lib/graphql/query.rb +4 -0
  18. data/lib/graphql/relay/relation_connection.rb +13 -18
  19. data/lib/graphql/schema.rb +6 -0
  20. data/lib/graphql/schema/build_from_definition.rb +2 -0
  21. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +6 -4
  22. data/lib/graphql/tracing.rb +1 -0
  23. data/lib/graphql/tracing/data_dog_tracing.rb +45 -0
  24. data/lib/graphql/tracing/platform_tracing.rb +20 -7
  25. data/lib/graphql/version.rb +1 -1
  26. data/readme.md +1 -1
  27. data/spec/dummy/app/channels/graphql_channel.rb +22 -1
  28. data/spec/dummy/log/development.log +239 -0
  29. data/spec/dummy/log/test.log +204 -0
  30. data/spec/dummy/test/system/action_cable_subscription_test.rb +4 -0
  31. data/spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png +0 -0
  32. data/spec/generators/graphql/function_generator_spec.rb +26 -0
  33. data/spec/generators/graphql/loader_generator_spec.rb +24 -0
  34. data/spec/graphql/analysis/max_query_complexity_spec.rb +3 -3
  35. data/spec/graphql/analysis/max_query_depth_spec.rb +3 -3
  36. data/spec/graphql/boolean_type_spec.rb +3 -3
  37. data/spec/graphql/execution/execute_spec.rb +1 -1
  38. data/spec/graphql/execution/instrumentation_spec.rb +165 -0
  39. data/spec/graphql/execution/multiplex_spec.rb +1 -1
  40. data/spec/graphql/float_type_spec.rb +2 -2
  41. data/spec/graphql/id_type_spec.rb +1 -1
  42. data/spec/graphql/input_object_type_spec.rb +2 -2
  43. data/spec/graphql/int_type_spec.rb +2 -2
  44. data/spec/graphql/internal_representation/rewrite_spec.rb +2 -2
  45. data/spec/graphql/introspection/schema_type_spec.rb +1 -0
  46. data/spec/graphql/language/document_from_schema_definition_spec.rb +337 -0
  47. data/spec/graphql/language/lexer_spec.rb +12 -1
  48. data/spec/graphql/language/parser_spec.rb +1 -1
  49. data/spec/graphql/query/arguments_spec.rb +3 -3
  50. data/spec/graphql/query/variables_spec.rb +1 -1
  51. data/spec/graphql/query_spec.rb +4 -4
  52. data/spec/graphql/relay/base_connection_spec.rb +1 -1
  53. data/spec/graphql/relay/connection_resolve_spec.rb +1 -1
  54. data/spec/graphql/relay/connection_type_spec.rb +1 -1
  55. data/spec/graphql/relay/mutation_spec.rb +3 -3
  56. data/spec/graphql/relay/relation_connection_spec.rb +58 -0
  57. data/spec/graphql/schema/build_from_definition_spec.rb +14 -0
  58. data/spec/graphql/schema/validation_spec.rb +1 -1
  59. data/spec/graphql/schema/warden_spec.rb +11 -11
  60. data/spec/graphql/schema_spec.rb +8 -1
  61. data/spec/graphql/string_type_spec.rb +3 -3
  62. data/spec/graphql/subscriptions_spec.rb +1 -1
  63. data/spec/graphql/tracing/platform_tracing_spec.rb +59 -0
  64. data/spec/support/dummy/schema.rb +19 -0
  65. data/spec/support/star_wars/data.rb +1 -2
  66. metadata +9 -2
@@ -387,7 +387,7 @@ def self.run_lexer(query_string)
387
387
  begin
388
388
  te = p+1;
389
389
  begin
390
- emit_string(ts + 1, te - 1, meta)
390
+ emit_string(ts + 1, te, meta)
391
391
  end
392
392
 
393
393
  end
@@ -791,7 +791,7 @@ def self.run_lexer(query_string)
791
791
  begin
792
792
  p = ((te))-1;
793
793
  begin
794
- emit_string(ts + 1, te - 1, meta)
794
+ emit_string(ts + 1, te, meta)
795
795
  end
796
796
 
797
797
  end
@@ -1304,7 +1304,7 @@ PACK_DIRECTIVE = "c*"
1304
1304
  UTF_8_ENCODING = "UTF-8"
1305
1305
 
1306
1306
  def self.emit_string(ts, te, meta)
1307
- value = meta[:data][ts...te].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
1307
+ value = meta[:data][ts...te - 1].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
1308
1308
  if value !~ VALID_STRING
1309
1309
  meta[:tokens] << token = GraphQL::Language::Token.new(
1310
1310
  name: :BAD_UNICODE_ESCAPE,
@@ -75,7 +75,7 @@
75
75
  RBRACKET => { emit(:RBRACKET, ts, te, meta) };
76
76
  LBRACKET => { emit(:LBRACKET, ts, te, meta) };
77
77
  COLON => { emit(:COLON, ts, te, meta) };
78
- QUOTED_STRING => { emit_string(ts + 1, te - 1, meta) };
78
+ QUOTED_STRING => { emit_string(ts + 1, te, meta) };
79
79
  VAR_SIGN => { emit(:VAR_SIGN, ts, te, meta) };
80
80
  DIR_SIGN => { emit(:DIR_SIGN, ts, te, meta) };
81
81
  ELLIPSIS => { emit(:ELLIPSIS, ts, te, meta) };
@@ -189,7 +189,7 @@ module GraphQL
189
189
  UTF_8_ENCODING = "UTF-8"
190
190
 
191
191
  def self.emit_string(ts, te, meta)
192
- value = meta[:data][ts...te].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
192
+ value = meta[:data][ts...te - 1].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
193
193
  if value !~ VALID_STRING
194
194
  meta[:tokens] << token = GraphQL::Language::Token.new(
195
195
  name: :BAD_UNICODE_ESCAPE,
@@ -5,7 +5,10 @@ module GraphQL
5
5
  # Contains type, value and position data.
6
6
  class Token
7
7
  # @return [Symbol] The kind of token this is
8
- attr_reader :name, :prev_token, :line
8
+ attr_reader :name
9
+ # @return [String] The text of this token
10
+ attr_reader :value
11
+ attr_reader :prev_token, :line, :col
9
12
 
10
13
  def initialize(value:, name:, line:, col:, prev_token:)
11
14
  @name = name
@@ -15,13 +18,17 @@ module GraphQL
15
18
  @prev_token = prev_token
16
19
  end
17
20
 
18
- def to_s; @value; end
21
+ alias to_s value
19
22
  def to_i; @value.to_i; end
20
23
  def to_f; @value.to_f; end
21
24
 
22
25
  def line_and_column
23
26
  [@line, @col]
24
27
  end
28
+
29
+ def inspect
30
+ "(#{@name} #{@value.inspect} [#{@line}:#{@col}])"
31
+ end
25
32
  end
26
33
  end
27
34
  end
data/lib/graphql/query.rb CHANGED
@@ -44,6 +44,10 @@ module GraphQL
44
44
  with_prepared_ast { @document }
45
45
  end
46
46
 
47
+ def inspect
48
+ "query ..."
49
+ end
50
+
47
51
  # @return [String, nil] The name of the operation to run (may be inferred)
48
52
  def selected_operation_name
49
53
  return nil unless selected_operation
@@ -7,11 +7,11 @@ module GraphQL
7
7
  # - `Sequel::Dataset`
8
8
  class RelationConnection < BaseConnection
9
9
  def cursor_from_node(item)
10
- item_index = paged_nodes_array.index(item)
10
+ item_index = paged_nodes.index(item)
11
11
  if item_index.nil?
12
12
  raise("Can't generate cursor, item not found in connection: #{item}")
13
13
  else
14
- offset = item_index + 1 + ((relation_offset(paged_nodes) || 0) - (relation_offset(sliced_nodes) || 0))
14
+ offset = item_index + 1 + ((paged_nodes_offset || 0) - (relation_offset(sliced_nodes) || 0))
15
15
 
16
16
  if after
17
17
  offset += offset_from_cursor(after)
@@ -25,7 +25,7 @@ module GraphQL
25
25
 
26
26
  def has_next_page
27
27
  if first
28
- paged_nodes_length >= first && sliced_nodes_count > first
28
+ paged_nodes.length >= first && sliced_nodes_count > first
29
29
  elsif GraphQL::Relay::ConnectionType.bidirectional_pagination && last
30
30
  sliced_nodes_count > last
31
31
  else
@@ -35,7 +35,7 @@ module GraphQL
35
35
 
36
36
  def has_previous_page
37
37
  if last
38
- paged_nodes_length >= last && sliced_nodes_count > last
38
+ paged_nodes.length >= last && sliced_nodes_count > last
39
39
  elsif GraphQL::Relay::ConnectionType.bidirectional_pagination && after
40
40
  # We've already paginated through the collection a bit,
41
41
  # there are nodes behind us
@@ -64,6 +64,7 @@ module GraphQL
64
64
  private
65
65
 
66
66
  # apply first / last limit results
67
+ # @return [Array]
67
68
  def paged_nodes
68
69
  return @paged_nodes if defined? @paged_nodes
69
70
 
@@ -94,7 +95,14 @@ module GraphQL
94
95
  end
95
96
  end
96
97
 
97
- @paged_nodes = items
98
+ # Store this here so we can convert the relation to an Array
99
+ # (this avoids an extra DB call on Sequel)
100
+ @paged_nodes_offset = relation_offset(items)
101
+ @paged_nodes = items.to_a
102
+ end
103
+
104
+ def paged_nodes_offset
105
+ paged_nodes && @paged_nodes_offset
98
106
  end
99
107
 
100
108
  def relation_offset(relation)
@@ -166,19 +174,6 @@ module GraphQL
166
174
  def offset_from_cursor(cursor)
167
175
  decode(cursor).to_i
168
176
  end
169
-
170
- def paged_nodes_array
171
- return @paged_nodes_array if defined?(@paged_nodes_array)
172
- @paged_nodes_array = paged_nodes.to_a
173
- end
174
-
175
- def paged_nodes_length
176
- if paged_nodes.respond_to?(:length)
177
- paged_nodes.length
178
- else
179
- paged_nodes_array.length
180
- end
181
- end
182
177
  end
183
178
 
184
179
  if defined?(ActiveRecord::Relation)
@@ -542,6 +542,12 @@ module GraphQL
542
542
  GraphQL::Schema::Printer.print_schema(self, only: only, except: except, context: context)
543
543
  end
544
544
 
545
+ # Return the GraphQL::Language::Document IDL AST for the schema
546
+ # @return [GraphQL::Language::Document]
547
+ def to_document
548
+ GraphQL::Language::DocumentFromSchemaDefinition.new(self).document
549
+ end
550
+
545
551
  # Return the Hash response of {Introspection::INTROSPECTION_QUERY}.
546
552
  # @param context [Hash]
547
553
  # @param only [<#call(member, ctx)>]
@@ -191,6 +191,8 @@ module GraphQL
191
191
  default_value.name
192
192
  when GraphQL::Language::Nodes::NullValue
193
193
  nil
194
+ when GraphQL::Language::Nodes::InputObject
195
+ default_value.to_h
194
196
  else
195
197
  default_value
196
198
  end
@@ -62,19 +62,21 @@ module GraphQL
62
62
  class ActionCableSubscriptions < GraphQL::Subscriptions
63
63
  SUBSCRIPTION_PREFIX = "graphql-subscription:"
64
64
  EVENT_PREFIX = "graphql-event:"
65
- def initialize(**rest)
65
+
66
+ # @param serializer [<#dump(obj), #load(string)] Used for serializing messages before handing them to `.broadcast(msg)`
67
+ def initialize(serializer: Serialize, **rest)
66
68
  # A per-process map of subscriptions to deliver.
67
69
  # This is provided by Rails, so let's use it
68
70
  @subscriptions = Concurrent::Map.new
71
+ @serializer = serializer
69
72
  super
70
73
  end
71
74
 
72
75
  # An event was triggered; Push the data over ActionCable.
73
76
  # Subscribers will re-evaluate locally.
74
- # TODO: this method name is a smell
75
77
  def execute_all(event, object)
76
78
  stream = EVENT_PREFIX + event.topic
77
- message = Serialize.dump(object)
79
+ message = @serializer.dump(object)
78
80
  ActionCable.server.broadcast(stream, message)
79
81
  end
80
82
 
@@ -97,7 +99,7 @@ module GraphQL
97
99
  @subscriptions[subscription_id] = query
98
100
  events.each do |event|
99
101
  channel.stream_from(EVENT_PREFIX + event.topic, coder: ActiveSupport::JSON) do |message|
100
- execute(subscription_id, event, Serialize.load(message))
102
+ execute(subscription_id, event, @serializer.load(message))
101
103
  nil
102
104
  end
103
105
  end
@@ -2,6 +2,7 @@
2
2
  require "graphql/tracing/active_support_notifications_tracing"
3
3
  require "graphql/tracing/platform_tracing"
4
4
  require "graphql/tracing/appsignal_tracing"
5
+ require "graphql/tracing/data_dog_tracing"
5
6
  require "graphql/tracing/new_relic_tracing"
6
7
  require "graphql/tracing/scout_tracing"
7
8
  require "graphql/tracing/skylight_tracing"
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GraphQL
4
+ module Tracing
5
+ class DataDogTracing < PlatformTracing
6
+ self.platform_keys = {
7
+ 'lex' => 'lex.graphql',
8
+ 'parse' => 'parse.graphql',
9
+ 'validate' => 'validate.graphql',
10
+ 'analyze_query' => 'analyze.graphql',
11
+ 'analyze_multiplex' => 'analyze.graphql',
12
+ 'execute_multiplex' => 'execute.graphql',
13
+ 'execute_query' => 'execute.graphql',
14
+ 'execute_query_lazy' => 'execute.graphql',
15
+ }
16
+
17
+ def platform_trace(platform_key, key, data)
18
+ service = options.fetch(:service, 'ruby-graphql')
19
+
20
+ pin = Datadog::Pin.get_from(self)
21
+ unless pin
22
+ pin = Datadog::Pin.new(service)
23
+ pin.onto(self)
24
+ end
25
+
26
+ pin.tracer.trace(platform_key, service: pin.service) do |span|
27
+ if key == 'execute_multiplex'
28
+ span.resource = data[:multiplex].queries.map(&:selected_operation_name).join(', ')
29
+ end
30
+
31
+ if key == 'execute_query'
32
+ span.set_tag(:selected_operation_name, data[:query].selected_operation_name)
33
+ span.set_tag(:selected_operation_type, data[:query].selected_operation.operation_type)
34
+ span.set_tag(:query_string, data[:query].query_string)
35
+ end
36
+ yield
37
+ end
38
+ end
39
+
40
+ def platform_field_key(type, field)
41
+ "#{type.name}.#{field.name}"
42
+ end
43
+ end
44
+ end
45
+ end
@@ -12,8 +12,10 @@ module GraphQL
12
12
  attr_accessor :platform_keys
13
13
  end
14
14
 
15
- def initialize
15
+ def initialize(options = {})
16
+ @options = options
16
17
  @platform_keys = self.class.platform_keys
18
+ @trace_scalars = options.fetch(:trace_scalars, false)
17
19
  end
18
20
 
19
21
  def trace(key, data)
@@ -41,19 +43,30 @@ module GraphQL
41
43
  return_type = field.type.unwrap
42
44
  case return_type
43
45
  when GraphQL::ScalarType, GraphQL::EnumType
44
- field
46
+ if field.trace || (field.trace.nil? && @trace_scalars)
47
+ trace_field(type, field)
48
+ else
49
+ field
50
+ end
45
51
  else
46
- new_f = field.redefine
47
- new_f.metadata[:platform_key] = platform_field_key(type, field)
48
- new_f
52
+ trace_field(type, field)
49
53
  end
50
54
  end
51
55
 
52
- def self.use(schema_defn)
53
- tracer = self.new
56
+ def trace_field(type, field)
57
+ new_f = field.redefine
58
+ new_f.metadata[:platform_key] = platform_field_key(type, field)
59
+ new_f
60
+ end
61
+
62
+ def self.use(schema_defn, options = {})
63
+ tracer = self.new(options)
54
64
  schema_defn.instrument(:field, tracer)
55
65
  schema_defn.tracer(tracer)
56
66
  end
67
+
68
+ private
69
+ attr_reader :options
57
70
  end
58
71
  end
59
72
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.7.6"
3
+ VERSION = "1.7.7"
4
4
  end
data/readme.md CHANGED
@@ -9,7 +9,7 @@
9
9
  A Ruby implementation of [GraphQL](http://graphql.org/).
10
10
 
11
11
  - [Website](https://rmosolgo.github.io/graphql-ruby)
12
- - [API Documentation](http://www.rubydoc.info/github/rmosolgo/graphql-ruby)
12
+ - [API Documentation](http://www.rubydoc.info/gems/graphql)
13
13
  - [Newsletter](https://tinyletter.com/graphql-ruby)
14
14
 
15
15
  ## Installation
@@ -17,10 +17,31 @@ class GraphqlChannel < ActionCable::Channel::Base
17
17
  field :value, types.Int
18
18
  end
19
19
 
20
+ # Wacky behavior around the number 4
21
+ # so we can confirm it's used by the UI
22
+ module CustomSerializer
23
+ def self.load(value)
24
+ if value == "4x"
25
+ ExamplePayload.new(400)
26
+ else
27
+ GraphQL::Subscriptions::Serialize.load(value)
28
+ end
29
+ end
30
+
31
+ def self.dump(obj)
32
+ if obj.is_a?(ExamplePayload) && obj.value == 4
33
+ "4x"
34
+ else
35
+ GraphQL::Subscriptions::Serialize.dump(obj)
36
+ end
37
+ end
38
+ end
39
+
20
40
  GraphQLSchema = GraphQL::Schema.define do
21
41
  query(QueryType)
22
42
  subscription(SubscriptionType)
23
- use GraphQL::Subscriptions::ActionCableSubscriptions
43
+ use GraphQL::Subscriptions::ActionCableSubscriptions,
44
+ serializer: CustomSerializer
24
45
  end
25
46
 
26
47
  def subscribed
@@ -358,3 +358,242 @@ GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>5})
358
358
  [ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzU\"}"
359
359
  [ActionCable] Broadcasting to graphql-subscription:c2334c1a-d146-4b1c-90d9-9cb1c7b4046d: {:result=>{"data"=>{"payload"=>{"value"=>5}}}, :more=>true}
360
360
  GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>5}}}, "more"=>true} (via streamed from graphql-subscription:c2334c1a-d146-4b1c-90d9-9cb1c7b4046d)
361
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:27:24 -0500
362
+ Processing by PagesController#show as HTML
363
+ Rendering pages/show.html within layouts/application
364
+ Rendered pages/show.html within layouts/application (0.8ms)
365
+ Completed 200 OK in 173ms (Views: 171.5ms)
366
+
367
+
368
+ Started GET "/assets/application-aca150c4b2db51d5326af18134f6281fbce7e823a372b0337cca65ff41b4a7ea.js" for 127.0.0.1 at 2017-11-16 21:27:24 -0500
369
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:27:24 -0500
370
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:27:24 -0500
371
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
372
+ GraphqlChannel is transmitting the subscription confirmation
373
+ GraphqlChannel is transmitting the subscription confirmation
374
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
375
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
376
+ GraphqlChannel is streaming from graphql-subscription:34ad7c3f-9311-4982-b873-312032bbcd76
377
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
378
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
379
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
380
+ GraphqlChannel is streaming from graphql-subscription:73055d69-7575-4caa-88b7-74e1a1070c0d
381
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
382
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
383
+ Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"15fc7cd712b\"}", "data"=>"{\"id\":\"updates-1\",\"value\":1,\"action\":\"make_trigger\"}"}) [NoMethodError - undefined method `dump_value' for GraphqlChannel::CustomSerializer:Module]: /Users/rmosolgo/code/graphql-ruby/lib/graphql/subscriptions/serialize.rb:21:in `dump' | /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:36:in `dump' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/subscriptions/action_cable_subscriptions.rb:78:in `execute_all' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/subscriptions.rb:52:in `trigger' | /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:83:in `make_trigger'
384
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:28:22 -0500
385
+ Processing by PagesController#show as HTML
386
+ Rendering pages/show.html within layouts/application
387
+ Rendered pages/show.html within layouts/application (0.6ms)
388
+ Completed 200 OK in 166ms (Views: 164.8ms)
389
+
390
+
391
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:28:23 -0500
392
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:28:23 -0500
393
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
394
+ GraphqlChannel is transmitting the subscription confirmation
395
+ GraphqlChannel is transmitting the subscription confirmation
396
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
397
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
398
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
399
+ GraphqlChannel is streaming from graphql-subscription:dee02509-90a6-4ac1-8c1d-c765cb445ddd
400
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
401
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
402
+ GraphqlChannel is streaming from graphql-subscription:0f50c340-d3cd-4ab7-8e6a-055d23083185
403
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
404
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
405
+ Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"15fc7cf7d8b\"}", "data"=>"{\"id\":\"updates-1\",\"value\":1,\"action\":\"make_trigger\"}"}) [NameError - undefined local variable or method `value' for GraphqlChannel::CustomSerializer:Module]: /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:35:in `dump' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/subscriptions/action_cable_subscriptions.rb:78:in `execute_all' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/subscriptions.rb:52:in `trigger' | /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:82:in `make_trigger' | /Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/action_cable/channel/base.rb:262:in `public_send'
406
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:28:40 -0500
407
+ Processing by PagesController#show as HTML
408
+ Rendering pages/show.html within layouts/application
409
+ Rendered pages/show.html within layouts/application (0.6ms)
410
+ Completed 200 OK in 11ms (Views: 8.8ms)
411
+
412
+
413
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:28:40 -0500
414
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:28:40 -0500
415
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
416
+ GraphqlChannel is transmitting the subscription confirmation
417
+ GraphqlChannel is transmitting the subscription confirmation
418
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
419
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
420
+ GraphqlChannel is streaming from graphql-subscription:528198ff-21c1-4051-a319-1feb9060f335
421
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
422
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
423
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
424
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
425
+ GraphqlChannel is streaming from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50
426
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
427
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
428
+ [ActionCable] Broadcasting to graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
429
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50)
430
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
431
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
432
+ [ActionCable] Broadcasting to graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
433
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50)
434
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
435
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
436
+ [ActionCable] Broadcasting to graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
437
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50)
438
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>4})
439
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "4x"
440
+ [ActionCable] Broadcasting to graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50: {:result=>{"data"=>{"payload"=>{"value"=>4}}}, :more=>true}
441
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>4}}}, "more"=>true} (via streamed from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50)
442
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>5})
443
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzU\"}"
444
+ [ActionCable] Broadcasting to graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50: {:result=>{"data"=>{"payload"=>{"value"=>5}}}, :more=>true}
445
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>5}}}, "more"=>true} (via streamed from graphql-subscription:dba8445d-3284-4734-90f6-fdf8f0707a50)
446
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:29:15 -0500
447
+ Processing by PagesController#show as HTML
448
+ Rendering pages/show.html within layouts/application
449
+ Rendered pages/show.html within layouts/application (0.8ms)
450
+ Completed 200 OK in 178ms (Views: 176.8ms)
451
+
452
+
453
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:29:15 -0500
454
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:29:15 -0500
455
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
456
+ GraphqlChannel is transmitting the subscription confirmation
457
+ GraphqlChannel is transmitting the subscription confirmation
458
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
459
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
460
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
461
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
462
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
463
+ GraphqlChannel is streaming from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847
464
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
465
+ GraphqlChannel is streaming from graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee
466
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
467
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
468
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
469
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
470
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
471
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
472
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
473
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
474
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
475
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
476
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
477
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
478
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>4})
479
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "4x"
480
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>4}}}, :more=>true}
481
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>4}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
482
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>5})
483
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzU\"}"
484
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>5}}}, :more=>true}
485
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>5}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
486
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>6})
487
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzY\"}"
488
+ [ActionCable] Broadcasting to graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847: {:result=>{"data"=>{"payload"=>{"value"=>6}}}, :more=>true}
489
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>6}}}, "more"=>true} (via streamed from graphql-subscription:ac17fc47-fdf3-4951-813b-f4d04fdc7847)
490
+ GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>1})
491
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
492
+ [ActionCable] Broadcasting to graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
493
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee)
494
+ GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>2})
495
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
496
+ [ActionCable] Broadcasting to graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
497
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee)
498
+ GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>3})
499
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
500
+ [ActionCable] Broadcasting to graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
501
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee)
502
+ GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>4})
503
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "4x"
504
+ [ActionCable] Broadcasting to graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee: {:result=>{"data"=>{"payload"=>{"value"=>4}}}, :more=>true}
505
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>4}}}, "more"=>true} (via streamed from graphql-subscription:8642d019-1a8c-4eb9-ada2-7a5b1ccffeee)
506
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:30:10 -0500
507
+ Processing by PagesController#show as HTML
508
+ Rendering pages/show.html within layouts/application
509
+ Rendered pages/show.html within layouts/application (0.7ms)
510
+ Completed 200 OK in 12ms (Views: 10.1ms)
511
+
512
+
513
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:30:10 -0500
514
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:30:10 -0500
515
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
516
+ GraphqlChannel is transmitting the subscription confirmation
517
+ GraphqlChannel is transmitting the subscription confirmation
518
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
519
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
520
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
521
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
522
+ GraphqlChannel is streaming from graphql-subscription:e33017bd-68e0-4443-81b9-cb2b750d345e
523
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
524
+ GraphqlChannel is streaming from graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584
525
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
526
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
527
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09dee35f8>
528
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
529
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
530
+ [ActionCable] Broadcasting to graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
531
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584)
532
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
533
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09deb3330>
534
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
535
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
536
+ [ActionCable] Broadcasting to graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
537
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584)
538
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
539
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09de7b020>
540
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
541
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
542
+ [ActionCable] Broadcasting to graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
543
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584)
544
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>4})
545
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09de41f78>
546
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "4x"
547
+ Loading: "4x"
548
+ [ActionCable] Broadcasting to graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584: {:result=>{"data"=>{"payload"=>{"value"=>4}}}, :more=>true}
549
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>4}}}, "more"=>true} (via streamed from graphql-subscription:ff9f5a68-c71c-4b5c-8135-cb902840a584)
550
+ Started GET "/" for 127.0.0.1 at 2017-11-16 21:30:26 -0500
551
+ Processing by PagesController#show as HTML
552
+ Rendering pages/show.html within layouts/application
553
+ Rendered pages/show.html within layouts/application (0.3ms)
554
+ Completed 200 OK in 7ms (Views: 5.4ms)
555
+
556
+
557
+ Started GET "/cable" for 127.0.0.1 at 2017-11-16 21:30:27 -0500
558
+ Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2017-11-16 21:30:27 -0500
559
+ Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
560
+ GraphqlChannel is transmitting the subscription confirmation
561
+ GraphqlChannel is transmitting the subscription confirmation
562
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
563
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
564
+ GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
565
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-2
566
+ GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
567
+ GraphqlChannel is streaming from graphql-subscription:ba2e384c-cbcf-4f9f-aa5e-8f666effd2a8
568
+ GraphqlChannel is streaming from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9
569
+ GraphqlChannel is streaming from graphql-event::payload:id:updates-1
570
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
571
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09e9fc660>
572
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
573
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
574
+ [ActionCable] Broadcasting to graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
575
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9)
576
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
577
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09dced938>
578
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
579
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
580
+ [ActionCable] Broadcasting to graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
581
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9)
582
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
583
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09e8c41d0>
584
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
585
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
586
+ [ActionCable] Broadcasting to graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
587
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9)
588
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>4})
589
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09d407ad0>
590
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "4x"
591
+ Loading: "4x"
592
+ [ActionCable] Broadcasting to graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9: {:result=>{"data"=>{"payload"=>{"value"=>400}}}, :more=>true}
593
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>400}}}, "more"=>true} (via streamed from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9)
594
+ GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>5})
595
+ dumping: #<GraphqlChannel::ExamplePayload:0x007fc09dbbf250>
596
+ [ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzU\"}"
597
+ Loading: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzU\"}"
598
+ [ActionCable] Broadcasting to graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9: {:result=>{"data"=>{"payload"=>{"value"=>5}}}, :more=>true}
599
+ GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>5}}}, "more"=>true} (via streamed from graphql-subscription:18c8f852-04c7-4bb8-b6f7-ecc64a2a8ac9)