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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 14d33b44e9817d113303341528dbdde1ca057537cc4cd957339a96d1d3da8db1
4
- data.tar.gz: 6807905235fe5c5d42d9f75995684c913b0a8f2254fdccd474fca507fe4e9734
3
+ metadata.gz: 1af5a7a0745d67b84546ebea7bbf38bd2d2fc4dffad88e80d60d3eb629255996
4
+ data.tar.gz: 8ed374c529b14ab86294ded8872631a6ef6406b5960e832ffd48c54e50ca8861
5
5
  SHA512:
6
- metadata.gz: 15f46d65c2b7e7fce69d789d2921e6720e3e3163844e2333f0a21dd8ac2c4f083ee3c103e33e43b3b8c51154cbf32c493379428ed9dd0984e75d62e9c966f49a
7
- data.tar.gz: 32bee7e4c55ceac83ad6407d81ad30915b16a41ec138f89c83cd36a449605167b94abbd17a42f0b01bee61589a3819bb871f213d876b71a969a3b8e596e1d17d
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 app that exposes both a GraphQL endpoint and an admin UI using GraphiQL:
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
- # https://github.com/graphql/graphiql/tree/graphiql%402.4.0
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. This can be used for local development,
15
- # or mounted in a Rails app, or run in any other rack-compatible context.
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
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-06 00:00:00.000000000 Z
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.4
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.4
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.4
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.4
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.4
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.4
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.4
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.4
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.4
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.4
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