elasticgraph-rack 0.18.0.4 → 0.18.0.5
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/elastic_graph/rack/graphiql.rb +15 -2
- data/lib/elastic_graph/rack/graphql_endpoint.rb +15 -2
- data/lib/elastic_graph/rack.rb +19 -0
- metadata +15 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1af5a7a0745d67b84546ebea7bbf38bd2d2fc4dffad88e80d60d3eb629255996
|
4
|
+
data.tar.gz: 8ed374c529b14ab86294ded8872631a6ef6406b5960e832ffd48c54e50ca8861
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bbf103f1e1730803217b2a537bfec0fefdd2a935977a9240196a533cb4eec1877e5f811efba325bb557a8752838e2a3dcde273aec6b65d213add2f2067d64ed
|
7
|
+
data.tar.gz: 264c26920757fae4b762d141f18f83812700d81331daa653d0bd8718f843b577af683f54d550fd1309b521f0288afdc6c17f0362ab773a416c6a807352341f57
|
@@ -7,14 +7,27 @@
|
|
7
7
|
# frozen_string_literal: true
|
8
8
|
|
9
9
|
require "elastic_graph/rack/graphql_endpoint"
|
10
|
+
require "rack/builder"
|
10
11
|
require "rack/static"
|
11
12
|
|
12
13
|
module ElasticGraph
|
13
14
|
module Rack
|
14
|
-
# A Rack
|
15
|
+
# A [Rack](https://github.com/rack/rack) application that serves both an ElasticGraph GraphQL endpoint
|
16
|
+
# and a [GraphiQL IDE](https://github.com/graphql/graphiql). This can be used for local development,
|
17
|
+
# mounted in a [Rails](https://rubyonrails.org/) application, or run in any other Rack-compatible context.
|
15
18
|
#
|
16
|
-
#
|
19
|
+
# @example Simple config.ru to run GraphiQL as a Rack application, targeting an ElasticGraph endpoint
|
20
|
+
# require "elastic_graph/graphql"
|
21
|
+
# require "elastic_graph/rack/graphiql"
|
22
|
+
#
|
23
|
+
# graphql = ElasticGraph::GraphQL.from_yaml_file("config/settings/development.yaml")
|
24
|
+
# run ElasticGraph::Rack::GraphiQL.new(graphql)
|
17
25
|
module GraphiQL
|
26
|
+
# Builds a [Rack](https://github.com/rack/rack) application that serves both an ElasticGraph GraphQL endpoint
|
27
|
+
# and a [GraphiQL IDE](https://github.com/graphql/graphiql).
|
28
|
+
#
|
29
|
+
# @param graphql [ElasticGraph::GraphQL] ElasticGraph GraphQL instance
|
30
|
+
# @return [Rack::Builder] built Rack application
|
18
31
|
def self.new(graphql)
|
19
32
|
graphql_endpoint = ElasticGraph::Rack::GraphQLEndpoint.new(graphql)
|
20
33
|
|
@@ -11,14 +11,27 @@ require "rack"
|
|
11
11
|
|
12
12
|
module ElasticGraph
|
13
13
|
module Rack
|
14
|
-
# A simple Rack wrapper around an ElasticGraph endpoint.
|
15
|
-
#
|
14
|
+
# A simple [Rack](https://github.com/rack/rack) wrapper around an ElasticGraph GraphQL endpoint.
|
15
|
+
# This can be used for local development, mounted in a [Rails](https://rubyonrails.org/) application,
|
16
|
+
# or run in any other Rack-compatible context.
|
17
|
+
#
|
18
|
+
# @example Simple config.ru to run an ElasticGraph endpoint as a Rack application
|
19
|
+
# require "elastic_graph/graphql"
|
20
|
+
# require "elastic_graph/rack/graphql_endpoint"
|
21
|
+
#
|
22
|
+
# graphql = ElasticGraph::GraphQL.from_yaml_file("config/settings/development.yaml")
|
23
|
+
# run ElasticGraph::Rack::GraphQLEndpoint.new(graphql)
|
16
24
|
class GraphQLEndpoint
|
25
|
+
# @param graphql [ElasticGraph::GraphQL] ElasticGraph GraphQL instance
|
17
26
|
def initialize(graphql)
|
18
27
|
@logger = graphql.logger
|
19
28
|
@graphql_http_endpoint = graphql.graphql_http_endpoint
|
20
29
|
end
|
21
30
|
|
31
|
+
# Responds to a Rack request.
|
32
|
+
#
|
33
|
+
# @param env [Hash<String, Object>] Rack env
|
34
|
+
# @return [Array(Integer, Hash<String, String>, Array<String>)]
|
22
35
|
def call(env)
|
23
36
|
rack_request = ::Rack::Request.new(env)
|
24
37
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Copyright 2024 Block, Inc.
|
2
|
+
#
|
3
|
+
# Use of this source code is governed by an MIT-style
|
4
|
+
# license that can be found in the LICENSE file or at
|
5
|
+
# https://opensource.org/licenses/MIT.
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
module ElasticGraph
|
10
|
+
# Adapts an ElasticGraph GraphQL endpoint to run as a [Rack](https://github.com/rack/rack) application.
|
11
|
+
# This allows an ElasticGraph GraphQL endpoint to run inside any [Rack-compatible web
|
12
|
+
# framework](https://github.com/rack/rack#supported-web-frameworks), including [Ruby on Rails](https://rubyonrails.org/),
|
13
|
+
# or as a stand-alone application. Two configurations are supported:
|
14
|
+
#
|
15
|
+
# * Use {Rack::GraphQLEndpoint} to serve a GraphQL endpoint.
|
16
|
+
# * Use {Rack::GraphiQL} to serve a GraphQL endpoint and the [GraphiQL IDE](https://github.com/graphql/graphiql).
|
17
|
+
module Rack
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticgraph-rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.0.
|
4
|
+
version: 0.18.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Myron Marston
|
8
|
+
- Ben VandenBos
|
9
|
+
- Square Engineering
|
8
10
|
autorequire:
|
9
11
|
bindir: exe
|
10
12
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
13
|
+
date: 2024-09-20 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: rubocop-factory_bot
|
@@ -224,14 +226,14 @@ dependencies:
|
|
224
226
|
requirements:
|
225
227
|
- - '='
|
226
228
|
- !ruby/object:Gem::Version
|
227
|
-
version: 0.18.0.
|
229
|
+
version: 0.18.0.5
|
228
230
|
type: :runtime
|
229
231
|
prerelease: false
|
230
232
|
version_requirements: !ruby/object:Gem::Requirement
|
231
233
|
requirements:
|
232
234
|
- - '='
|
233
235
|
- !ruby/object:Gem::Version
|
234
|
-
version: 0.18.0.
|
236
|
+
version: 0.18.0.5
|
235
237
|
- !ruby/object:Gem::Dependency
|
236
238
|
name: rack
|
237
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,56 +254,56 @@ dependencies:
|
|
252
254
|
requirements:
|
253
255
|
- - '='
|
254
256
|
- !ruby/object:Gem::Version
|
255
|
-
version: 0.18.0.
|
257
|
+
version: 0.18.0.5
|
256
258
|
type: :development
|
257
259
|
prerelease: false
|
258
260
|
version_requirements: !ruby/object:Gem::Requirement
|
259
261
|
requirements:
|
260
262
|
- - '='
|
261
263
|
- !ruby/object:Gem::Version
|
262
|
-
version: 0.18.0.
|
264
|
+
version: 0.18.0.5
|
263
265
|
- !ruby/object:Gem::Dependency
|
264
266
|
name: elasticgraph-elasticsearch
|
265
267
|
requirement: !ruby/object:Gem::Requirement
|
266
268
|
requirements:
|
267
269
|
- - '='
|
268
270
|
- !ruby/object:Gem::Version
|
269
|
-
version: 0.18.0.
|
271
|
+
version: 0.18.0.5
|
270
272
|
type: :development
|
271
273
|
prerelease: false
|
272
274
|
version_requirements: !ruby/object:Gem::Requirement
|
273
275
|
requirements:
|
274
276
|
- - '='
|
275
277
|
- !ruby/object:Gem::Version
|
276
|
-
version: 0.18.0.
|
278
|
+
version: 0.18.0.5
|
277
279
|
- !ruby/object:Gem::Dependency
|
278
280
|
name: elasticgraph-opensearch
|
279
281
|
requirement: !ruby/object:Gem::Requirement
|
280
282
|
requirements:
|
281
283
|
- - '='
|
282
284
|
- !ruby/object:Gem::Version
|
283
|
-
version: 0.18.0.
|
285
|
+
version: 0.18.0.5
|
284
286
|
type: :development
|
285
287
|
prerelease: false
|
286
288
|
version_requirements: !ruby/object:Gem::Requirement
|
287
289
|
requirements:
|
288
290
|
- - '='
|
289
291
|
- !ruby/object:Gem::Version
|
290
|
-
version: 0.18.0.
|
292
|
+
version: 0.18.0.5
|
291
293
|
- !ruby/object:Gem::Dependency
|
292
294
|
name: elasticgraph-indexer
|
293
295
|
requirement: !ruby/object:Gem::Requirement
|
294
296
|
requirements:
|
295
297
|
- - '='
|
296
298
|
- !ruby/object:Gem::Version
|
297
|
-
version: 0.18.0.
|
299
|
+
version: 0.18.0.5
|
298
300
|
type: :development
|
299
301
|
prerelease: false
|
300
302
|
version_requirements: !ruby/object:Gem::Requirement
|
301
303
|
requirements:
|
302
304
|
- - '='
|
303
305
|
- !ruby/object:Gem::Version
|
304
|
-
version: 0.18.0.
|
306
|
+
version: 0.18.0.5
|
305
307
|
- !ruby/object:Gem::Dependency
|
306
308
|
name: rack-test
|
307
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -326,6 +328,7 @@ files:
|
|
326
328
|
- LICENSE.txt
|
327
329
|
- README.md
|
328
330
|
- elasticgraph-rack.gemspec
|
331
|
+
- lib/elastic_graph/rack.rb
|
329
332
|
- lib/elastic_graph/rack/graphiql.rb
|
330
333
|
- lib/elastic_graph/rack/graphiql/README.md
|
331
334
|
- lib/elastic_graph/rack/graphiql/index.html
|